본문 바로가기

Spring|Spring-boot117

to Kotlin 자바 기반의 스프링 부트 애플리케이션을 코틀린으로 변경하는 과정을 담았다. https://github.com/sungil-yu/toKotlin/commits/main GitHub - sungil-yu/toKotlin Contribute to sungil-yu/toKotlin development by creating an account on GitHub. github.com 이는 CRUD 이외 큰 기능은 없지만 초기 시작을 위한 설정이나 Spring MVC, Spring Data Jpa를 사용하기 전 잠깐의 복습에는 많은 도움이 될 것이다. 2023. 7. 6.
OAuth 2.0 Spring Security 연동, 기능 파악 노션에 작성하고 복사 붙여 넣기 하는 게 더 이쁜 것 같다... 현재까지 개발 상황 : https://github.com/sungil-yu/oauth GitHub - sungil-yu/oauth: Spring Boot 3.1, JDK 17, OAuth 2.0, OIDC Practice Spring Boot 3.1, JDK 17, OAuth 2.0, OIDC Practice. Contribute to sungil-yu/oauth development by creating an account on GitHub. github.com 2023.06.21 - [Spring|Spring-boot] - OAuth 2.0 동작방식, 개발환경 구성, 클라이언트 등록, 프런트 개발 OAuth 2.0 동작방식, 개발환경 구.. 2023. 6. 27.
OAuth 2.0 동작방식, 개발환경 구성, 클라이언트 등록, 프론트 개발 개발환경 OAuth 2.0 Naver, Google, Facebook OAuth2.0 연동 docker Spring Security 3.1 Spring Data JPA JDK 17 Spring boot 3.1 MySQL OIDC thymeleaf 테스트 개발환경 JUnit5 H2 DB 목표 1. JDK 17의 도입된 새로운 문법 및 API를 활용한다. 2. OAuth 2.0의 개념 및 플로우를 학습한다. 3. Spring Security의 사용법이 변경됨으로 인해 이를 익히고 적용한다. 4. dockerFile을 개발환경 실습환경으로 구분해 작성하고 docker-compose를 통해 배포한다. 5. Spring boot 3.1 도입으로 인해 변경사항 및 릴리즈 내용을 학습한다. 6. SSR의 타임리프를 .. 2023. 6. 21.
Initialize Database Using SQL Script in Spring Boot Initialize a Database Using JPA JPA에는 DDL 생성 속성이 존재한다. 엔티티에 매핑되는 테이블이 데이터베이스에 없는 경우 애플리케이션 초기화 단계에서 적절하게 테이블을 생성해 준다. 물론 종료 시 삭제, 업데이트, 아무런 일도 하지 않도록 설정할 수 있다. spring.jpa.generate-ddl이라는 external properties을 통해 DDL 기능을 끄고 킬 수 있다. spring.jpa.hibernate.ddl-auto (enum)은 다양한 행동을 지정한다. Spring boot는 내장 데이터베이스가 감지된 경우만 created-drop 옵션으로 동작합니다. 그 외에는 none으로 기본값을 가집니다. 이러한 schema creation을 활성화시키기 위해선 org.. 2023. 6. 21.
Batch 성능 개선 https://github.com/sungil-yu/exampleBatch/commit/777ca90ddd160d174c14f2474c4b30de8bfc22b0 order statistics & decider · sungil-yu/exampleBatch@777ca90 Show file tree Showing 10 changed files with 241 additions and 1,254 deletions. github.com 다음 코드를 기반으로 성능을 개선하는 포인트를 알아본다. Test를 위한 데이터를 만드는 SaveUserTasklet에서 더 많은 유저를 저장하도록 코드를 변경한다. @Bean public Job userJob() throws Exception { return this.jobBui.. 2023. 5. 29.
Spring Batch Test Code Spring Batch를 테스트를 하는 방법은 버전 별로 구성하는 환경이 다른 것 같지만 4.1 버전 이상을 사용할 것이기 때문에 다음과 같이 구성한다. testImplementation 'org.springframework.batch:spring-batch-test' 4.1 버전 이상에서는 @SpringBatchTest 어노테이션으로 자동 스캔을 통해 batch test의 필수 빈을 의존성 주입해 주는 것이다. 실제 @SpringBatchTest 어노테이션 클래스에서 import문만 봐도 빠르게 이해가 될 것이다. import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.batch.test.JobLauncherTestUt.. 2023. 5. 28.
Batch 예제 최근 Spring Batch에서 제공해 주는 itemWriter와 itemReader, itemProcessor를 통해 chunk 단위의 배치를 연습하는 과정을 진행했다. https://github.com/sungil-yu/exampleBatch GitHub - sungil-yu/exampleBatch: Initial Commit Initial Commit. Contribute to sungil-yu/exampleBatch development by creating an account on GitHub. github.com 이제 csv 파일을 읽고 processor를 필터로 사용하고, 아웃풋 데이터를 db에 저장하고 로그를 찍는 배치를 개발해 본다. 1. Job을 Bean으로 등록한다. 2. Step을 .. 2023. 5. 24.
Spring Batch 아키텍처 괌에서 어제 돌아와서 너무 피곤한 상태입니다. 오늘은 괌을 가기 전에 공부했던 스프링 배치에 대한 아키텍처에 대해 알아보고 왜 다음과 같이 설계되었는지도 알아보려고 합니다. 최근 소프트웨어 설계에 관한 책을 읽으면서 느끼는 것이 설계라는 것이 얼마나 힘들고 많은 고민을 통해 만들어진 것을 체감했습니다. 스프링에서도 여러 개발자가 머리를 맞대고 개발자에게 더 편리한 기능을 좋은 설계를 기반으로 제공하려고 많은 노력을 했기 때문에 이 노력을 엿볼 것입니다. 스프링 배치는 확장성과 diverse group of end users를 염두하고 설계되었다고 합니다. 이러한 설계는 Application, Batch Core, Batch Infrastructure의 세 가지 주요 구성요소를 통해 이야기될 수 있습니다... 2023. 5. 21.
Spring Batch about 15 minutes https://spring.io/guides/gs/batch-processing/ Getting Started | Creating a Batch Service A common paradigm in batch processing is to ingest data, transform it, and then pipe it out somewhere else. Here, you need to write a simple transformer that converts the names to uppercase. The following listing (from src/main/java/com/example/batchproces spring.io 스프링 배치 아키텍처를 살펴보기 전에 15분 걸린다는 간단한 스프링 배치 실.. 2023. 5. 14.
Batch란 Batch와 관련된 개발을 한 번도 한 적이 없습니다. 그래서 이를 공부해 보고 실무에서 언제 사용하면 좋을지 판단할 수 있도록 공부를 해보려고 합니다. 이 글의 카테고리는 Spring Batch인데, 이는 스프링 프레임워크에서 배치를 지원하기 위한 API들이 존재하고, 현재까지 실무에서 사용된 프로젝트들이 스프링 부트 애플리케이션으로 배포가 되어있어 Spring Batch 기술에 대해 알아보고 구현해보려고 합니다. 물론 배치는 다양한 기술로 구현할 수 있다는 것을 알고 있어야 합니다. 우선 배치라는 것은 일련의 작업을 한 번에 처리하는 방식을 말합니다. 즉 컴퓨터 자원을 최대한 사용하여 무거운 작업을 일괄로 처리하게 됩니다. 일반적으로 여러 작업을 하나의 그룹으로 묶고, 이 그룹을 한 번에 실행하여 작.. 2023. 5. 14.