Spring REST Docs 란? 프로젝트를 하다 보면 같이 협업하는 사람들에게 API 문서를 제공할 일이 많습니다. 그런데 직접 API를 위키나 문서에 정리하게 되면 코드와의 싱크를 맞추기가 정말 힘듭니다. 대부분 API 코드가 변경되면 문서를 잘 변경하지 않습니다. API의 문서에 존재도 모르는 경우도 많습니다. 이러한 문제를 해결해 주는 게 Spring REST Docs입니다. Spring REST Docs는 test code 기반으로 아래와 같이 문서를 생성해 줍니다. Test code 기반으로 문서가 생성되기 때문에 코드가 변경 되더라도 코드 기반으로 문서를 자동으로 업데이트하기 때문에 코드와 문서에 싱크 문제도 존재하지 않습니다. 이러한 이유로 Rest docs는 API 문서로 사용하는데 아..
Spring boot test, junit5, mockito 사용에 대한 정리 Spring boot 2.2부터는 기본으로 Junit5모듈을 사용하게된다. Junit5란? Junit 4는 단일 모듈이였던 반면, JUnit 5는 크게 Junit Jupiter, JUnit plateform, JUnit Vintage모듈로 구성되어진다. 아래는 그구성에 대한 설명이다. Junit Platform : 테스트들을 실행하기 위한 뼈대이다. 테스트를 발견하고 테스트 계획을 생성하는 TestEngine 인터페이스를 가지고 있다. Platform은 TestEngine을 통해서 테스트를 발견하고, 실행하고, 결과를 보고한다. 또한 콘솔출력, 각종 IDE들의 연동을 보조하는 역할을 한다. Junit Jupiter : Test..
1. Spring boot 로깅 1.1. Log 란 “프로그램 개발 중 및 완료 후 발생할 수 있는 오류에 대해 디버깅하거나 운영 중인 프로그램 상태를 모니터링 하기위해 필요한 정보(로그)를 기록하는 것”을 의미합니스프링에서 모니터링을 하기위해 로그를 셋팅하다보면 많은용어들을 만나게됩니많이 보이는 용어를 정리해보면 아래와 같습니다. native java.util.logging: 별로 사용하지 않는다. Log4j: 몇 년 전까지 사실상 표준으로 사용했다. Logback: Log4J 개발자가 만든 Log4j의 후속 버전, 현재 많은 프로젝트에서 사용되고 있다. slf4(Simple Logging Facade for Java): jcl, Log4j 이후에 나온 로깅 프레임워크로 가장 많이 사용된다. 이러한 용..
Spring 멀티 모듈 구성 Root 프로젝트 생성 (1) New Project > Gradle > Additional Libraries and Frameworks > Next (2) GroupId, ArtifactId 입력 > Next (3) Use auto-import 체크 해제되어있는지 확인 > Next > Finish GroupId란? GroupId는 어떤 한회사에서 식별될 수 있는 값으로 설정하는게 좋다. 예를들어 wan라는 회사가 첫 프로젝트 이름으로 com.wan.boot라는 이름으로 groupid를 가져갔다고 해보자. 그다음 규모가 켜저서 payment를 분리하는 프로젝트를 만들었다고해보자 그렇게되면 그 해당 프로젝트에 group id는 com.wan.payment가 될것이다. 보통은 도메..
청크 지향 프로세싱 Spring batch 처리 방법 스프링 배치는 크게 2가지 배치 처리 방법이 있습니다. Tasklet 방식과 청크 제향 프로세싱 방법입니다. 이전 글에서 예제로 만들었던 job 방식이 Tasklet 방입니다. 실무에서 tasklet 방식 같은 경우 일반적으로 통계를 구하는 작업에서 많이 쓰이는 방법입니다. 이번 글에서 알아볼 방식은 청크 제향 프로세싱 방법입니다. 반대로 청크 제향 프로세싱 방법은 일괄 데이터 변경이나 어떤 데이터 변화를 주는 작업에서 청크 제향 프로세싱 방법을 사용할 수 있습니다. 위 설계도는 Srping-batch1 글에서 봤던 Spring batch 구조대입니다. 일반적으로 Spring batch는 위와 같은 구조를 가지게 됩니다. 위에서 Step을 taskle..
간단한Job 만들기 1. 개발 환경 구성 2. 배치 메타 테이블 정보 2.1. Job Instance (BATCH_JOB_INSTANCE) 2.2. Job Execution (BATCH_JOB_EXECUTION) 2.3. Job parameteres (BATCH_JOB_EXECUTION_PARAMS) 2.4. Step 2.5. StepExection (BATCH_STEP_EXECUTION) 3. 간단한 잡 만들기 1 4. 간단한 잡 만들기 2 4.1. BATCH_JOB_EXECUTION 4.2. BATCH_JOB_EXECUTION_PARAMS 1. 개발 환경 구성 먼저 간단한 잡을 만들기 위해 Spring batch 의존성 주입을 해줘야 합니다. 먼저 배치 의존성과 배치 테스트를 하기 위한 배치 테스트를..
Spring 데이터베이스 Schema 및 Data 초기설정하기 Spring에서는 초기에 scheme 생성 및 데이터를 세팅하는 여러 가지 메커니즘을 제공합니다. 아래는 이러한 설정을 설명한 것입니다. Spring script-sql 설정 Spring 기본값으로 classpath 루트에 schema.sql, data.sql 파일이 있다면 서버 시작 시 스크립트를 실행합니다. 보통 schema.sql은 DDL 스크립트를 명시해두고, 데이터를 위한 DML 문은 data.sql 파일로 작성합니다. 만약 특정 환경에 맞는 sql 문을 실행하고 싶다면 아래와 같이 platform이라는 property를 설정하면 됩니다. spring.datasource.platform=test 다음과 같이 설정하게 되면 schema..
Spring Batch Example - Spring Batch란? 많은 엔터프라이즈 에플리케이션에서 대량의 작업들을 한번에 일과적으로 처리를 할필요가 있다. 배치 작업들은 유저에 처리 없이 자동화되어 많은 양의 작업들이 한번에 처리되는것을 의미한다. 이러한 배치성 작업들은 대부분 시간 기반 이벤트(주기적인 시간다, 알림처리 등)들이다. 배치 어플리케이션으로 주기적으로 외부또는 내부로부터 받은 데이터를 형식화하고 검증하여 여러 기록 시스템에서 그 형식에 맞는 트랜잭션 방법으로 작업을 처리한다. 이렇듯 배치처리는 하루에 수백만건의 작업들을 처리하기위해 사용되어진다. 스프링 배치는 가볍고 종홥적고 일상적인 엔터프라이즈 시스템들에서 튼튼한 배치를 처리하기위해 설계되어졌다. 스프링배치는 스케줄링 프레임워크는 아..
- Total
- Today
- Yesterday
- tobi
- network
- Infra
- SSH
- kotlin
- vue
- IntelliJ
- Spring
- javascript
- Quasar
- JPA
- Chache
- jenkins #mac방화벽
- OAuth
- Angular
- HMAC
- Jenkins
- OS
- Collection
- Gradle
- Linux
- Github
- java
- batch
- eslint
- #linux
- aws
- https
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |