JAVA 28

[Spring] Spring Batch(4)

1. Job Parameter, Scope Job Parameter를 사용하기 위해선 항상 Spring Batch 전용 Scope를 선언해야 한다. 크게 @StepScope, @JobScope 두 가지가 있다. 사용법은 SpLE로 선언해서 사용하면 된다. - @Value("#{jobParameters[파라미터명]}") JobScope StepScope - @JobScope는 Step 선언문에서 사용 가능하고, @StepScope는 Tasklet이나 ItemReader, ItemWriter, ItemProcessor에서 사용할 수 있다. - 예제 코드에서 null을 호출하는 부분이 있는데 Job Parameter의 할당이 어플리케이션 실행 시에 하지 않기 때문에 가능하다. 2. 에서 좀 더 자세히 살펴보자..

JAVA/Spring 2023.05.19

[Spring] Spring Batch(3)

- Spring Batch Job Flow Spring Batch의 Job을 구성하는데 Step이 있다. Step은 실제 Batch 작업을 수행하는 역할을 한다. Job 내부의 Step들 간에 순서, 처리 흐름을 제어할 필요가 있는데 여러 Step들을 어떻게 관리하는지 정리해 보자. 1. Next - next로 순차적으로 Step을 연결할 때 사용한다. - 실행하면 잘 연결되어 나온다. 2. 조건별 흐름 제어(Flow) Next에서 순차적으로 Step의 순서를 제어하는 것을 확인했다. 여기서, 앞의 step에서 오류가 발생하면 나머지 뒤에 있는 step들은 실행되지 못한다. 하지만 상황에 따라서 정상일 때에는 Step B로, 오류가 발생했을 때에는 Step C로 실행되어야 할 경우가 있다. 이럴 경우를 ..

JAVA/Spring 2023.05.19

[Spring] Spring Batch(2)

1. Batch Job - 먼저 Spring Initializr에서 다음과 같이 설정해 준다. (여기서 JPA나 JDBC둘중에 하나만 사용하면 하나만 선택해 주면 된다.) - build.gradle 설정이 이렇게 나온다. - main 메소드에서 '@EnableBatchProcessing' 어노테이션으로 Batch기능을 활성화한다. - 위의 어노테이션을 선한하지 않으면 Spring Batch 기능을 사용할 수 없기에 필수로 선언해야 한다. - Job 패키지를 생성하고 안에 SimpleJobConfiguration을 생성한다. - @Configuration -> Spring Batch의 모든 Job을 Configuration으로 등록해서 사용한다. - jobBuilderFactory.get("simpleJo..

JAVA/Spring 2023.04.28

[인증/보안] JWT TCP, CIA, RFC

1. 통신 : OSI 7 계층 응용계층 프리젠테이션계층 세션계층 트랜스포트계층 네트워크계층 데이터링크계층 물리계층 - 트랜스포트 계층에서의 TCP / UDP TCP : 데이터를 보내고 답이 없으면 재송신을 통해 수신을 확인한다. 따라서, 속도가 느리고 정확한 데이터를 주고받을 수 있다. UDP : 데이터를 보내면 확인 없이 바로 다음 데이터를 보낸다. 따라서, 속도가 빠르고 정확하지 않은 데이터를 주고받을 수 있다. 2. 보안 (CIA) 기밀성(Confidentiality) 인가된 사용자에게만 정보를 허가한다. 개인정보나 지적 재산권 등 가치 있는 정보 비밀로 유지되며 특정 인물만 볼 수 있는 기밀정보 무결성(Intrgrity) 부적절한 정보 변경이나 파기 없이 정확하고 완전하게 보존 가용성(Availa..

JAVA/인증&보안 2023.04.27

[Spring] Spring Batch(1)

1. 배치 애플리케이션? 개발자가 정의한 작업을 일괄 처리하는 애플리케이션이다. 예를 들어, 한 기업에서 사전 예약 이벤트를 진행했는데 신청한 유저의 데이터 수는 100만 건이라고 가정하면 사전 예약 이벤트를 접수한 모든 유저에게 메일을 보내야 한다. 이럴 때 사용하는 것이 Spring Batch이다. 다른 예로 월말 정산을 처리하거나, 따로 적재된 데이터베이스를 통합하는 작업, 은행 점검등이 있다. 로깅 / 추적, 트랜젝션 관리, 작업 처리 통계, 작업 플로우 지정, 리소스 관리 등 대량의 레코드를 처리하는데 필수적인 기능을 재사용 가능한 형태로 제공한다. 스프링 배치는 Java Based Configuration이 가능하다. XML 없이도 POJO 기반 개발 접근 방식으로 개발 가능한 의미이다. Ba..

JAVA/Spring 2023.04.26

[Spring] Spring Boot 3.0

Spring Boot 3.0으로 업그레이드되었다고 해서 바뀐 점이 무엇인가 알아봤습니다. Spring Boot 3.0의 특징 Java17, Java19를 지원 GraaIVM기반의 Spring Native 지원 Spring Framework 6.0기반 Java EE를 jakarta EE로 대체(javax.*에서 jakarta.*로 변경된다.) HTTP / RSocket Interface Client를 제공 Micrometer Observation API가 자동으로 구성되며, Observability지원 HTTP API 에러 처리를 위한 RFC 7807 스펙 지원 보안상 이슈로 /api/hello 와 /api/hello/ 는 더 이상 일치하지 않는다. 사용되지 않는(Depercated) 모든 코드가 제거된다..

JAVA/Spring 2023.03.26

[Spring] Java Spring?

1. Spring Framework란 무엇이며, 장점은? Spring Framework? Java언어를 사용하여 어플리케이션을 구축하기 위한 오픈소스 프레임워크이다. 간단하고 생산적인 자바 개발을 위해 개발되었다. Spring Framework의 장점? 경량성 프레임워크로써 많은 기능을 제공하고 다른 프레임워크보다 가볍고 빠르다. IoC컨테이너를 제공하여 객체의 생성, 소멸 등을 개발자 대신 수행한다. 의존성 주입(DI)를 통한 개발이 가능하다. AOP를 지원해서 공통 로직을 별도의 모듈로 분리하여 코드의 중복을 줄일 수 있다. 테스트 프레임워크와 연동하여 테스트 코드의 작성을 쉽게 할 수 있다. 2. IoC / DI란? IoC(Inversion of Control)? 객체의 생성과 관리를 개발자가 아닌..

JAVA/Spring 2023.03.23