Spring Boot
Kotlin, Spring Validation 이용한 입력 데이터 유효성 검증
Kotlin, Spring Validation 이용한 입력 데이터 유효성 검증
2022.03.03어떤 요청에 대한 입력값에 대해서 코드상으로 하나하나 유효성 검증을 하는 것은 상당히 번거로운 일입니다. 예를들어, 어떤 날짜 입력이 주어졌는데 제대로된 날짜 형식으로 입력했는지 검증하는 코드를 로직상에 추가했다면 비즈니스 로직에 집중해야 될 코드가 오염될 수 있습니다. Spring에서 제공하는 Validation은 이와 같은 입력값에 대한 유효성 검증을 Controller단과 별개로 진행해 간편하게 진행할 수 있도록 기능을 제공하고 있습니다. Spring Validation에 대한 내용을 정리해보고자 합니다. 📌 1. gradle 설정 implementation 'org.springframework.boot:spring-boot-starter-validation' Spring Boot 2.3 버전 부터..
[JPA] 변경감지 개념과 @Transactional 위치에 따른 변경감지 사용
[JPA] 변경감지 개념과 @Transactional 위치에 따른 변경감지 사용
2022.02.15데이터 변경 로직에서 JPA 변경감지 기능을 자주 접할 수 있는데요. JPA 변경감지에 대해서 짤막한 정리와 함께 @Transactional과 같이 사용할 때 어떠한 점을 유의해야 되는지에 대해서 정리해보고자 합니다. 📌 데이터 변경을 위한 기본 로직 DB 테이블에 저장되어 있는 데이터의 정보를 수정하기 위해 update 하는 로직을 개발하고자 한다면 다음과 같은 논리적 절차를 거치게 될 것입니다. 트랜잭션 시작 변경하고자 하는 데이터의 id(주로 primary key)를 통한 where 조회 조회한 데이터에 수정할 내용들로 교체 update 처리 트랜잭션 커밋 물론 DB 콘솔 상에서는 변경할 데이터의 id를 가지고 있다면 update 쿼리하나로 바로 수정하면 됩니다. 하지만 어플리케이션단에서는 변경할 ..
[JUnit] Test 환경과 Dev 환경 분리(profile 활용한 DB 환경 분리, JUnit5)
[JUnit] Test 환경과 Dev 환경 분리(profile 활용한 DB 환경 분리, JUnit5)
2022.01.28직전 글에서 단위, 통합테스트 한꺼번에 진행을 위한 구성에 대해서 다루었습니다. 글 작성하고 더 알아보니 잘못된 내용들이 조금 있었더라구요. 이번 글에서는 저번 글에서의 잘못된 내용을 수정하면서 Test 환경과 Dev 환경 분리에 대해서 한 번 정리해보려 합니다. 📌 테스트, 개발 환경 분리를 위한 DB 구성 dependencies { //... runtimeOnly 'mysql:mysql-connector-java' runtimeOnly 'com.h2database:h2' //... } 저는 테스트 환경과 개발 환경 분리를 위한 구성을 해보고자 각각의 환경에서 사용되는 DB를 다르게 설정하였습니다. 저번 글에서는 테스트, 개발 환경 모두 embedded DB(h2)를 사용하다 보니 혼용되어 사용되거나 ..
[Spring Boot] H2 Database 설정(메모리방식)
[Spring Boot] H2 Database 설정(메모리방식)
2022.01.10Spring Boot로 개발할 때 간편하게 이용할 수 있는 h2 database에 대한 설정 내용을 기록하고자 합니다. 그 과정에서 에러 발생 및 처리에 대해서도 기록하고자 합니다. 해당 설정 내용은 github repository에서 확인할 수 있습니다. (Github Repo) GitHub - beaniejoy/test-project-repository: 🧪 Study & Test Repository, which manages and tests various frameworks, libraries 🧪 Study & Test Repository, which manages and tests various frameworks, libraries and modules, that consists of dire..