SpringBoot의 JSON 직렬화시 날짜 처리

Intro SpringBoot 버전을 1.5에서 2.5로 마이그레이션 한 이후로 인지하지 못했던 여러가지 변화 들이 하나 둘 씩 더 발견되고 있습니다. 이번에 발견된 변화는 꽤나 당황스러웠는데.. Date 객체를 JSON으로 직렬화 할 때, 그 형태가 달라졌다는 겁니다. API 를 제공하는 입장에서는 일관적인 포맷으로 제공해주는게 굉장히 중요한데 API 스펙 자체가 변경되어 버릴 수 있는 큰 문제 입니다. 비교를 해 보면 Spring Boot 1.5 에 의존하는 프로젝트 Spring Boot 2.5 에 의존하는 프로젝트 스프링 부트 버전이 달라졌을 뿐인데 반환하던 API의 포맷이 변경 되어 버렸습니다. 이 변경을 추적 해 보겠습니다. 다소 내용이 길기 때문에 과정을 건너 띄고 설정 방법만 보려면 Spri..

Programming/JPA ⁄ Spring 2022.04.28
Spring Boot 1.5 -> 2.5 마이그레이션 회고

Intro 최근 스프링 부트 1.5 버전으로 작성된 프로젝트를 Spring Boot: 2.5.10 버전으로 올리는 작업을 진행 하였습니다. 스프링부트 앞자리 버전 차이가 굉장히 큰데, 온라인 게임에 비유한다면 메이플스토리에서의 빅뱅 혹은 와우의 대격변 전후를 생각하면 이해가 빠르겠습니다. 단순히 pom.xml에서 버전 명시를 변경한다고 뿅 하고 바뀌는건 아니고, 스프링 부트 변경에 따라 여러가지 클래스가 사라지고 새로 생겨났으며 각종 메서드들의 변화도 상당합니다. 스프링 설정 하는 방법도 달라지고, 구석구석 영향이 가지 않는 곳이 거의 없기 때문에 프로젝트가 크면 클수록 그 여파가 상당합니다. 제가 이번에 마이그레이션을 진행한 프로젝트도 몇년간 진행되며 몇번의 고도화를 거친 프로젝트이다 보니 규모도 제법..

Programming/JPA ⁄ Spring 2022.03.15
HikariCP) Connection Pool 설정 및 확인하기

Intro 실제 사용하는 커넥션 수에 비해서 커넥션 풀을 넉넉하게 잡고 있었는데, 해당 DB를 여기저기서 다 사용하다 보니 커넥션 풀을 조금 타이트하게 가져가 달라는 요청을 받았습니다. Connection Pool을 조절하고, 실제로 DB에서 커넥션을 몇개나 물고 있는지 확인 해 보도록 하겠습니다. 설정 application.yml 스프링 부트에서 Hikari 설정은 spring.datasource.hikari 에 합니다. 변경 전 spring: datasource: type: com.zaxxer.hikari.HikariDataSource driver-class-name: org.postgresql.Driver url: jdbc:postgresql://localhost:5432/postgres usern..

Programming/JPA ⁄ Spring 2022.03.04
LDAP으로 스프링 시큐리티 인증하기

https://spring.io/guides/gs/authenticating-ldap/ 시작하기전에 우리는 이걸 할꺼에요. Spring Security의 임베디드 자바기반의 LDAP 서버에 의해 보안되는 간단한 웹 어플리케이션 몇몇 유저 셋을 포함한 데이터 파일과 LDAP 서버 로드 무엇이 필요해요? 15분의 시간 좋아하는 IDE 메모장도 상관 없어요! 하지만 STS나 IntelliJ IDEA가 있으면 더 쉽게 할 수 있어요. JDK 1.8 이상 Gradle 4 이상 혹은 Maven 3.2 이상 어떻게 따라해요? 대부분의 다른 Spring 가이드 문서들 처럼 완전 기초부터 하나씩 기본적인 단계를 따라하며 할거에요. 대부분 이미 익숙한 개념들이니 걱정 할 필요 없어요. 크게 두가지 방법이 있는데요. 어느 ..

Programming/JPA ⁄ Spring 2021.12.21
JPA) 데이터베이스 스키마 자동 생성

참고 강의 : 우아한 형제들 김영한 팀장님 https://www.inflearn.com/course/ORM-JPA-Basic/dashboard ​ hibernate.hbm2ddl.auto hibernate 에서는 해당 프로퍼티를 설정 함으로서 SessionFactory 가 생성 될 때 스키마 DDL(Data Definition Language)을 검증하고 내보낼 수 있습니다. hibernate.dialect 속성을 통해 데이터베이스에 적절한 DDL을 생성 하는데 이렇게 생성된 DDL은 개발 단계에서만 사용하는게 좋습니다. ​ hibernate.hbm2ddl.auto 속성의 value 에 들어 갈 수 있는 값은 아래와 같습니다. 옵션 하는일 create 기존 테이블을 삭제 한 뒤에 새로 생성 create-..

Programming/JPA ⁄ Spring 2021.09.22