본문 바로가기

spring boot11

Spring Boot 3.2 가 릴리즈 되었습니다 JDK 21 발표 이후 2달 만에 JDK 21을 정식 지원하는 Spring Boot 3.2가 릴리즈 되었습니다. Spring Framework 6.1 릴리즈 이후 일주일 만에 나왔네요. JDK 21 지원과 더불어 어떤 새로운 기능들이 추가되었는지 정리했습니다. 1. 가상스레드 지원 가상 스레드를 사용하기 위해서는 JDK21 에서 실행해야 하고, spring.threads.virtual.enabled 속성을 true로 설정해야 합니다. 가상스레드를 활성화하면, Tomct이나 Jetty는 요청 처리에 가상스레드를 사용하게 됩니다. 그리고 applicationTaskExecutor Bean 은 가상스레드 사용을 위한 SimpleAsyncTaskExecutor으로 변경됩니다. 이로 인해서 @Async 호출로 E.. 2023. 11. 27.
ChatGPT 로 Spring Boot 프로젝트 뚝딱 만들기 ChatGPT 잘 활용하고 계신가요? 오늘은 ChatGPT 를 이용하여, Spring Boot 프로젝트를 한번 뚝딱 만들어보려고 해요. 샘플에서는 Spring Boot와 코틀린으로 작성된 도서 관리 서비스 프로젝트를 만들꺼예요. 단계별로 따라하기만 해보세요. 어떻게 활용할 수 있을지 감이 오실겁니다. 자 그럼 한번 해보실까요? 0️⃣ 준비 단계 : Spring Boot 프로젝트 생성 아래 사이트에서 Spring Boot 프로젝트를 생성합니다. https://start.spring.io/ 1️⃣ 단계 : API 설계하기 만들고자 하는 API 를 먼저 설계합니다. 제가 구글 엑셀에 미리 샘플을 만들어 두었어요. https://docs.google.com/spreadsheets/d/1jjumPWpmNbc_wX.. 2023. 2. 24.
[사소한 TIP] Spring Data JPA에서 FindBy 와 FindAllBy 차이점 Spring Data JPA를 사용하다보면 지금 상황에서 findBy 를 써야할지 FindAllBy를 써야할지 고민해보신적 있나요? 저는 보통 collection 을 리턴하면 findAllBy를 사용하고, 리스트로 반환은 되지만 1개의 아이템이 예상되면 findBy를 쓰곤 했는데요. 결론 먼저 말씀드리면 findBy와 findAllBy 는 동일한 동작을 합니다. 1. Entity 와 Repository 선언 아래와 같은 Entity와 Repository가 있습니다. Player @Entity public class Player { @Id @GeneratedValue(strategy = GenerationType.AUTO) private long id; private Integer score; //all-.. 2023. 2. 17.
Spring Boot + Angular 프로젝트들 Spring Boot 와 Angular 의 조합은 제가 선호하는 프레임워크 스택입니다. 간단한 프로젝트부터 대규모 프로젝트까지 협업하기에도 좋은 선택지라고 생각합니다. GitHub에 공개된 프로젝트가 몇가지 있어서 소개해볼까 합니다. 1. Task CRUD GitHub : github.com/revfactory/spring-boot-angular-example 작년에 제가 공개한 프로젝트로 간단하게 CRUD를 작성한 프로젝트입니다. 블로그 포스팅을 위해 프로젝트를 업데이트 했습니다. Spring Boot 와 Angular 는 같은 저장소를 사용했으며, 포트로 분리하여 실행하거나, Angular 빌드도 가능합니다. 자세한건 Readme를 참조하세요. Spring 은 H2Database가 설정되어 있으며, .. 2021. 2. 21.
Netflix DGS (Domain Graph Service) 시작하기 최근 Netflix 에서 Spring Boot에서 GraphQL 사용을 위한 DGS(Domain Graph Service) Framework 를 공개했다. GraphQL은 페이스북에서 공개한 API Query Language이다. 기존 Rest API 의 단점들을 보완하고 새로운 패러다임을 제시하여 현재 GitHub API 등 널리 쓰이고 있다. GraphQL은 단일 접점(End Point) 제공을 하며, 클라이언트가 원하는 데이터를 정확하게 응답해주는 방식이다. 예를 들어, 게시글 정보를 조회하려고 할 때 아래와 같은 Query를 요청하면 API서버는 요청에 맞는 정보만 내려주는 방식이다. query { articles(count: 20, offset: 0) {// 가장 최신의 20개 게시글 요청 id.. 2021. 2. 7.
Container Driven Development 시작하기 Container Driven Development 는 컨테이너화 된 환경 내에서 코드를 작성, 실행 및 테스트하는 개발 Flow이다. 컨테이너를 사용하면 애플리케이션의 빌드 및 패키징에 적용하며 자동화된 테스트를 비롯해 개발, Stage, Production에 단일 된 Artifact를 제공함으로써 전통적인 work flow에서 발생할 수 있는 많은 문제를 해결한다. 특히 환경차이 때문에 발생하는 문제와 버그가 최소화된다. 또한 빌드, 테스트, 배포 전반에 걸쳐 자동화된 프로세스 구축이 가능해지는데 이는 더 빠른 속도로 지속적 배포가 가능하게 한다. 컨테이너는 OS 수준에서 CPU, 메모리, Storage, 네트워크 리소스를 가상화한다. 민감한 프로세스는 하나의 논리적 Sandbox로 격리될 수 있으며.. 2021. 1. 30.