목록분류 전체보기 (151)
ultra_dev
Aws Lambda란?:서버리스 기반의 플랫폼으로 필요할 때만 함수가 호출되는 서비스이다. 아래와 같은 장점이 있다.확장성: 서버리스 아키텍처이기 때문에 필요한 만큼의 리소스를 동적으로 확장하여 사용할 수 있음비용 절감: AWS Lambda는 실행 시간만큼만 과금되므로 사용한 만큼의 비용만 지불하면 됨간편한 관리: 서버를 관리할 필요가 없고 수정 및 배포가 간편함<p data-..
프로젝트 내 스프링 배치에서 특정 상태를 바꿔주는 코드가 있다. 특정 날짜가 지난 게시글들을 만료 처리하는 배치코드이다. 백엔드 서버가 JPA로 구성돼 있으므로 스프링 배치도 동일한 기술 스택을 유지하기 위해 JPA를 선택했다. 일관된 기술 스택을 사용하여 코드 개발, 유지보수에 도움이 되고, 컴파일 시점에 에러를 잡을 수 있는 등 다양한 장점이 있기 때문이다. 아이템라이터에서 아이템 업데이트를 더티체킹 방식으로 하다보니, 청크사이즈만큼 아이템이 있다고 해도 각 엔티티마다 개별적으로 업데이트 쿼리가 나가서 데이터베이스 부하가 커지는 문제가 생겼다. 이에 따라 문제를 해결하기 위해 각 아이템을 모아서 한번에 업데이트 하는 방식으로 코드를 변경했다. 즉 만료 처리할 게시글들을 모아서 IN 절로 한번에 벌크 ..
DB를 바탕으로 한 스프링 배치 기본 개념 : 배치는 실시간 처리가 어려운 대용량 데이터를 다루고 DB의 I/O 성능 문제 및 메모리 자원 효율성 문제를 고려 해야한다 → 스프링 배치에서는 대용량 데이터 처리 위한 2가지 방법을 제시한다! Cursor Based 처리 JDBC ResultSet의 기본 메커니즘 사용 AbstractPagingItemReader 클래스 현재 행에 커서 유지하며 다음 데이터 호출 시, 다음 행으로 커서 이동하며 데이터 반환이 이루어지는 streaming 방식의 I/O ResultSet이 Open 될때마다 next() 메소드 호출 돼서 데이터베이스의 데이터가 반환되고 객체와 매핑이 이루어짐 DB Connection이 연결되면 배치 처리가 완료될 때까지 데이터를 읽어오기 때문에 ..
스프링 배치 - 1 * 배치 패턴 Reader : DB 등에서 다량의 데이터 조회 Processor : 받은 데이터 가공 Writer : 데이터를 다시 저장 * 배치 과정 1. 배치 프로세스 주기적으로 실행 2. 동시 다발적인 Job 배치처리 3. 순차적인 Step 처리 4. 실패 시, 스케줄링에 의한 재시작 (또는 수동...) 5. 반복 참고 사항) 만약 스프링부트 3버전 이상(스프링 배치 5버전 이상)을 사용하고 복수개의 Job 정의시에 아마 밑에 오류가 뜰 것! [Job name must be specified in case of multiple jobs~] Spring Boot 3 버전에서부터 Spring Batch 사용 시 기존에는 스프링 부트가 구동될 때 모든 Job 빈들을 읽어 실행하는 구조..