개요 이번 글에서는 Spring Boot 기본 프로젝트에 AssertJ 만을 추가하여 프로젝트에 구현된 REST API에 대한 유닛 테스트를 작성하는 방법을 간단히 정리하였다. build.gradle.kts 프로젝트 루트의 build.gradle.kts에 아래 라이브러리를 추가한다. dependencies { testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("org.assertj:assertj-core:3.23.1") } @SpringBootTest 클래스 작성 유닛 테스트의 본체가 되는 클래스를 작성할 차례이다. 실제 컨트롤러에 대응되는 유닛 테스트는 개별 클래스로 작성하고 본체 클래스에서..
개요 RFC 7386에 해당하는 JSON Merge Patch 스펙에 따르면 HTTP PATCH 요청시 Partial Update의 대상이 되는 필드들을 가변적으로 전달할 수 있어야 한다. 문제는 Spring Boot 기반의 기본 프로젝트 구성으로는 특정 필드를 null로 교체하라는 것인지, 교체 대상이 아니라는 것인지 식별할 수 있는 방법이 없다는 것이다. 이번 글에서는 이를 해결하기 위해 등장한 Jackson 기반의 JsonNullableModule 모듈을 소개하고 사용법을 소개하고자 한다. build.gradle.kts 아래와 같이 jackson-databind-nullable 라이브러리를 프로젝트에 추가한다. dependencies { implementation("org.openapitools:j..
개요 프로젝트를 진행하다 보면 불가피하게 코드에서 외부 명령어를 실행하고 결과를 획득하여 확인해야할 경우가 생긴다. 이번 글에서는 Kotlin 라이브러리를 이용하여 외부 명령어를 실행하고 결과를 획득하는 방법을 정리하였다. build.gradle.kts 아래와 같이 kscript-tools 라이브러리를 프로젝트에 추가한다. dependencies { implementation("com.sealwu:kscript-tools:1.0.22") } 외부 명령어 실행 예제 위 라이브러리의 도움으로 아래 2가지 방법으로 쉽게 외부 명령어를 실행할 수 있다. // [방법 1] 명령어 실행 결과를 콘솔에 출력 "ls -al".runCommand() // [방법 2] bash 쉘에서 명령어 실행 후 결과를 반환, env..
개요 JPA의 엔티티를 설계하고, 유지보수하고 DDL을 통한 데이터베이스의 변경점을 형상관리하는 것은 신중함이 요구되면서 굉장히 번거로운 작업들이다. IntelliJ IDEA의 무료/유료 플러그인인 JPA Buddy를 사용하면 이런 부분들을 편리하게 UI 기반으로 자동으로 관리할 수 있다. Java, Kotlin을 모두 지원한다. 사전 요구 지식 JPA Buddy를 잘 사용하려면 JPA, Spring Data JPA에 대한 이해가 선행되어야 한다. Spring Boot Persistence Best Practices 전자책 정독을 추천한다. 플러그인 설치 IntelliJ IDEA 실행 후 아래 순서로 플러그인을 설치한다. File → Settings → Plugins → Marketplace → [JPA..
- Total
- Today
- Yesterday
- jpa
- Eclipse
- Kendo UI Web Grid
- chrome
- java
- spring
- node.js
- maven
- Spring Boot
- JavaScript
- Kendo UI
- kotlin
- Spring MVC 3
- 로드 바이크
- MySQL
- Tomcat
- 알뜰폰
- graylog
- jstl
- 평속
- CentOS
- 구동계
- JHipster
- bootstrap
- Docker
- DynamoDB
- jsp
- 자전거
- 로드바이크
- 태그를 입력해 주세요.
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |