Spring Batch 개요 ✅Spring FrameWork + Batch(일괄 처리) 대용량 일괄처리의 편의를 위해 설계된 가볍고 포괄적인 배치 프레임 워크 언제 사용할까? 대용량 비즈니스 데이터를 복잡한 작업으로 처리 특정한 시점에 스케쥴러를 통해 자동 작업 이와 같이, 대용량의 특정 작업을 특정 시간에 Batch를 통해 최적화 하여 처리할 수 있다. Batch 장점 ✅ 사용자가 적을 때 동작하게 설정하여 컴퓨터 자원 효율적 사용 ✅ 특정한 시점에 특정한 행동을 자동화 Batch 주의점 ❗ 대용량 데이터를 직접 사용하여 데이터 무결성(유효성 검사) 필수 ❗ 잦은 I/O → 네트워크 비용 증가 : 데이터 조회 후 캐싱하여 해결 ✅ ❗ Batch 시스템이 돌아갈 때, 다른 시스템에 영향이 미치는지 확인 ..
Transaction의 특징 더보기 원자성 한 트랜잭션 안에서 실행되어야 할 로직이 모두 실행되거나, 모두 실행되지 않아야 한다 일관성 트랜잭션이 종료 된 후에도 일관성 있게 데이터베이스의 제약 조건을 만족 해야한다. 격리성 여러개의 트랜잭션이 동시에 실행 될때 , 각각의 트랜잭션은 독립적이여야 하며 이 뜻은 각각의 트랜잭션은 서로 방해 받지 않아야 한다. 지속성 트랜잭션이 성공적으로 종료되게 된다면 commit 하여 DB에 영속화 되어야 한다 Transaction의 전파 더보기 REQUIRED(기본 값) 이미 트랜잭션이 존재한다면, 해당 트랜잭션을 따르고 존재하지 않는다면 새로운 트랜잭션 생성 REQUIRES_NEW 항상 새로운 트랜잭션을 만들고, 만약 트랜잭션이 이미 존재한다면 기존 트랜잭션을 보류 ..
통계를 위해, Native Query를 사용하였는데, 결과 값을 DTO 바로 맵핑하는 법을 소개하겠습니다. 방법은 총 두가지를 발견하였습니다. Entity 클래스에 @SqlResultSetMapping 사용 ( 비추천) @Entity @NamedNativeQuery( name = "getGenderRatio", query = "select gender, count(*) as cnt from member group by gender" resultSetMapping = "변환할 DTO" ) @SqlResultSetMapping( name = "변환할 DTO", classes = @ConstructorResult( targetClass = 변환할.class, columns = { @ColumnResult(na..
Spring Security 이란? Spring Security는 일반적인 공격에 대한 인증 , 권한 부여 및 보호를 제공하는 프레임워크입니다 . 명령형 애플리케이션 과 반응형 애플리케이션 모두를 보호하기 위한 일급 지원을 통해 Spring 기반 애플리케이션을 보호하기 위한 사실상의 표준입니다. 기본 용어 인증 (Authentication) 보호된 리소스(데이터 및 매서드)에 접근한 Request(요구자)가 이 사람이 회원인지, 회원이라면 어떤 정보(이름, 이메일) 가진 Request(요구자)인지를 확인하는 과정 인가 (Authorization) 인증 이후 해당 리소스에 대해 접근이 가능한 권한을 가졌는지를 확인하는 과정 동작 원리 1. Http Request 수신 2. 로그인 요청시 Authentica..
Model2 Model2 방식은 웹브라우저 http요청 → 서블릿 처리 → View 반환 or 비즈니스 모델 → 요청 Model2 방식의 가장 큰 장점은 View와 비즈니스 모델 (비즈니스 로직)의 분리이다. 이것을 통해서 얻을수 있는 장점은 View(html) 코드와 비즈니스 모델(JAVA...) 분리하였기에 Model1 방식보다 코드의 확장성이 높아지고 또한 유지보수에도 엄청난 이점이 있다 Spring MVC Pattern Model 데이터 저장소로 사용되며 예를 들면, 입력 데이터 or 출력 데이터를 다루는 역할 POJO 지향 (Plain old Java Objcet) Data Access Object도 이곳에 포함 View : 모델의 작업내용을 토대로 사용자에게 보여질 화면 담당 HTML,JSP와..