티끌모아 로키산맥 🏔
search
로ᄏl
배움에 끝은 없다... 개발 또한 그러하다.
Today
Yesterday
분류 전체보기 (179)
스프링 배치에서 전 처리, 후 처리를 하는 다양한 종류의 Listener 존재. Listener interface 구현 @Annotation 정의 Job 실행 전과 후에 실행할 수 있는 JobExecutionListener Step 실행 전과 후에 실행할 수 있는 StepExecutionListener Spring Web 모듈로 치면, Controller 전 처리, 후 처리를 담당하는 interceptor와 비슷한 개념으로 생각하면 된다. 예제 코드 StepListener Step에 관련된 모든 Listener는 StepListener를 상속받는다. StepExecutionListener SkipListener ItemReadListener ItemProcessListener ItemWriteListen..
Task 기반 배치 vs Chunk 기반 배치 배치를 처리할 수 있는 방법은 크게 2가지 Tasklet을 사용한 Taks 기반 처리 배치 처리 과정이 비교적 쉬운 경우 쉽게 사용 대량 처리를 하는 경우 더 복잡 하나의 큰 덩어리를 여러 덩어리로 나누어 처리하기 부적합 Chunk를 사용한 chunk(덩어리) 기반 처리 ItemReader, ItemProcessor, ItemWriter의 관계 이해 필요 대량 처리를 하는 경우 Tasklet 보다 비교적 쉽게 구현 ex) 10,000개의 데이터 중 1,000개씩 10개의 덩어리로 수행 이를 Tasklet으로 처리하면 10,000개를 한번에 처리하거나 혹은 수동으로 1,000개씩 분할하여 처리 Chunk 기반 처리 흐름 reader에서 null을 return ..
Batch란…? 사전 정의 큰 단위의 작업을 일괄 처리 대부분 처리량이 많고 비 실시간성 처리에 사용 대용량 데이터 계산, 정산, 통계, 데이터베이스, 변환 etc… 컴퓨터 자원을 최대로 활용 컴퓨터 자원 사용이 낮은 시간대에 배치를 처리하거나 배치만 처리하기 위해 사용자가 사용하지 않는 또 다른 컴퓨터 자원을 사용 사용자 상호작용으로 실행되기 보단, 스케줄러 같은 시스템에 의해 실행되는 대상 ex) 매일 오전 10시에 배치 실행, 매주 월요일 12시 마다 실행 etc… crontab, jenkins… Spring Batch 란…? 배치 처리를 하기 위한 Spring Framework 기반 기술 Spring의 주요 기능 사용 가능 (DI, AOP, PSA) 스프링 배치의 실행 단위: Job, Step 비..
들어가며 가설을 세우고 실험과 분석을 반복하며 정신없이 보내던 3분기 말쯤, 생각지도 못한 시터 교육사업(이하 교육사업)의 유지보수 업무를 기존 업무 외에도 추가적으로 담당하게되었다. 그리고 올해 1월부터는 내가 소속된 패스파인더 파트는 시터사업팀에 속해서 교육사업 개발을 전담하게되었다. 시터사업팀에 합류한 시점에 교육사업팀은 기존의 ZOOM 라이브 교육대신에 새로운 버전의 VOD 교육을 준비하고있었고 기존 교육을 VOD 교육으로 바꾸기 위해서는 개발팀에서도 준비해야할 부분이 많았다. 먼저 기존 정책과는 맞지 않은 부분들을 새로운 정책에 맞춰 변경해야했고 한 회차에 30명 정원이었던 기존교육과는 달리 VOD 교육부터는 정원이 없어졌다. 한 회차에 몇백명이 교육을 신청할지 알 수 없었고 교육운영 파트분들의..
컨테이너 원래부터 리눅스는 프로세스별로 자원을 격리해서 사용하는 cgroup과 특정 디렉터리로 권한을 제한하는 chroot 등으로 격리 환경을 구축할 수 있다. 여기에 디스크의 파일 변경 사항을 레이어 형태로 저장하는 파일 시스템을 합해 컨테이너라는 개념이 탄생했다. 그리고 도커는 앞에서 언급한 기능들을 모아서 컨테이너를 손쉽게 사용할 수 있도록 한 것으로 주목받았다. 기존에는 가상화나 클라우드 컴퓨팅을 설명할 때는 가상 머신(VM)을 많이 언급했었지만 컨테이너가 널리 알려지면서 컨테이너에 많은 관심이 쏠리기 시작했다. 컨테이너에는 호스트 운영체제 위에 도커가 있고 바로 애플리케이션이 위치하는반면 가상 머신은 하이퍼바이저 위에 가상 머신마다 게스트 운영체제가 있고 그 위에 앱이 위치한다. 즉, 컨테이너가..
김영한님의 Querydsl 강의를 수강하며 정리한 내용입니다. 백엔드 기술은 SpringBoot + Spring Data JPA를 조합해서 사용하는데, 이 조합으로 해결하지 못하는 한계점이 바로 복잡한 쿼리 즉, 동적 쿼리를 짜야할 때이다! 이런 문제를 해결해주는 것이 Querydsl이다! Querydsl은 쿼리를 자바 코드로 작성할 수 있고 문법 오류를 컴파일 시점에 확인할 수 있다. 동적 쿼리 문제를 해결해준다. SQL과 문법이 유사하여 쉽게 학습할 수 있다. Querydsl + Spring Data JPA -> 개발이 즐거워진다! Querydsl + Spring Data JPA 장점 단순 반복 X (쿼리도 코드로) Querydsl은 단순히 JPQL Builder 이다! 따라서 JPA의 특징들 (ex..