본문 바로가기

분류 전체보기202

logging시 주의 1. 프로퍼티 설정 2. 의존성 3. 주의! log level. log.info//debug 등. 2024. 1. 15.
Spring Batch Test @ExtendWith는 beforeEach,AfterEach등을 사용한다. @ActiveProfiles는 test 연동시 profile로 설정한다. (test용 프로퍼티를 사용하기 위하여) @ContextConfiguration은, 해당 config들의 설정을 load함을 의미한다. Test에서 주로 사용하는 autowired 방식. 허나 .. 주의해야 할 것이 2개 있다. 1. 간단함을 위해 autowired를 쓴것이다. (생성자를 주로 필요로 하지 않기 떄문에 ) 2. teardown은, 모든 test 실행후 plaintext를 지워주는 것인데, 지금 dbms를 test용은 h2로 , 별도로 지정해두었다 . 그렇지 않고 둘다 mysql을 쓴다면, 이러한 방식으로 진행해선 안된다. 그 이후는 간단하다 .. 2024. 1. 15.
Stemp 에 따른 행위 구현 1. 데이터를 읽는 Item Reader *임의로 설정한 TABLE! (이런 소규모에 사용되는 기술은 아님을 기억하자) 기본 적으로, repoistory를 세팅한다. page가 가능한 만큼 읽어오는 코드 ! --코드 -- 1. Item reader 이와 같이, repository를 활용하여 findby method로, desc id 순으로 읽어들였다 . 2. Item Processor 이와 같이, 해당 item을 과정상 출력한다. 3. item writter 이와 같이, 한청크를 다 write하였을때 문을 출력한다 . 이를 모두 정리하여, step을 어떻게 진행할 지를 정의한 코드이다. --결과-- database의 역순으로, 5개씩 읽어왔다. 즉, JOB -> 한 STEP을 정의하는데. 해당 STEP은.. 2024. 1. 14.
Spring Batch 활용 1. 개발 환경 : java, docker, mysql 2. 기술 스택 : Spring boot, Spring boot batch, spring boot data jpa, junit, lombok, gradle (groovy 기반 build) Docker Container를 띄우는 법. 이후, 터미널에 docker-compose up -d로 , docker를 띄운다 (image를 보고 docker가 해당 내용을 띄운다. 이미 결정되어 있는 mysql 을썻다 ) docker가, 컨테이너를 띄웠다! 왜 docker를 사용할까? 만약에 spring batch를 그냥 원래 하던대로 하면, local db에 이를 저장하는 것이다. 이를 남이 쓰려면 인텔리제이 설치 -> mysql workbench 세팅 .. 등등.. 2024. 1. 14.
Spring Batch 아키텍처 0. spring batch 구조를 보자 JOBLAUNCER는 COMPONENT . (JOB을 실행시킨다) JOB은 실제 진행하는 배치 작업을 의미한다. STEP은 배치 작업의 단계 . 1개의 JOB에, 여러가지 STEP 단계를 지닐 수 있다. 테이블을 읽는 ITEM READER -> ITEMPROCESSOR -> ITEMWRITER 등의 구성을 가질 수 있다. 사용자의 코드와 구성인 application -> job등을 포함하는 core -> 외부와 작용하는 infrastrcture layer (step) (3 Layer) 1. JOB (일) 전체 배치 과정을 캡슐화 한 것. (내부 과정과 내부 CLASS등을 가린다) 주로 CLASS 형태로 JOB을 구현하고. -> 내부 INSTACNE나 EXECUTI.. 2024. 1. 14.
배치 프로그램이란? / Spring Batch를 쓰는 이유 주로, 대용량 데이터를, 일괄적으로 처리한다. 데이터를 특정 일자에 재 작업, 혹은 고의 적인 지연시 주로 사용한다. 리소스를, 트래픽이 적은 시간에 처리하는 역할ㄷ ㅡㅇ을 한다. 실제 프로그램 ETL -> DATA WAREHOUSE에 저장 *DATA WAREHOUSE란, 각 주제 별로 DATA를 분류하는 부분 ( 정보처리기사 참고) 머신러닝 모델 ( 동기 중 왕병권형이 모델을 만들때 ) -> DATA 전 처리 , 변환 등을 배치 프로그램을 사용한다. 1. MESSAGE 발송. 많은 USER들에게 전송할때, DB의 USER LIST를 기반으로 변환 , 발송을 진행한다. 2. DATA MIGRATION . 데이터를 APPLICATION에서 APPLICATION 혹은 DB에서 DB로 이동할때 사용 DELET.. 2024. 1. 14.
비전공자 학생이 쓰는, 금리 금리란 무엇일까? 비전공자인 내가 이해한 금리란, "돈의 가치" 이다 . 물가가 떨어지면 , 물건의 가치가 돈보다 값지다는 뜻이다. 한국의 중앙은행인 한국은행에서 , 물가가 떨어지면 금리를 낮추어 이를 조정한다. 왜? -> 물가가 떨어지면 , 사람들이 소비를 많이해서 좋은거 아니야? * 그렇지 않다. 물가가 떨어지면, 사람들은 해당 물가가 지속해서 감소할 것을 예측하여 소비를 줄이게 된다. 소비의 감소 -> 기업의 이익 감소 -> 해고 로 이어지는 악순환이 발생한다. 이러한 물가 감소로 인해 유발되는 경제 전반의 둔화 현상을, 디플레이션이라고 한다. 반대로 물가가 상승하면, 한국은행에서 금리를 올려 이를 조정한다. 물가 상승은 당연히 일반 사람들이 힘들기 때문에 발생하는 당연한 일이다. 또한, 사재기 현.. 2024. 1. 12.
프로젝트 진행 과정 1. 목표를 구체화 한다 ex : "코로나 줄서기 서비스 " 2. 해당 목표의 이유를 설정한다 . ex: 왜 코로나 줄서기가 필요한가 문제는 무엇인가. 사용자 입장에선 문제가 무엇인가. 다른 사용자 그룹 B의 문제는 무엇인가. 2-1 니즈 분석 : ex) 서비스 목표는 온라인으로 입장 현황 알려주기 니즈 : 사용자 A에겐 크지 않다 . B에겐 크다 . -> 프로젝트 진행 이유가 충분하다. 3. 요구사항 정리 : 3- 1 : 기능 정리 어떤 기능을 구현할지를 정리한다. 3-2 : 요구사항 : USE CASE 주로 : 다이어그램으로 어떤 기능을 누가 쓸지 정리한다. 3-3 : 요구사항(도메인) 설계 : 주로 ERD를 설계한다. 3-4 : API 요청문서 설계 : API 요청을 정리하고 설계한다. 4 : 실제.. 2024. 1. 12.
5장 정보시스템 구축 관리 126 . 소프트웨어 개발 방법론 소프트웨어의 개발, 유지 보수 등에 필요한 수행방법과 수행과정에서의 기법과 도구를 정의 . 구조적 방법론 -> 타당성 검토, 계획, 요구,설계, 구현, 시험 ,운용 단계를 거친다 (DIVIDE AND CONQUER)로, 복잡한 문제를 다룬다 . 정형화된 분석 정보공학 방법론 -> 계획, 분석, 설계 구축에 정형화된 기법들을 통합 적용한다. (ERD를 활용해, 정보 전략으로 시스템을 구축한다) . 대형 정보 시스템 객체 지향 방법론 -> ENTITY를 활용하여 , 각 객체로 만들어 객체들을 조립하는 방법론이다 컴포넌트 기반 -> 컴포넌트(문서,파일,라이브러리등 자원)의 조합으로 애플리케이션을 만든다. 애자일 방법론 -> 기억나지? 애자일? 일정 한 주기마다 개발 과정을 반.. 2024. 1. 11.
개인 보안 노트 프로젝트 작성 과정 , 느낀점 해당 프로젝트는 클론 코딩의 일부로써, 개인이 진행하였다. spring security의 사용 뿐만 아니라, 앞서 진행했던 spring의 기본기와 spring boot등을 최대한 활용하고자 하였다. Package는 Admin, notes,notice,user,config 이렇게 기능이 아닌 각 도메인별로 분할하였다. 과정 진행중 특히 Spring Security 6와의 차이 때문에 애를 많이 먹었다. 현재 Spring Security가 6이 되며, 기존 코드들이 많이 decrepted 되어 설정이 특히나 어려웠다. 해당 configuriation을, https://jihyukcoding.tistory.com/94에 작성해 두었다. 이제 각 도메인 별로 설명을 진행하고자 한다. 1. User databas.. 2024. 1. 11.