간단한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란? 많은 엔터프라이즈 에플리케이션에서 대량의 작업들을 한번에 일과적으로 처리를 할필요가 있다. 배치 작업들은 유저에 처리 없이 자동화되어 많은 양의 작업들이 한번에 처리되는것을 의미한다. 이러한 배치성 작업들은 대부분 시간 기반 이벤트(주기적인 시간다, 알림처리 등)들이다. 배치 어플리케이션으로 주기적으로 외부또는 내부로부터 받은 데이터를 형식화하고 검증하여 여러 기록 시스템에서 그 형식에 맞는 트랜잭션 방법으로 작업을 처리한다. 이렇듯 배치처리는 하루에 수백만건의 작업들을 처리하기위해 사용되어진다. 스프링 배치는 가볍고 종홥적고 일상적인 엔터프라이즈 시스템들에서 튼튼한 배치를 처리하기위해 설계되어졌다. 스프링배치는 스케줄링 프레임워크는 아..
Step-06 : 주문하기 기능 구현하기 - 1 지금까지 유저에 대한 회원가입에 대한 로직과 테스트 코드를 작성했습니다. 이번 장부터 online-book-store에 핵심 기능인 주문하기 기능을 만들어보겠습니다. 또한 Spring 부트 버전을 기존 1.5.9 -> 2.1.0으로 올리겠습니다. 목차 책, 주문 도메인 정의하기 책 도메인 정의하기 주문 도메인 정의하기 벨류와 엔터티 구별하기 엔터티란 벨류 타입란 Book생성 API 만들기 setter 사용하지 않기 Book생성 API호출 책, 주문 도메인 정의하기 책 도메인 정의하기 먼저 주문하기 기능을 구현하기 전에 처음 설계했던 도메인 설계를 다시 봐보겠습니다. 위에 도메인 설계에서 볼 수 있듯이 회원이 주문을 하기 위해서는 책 데이터가 필요합니다. 그..
Git Commit 전에 ESLint 자동 검사 하기 보통 프론트엔드에서는 2인 이상 개발할 때 코드 컨벤션을 잡아주는 ESLint 오픈 소스를 사용합니다. 그런데 실제로 커밋을 하기전에 lint 검사를 하지 않거나 build 명령어를 실행하고 커밋하지 않는 이상 ESLint 코드 컨벤션을 어긴 코드들이 커밋될 수 있습니다. 이러한 문제점을 해결해주는것이 husky, lint-staged, prettier가 있습니다. 이것에 대해 간단히 알아보겠습니다. husky 깃 커밋 또는 푸쉬전에 eslint, test 등을 실행 해볼 수 있는 도구입니다. 만약 테스트 또는 eslint 문법을 어겼다면 방금 커밋하려고했던 파일들은 커밋이 되지 않습니다. husky 설치 npm install husky --save-..
HandlerMethodArgumentResolver 인터페이스를 이용한 Controller 커스텀 파라미터 객체 만들기 이 인스터페이스는 전략 패턴의 일종으로 컨트롤러 메서드에서 특정 조건에 해당하는 파라미터에 바인딩 해주는 전략 인터페이스이다. 따라서 AOP로 모든 메서드를 일일이 찾아서 데이터를 바인딩 할 필요없이 어노테이션을 만들어 쉽게 바인딩 할 수 있다. 예를 들어 컨트롤러에서 세션을 조회해야 하거나 HttpServletRequest에서 토큰 또는 쿠키 정보를 기반으로 인증 객체를 만들어야 한다고 가정해보자. 그렇게 되면 이러한 객체를 만들기 위해서는 아래의 소스같이 session에서 유저정보를 가져오거나 request 정보에서 인증정보를 가져오는 중복 코드가 발생할 수 있다. 이러한 문제를 ..
HTTPS란 HTTPS란 HTTP란 HTTPS란 HTTPS와 SSL SSL과 TLS SSL 디지털 인증서 SSL에서 사용하는 암호화의 종류 대칭키 공개키(비대칭키) CA SSL인증서가 서비스를 보장하는 방법 SSL의 동작 방법 HandShake 세션 세션 종료 정리 참고 HTTP란 HTTP는 Hypertext Transfer Protocol의 약자다. 즉 Hypertext인 HTML을 전송하기 위한 통신규약을 의미한다. HTTP는 암호화되지 않은 방법으로 데이터를 전송하기 때문에 서버와 클라이언트가 주고받는 메시지를 감청하는 것이 매우 쉽다. 예를 들어 로그인을 위해서 서버로 비밀번호를 전송하거나, 또는 중요한 기밀문서를 열람하는 과정에서 악의적인 감청이나 데이터의 변조 등이 일어날 수 있다는 것이다. ..
JPA 관계 설정 JPA 관계 설정 JPA 관계 설정이란 단방향 연관관계 매핑 일대다 단방향[1:N] 일대다 단방향[1:N] 예제 다대일 단방향[N:1] 다대일 단방향[N:1] 예제 다대일 양방향[N:1] 다대일 양방향[N:1] 예제 편의 메소드 다대다(N:N) 양방향 다대다(N:N) 양방향 예제 다대다 연관관계 정리 마치며 JPA 관계 설정이란 엔터티 또는 도메인들은 각각 관계를 맺고 있습니다. 예를 들어 유저는 여러 개의 제품을 주문할 수 있다고 하면 유저 엔터티는 주문 엔터티와 관계를 갖습니다. 또 주문 엔터티는 어떠한 제품이 주문됐는지 알아야 하기 때문에 제품엔터티와 관계를 맺습니다. JPA에서 관계 설정을 하게 되면 알아서 객체에서는 참조를 사용해서 관계를 맺고 테이블은 외래 키를 통해 관계를 ..
- Total
- Today
- Yesterday
- Angular
- vue
- OAuth
- IntelliJ
- #linux
- Spring
- Github
- SSH
- JPA
- kotlin
- java
- network
- Gradle
- Jenkins
- https
- jenkins #mac방화벽
- javascript
- eslint
- Linux
- Chache
- OS
- aws
- tobi
- HMAC
- Infra
- batch
- Collection
- Quasar
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |