본문 바로가기

개발 이야기/Spring Boot

(8)
[10분 Boot-up] Kotlin으로 스프링부트 Web Application 만들기 - (7) 단위 테스트(Unit Test) JUnit5 적용하기 Kotiln과 Spring Boot을 모르더라도 10분씩 따라하면서 자연스럽게 Web Application을 만들어보는 것이 목표입니다. 각 챕터에서 나오는 중요한 내용은 별도로 [더 알아보기]에 보충해서 작성할 예정입니다. 시작하기 이번에는 Service의 함수들에 대한 단위 테스트를 작성하는 방법을 소개한다. 단위 테스트란 기존의 작성된 코드를 검증하는 자동 테스트를 말한다. 단위 테스트는 TDD(테스트 주도 개발)에 아주 중요한 도구가 되기도 한다. 보통 단위 테스트를 작성할 때 몇 가지 프레임워크를 함께 사용하는데 대표적으로 JUnit과 MockK 프레임워크이다. JUnit은 자바의 단위 테스트를 위한 프레임워크 도구로 Assert 단정문을 통해서 테스트 수행 결과를 판별하여 결과를 리포트해준다...
[10분 Boot-up] Kotlin으로 스프링부트 Web Application 만들기 - (6) Service Layer 적용하기 Kotiln과 Spring Boot을 모르더라도 10분씩 따라하면서 자연스럽게 Web Application을 만들어보는 것이 목표입니다. 각 챕터에서 나오는 중요한 내용은 별도로 [더 알아보기]에 보충해서 작성할 예정입니다. 시작하기 보통 Spring Boot로 Web Application을 만들다보면 대부분의 프로젝트가 pakage 구조를 controller, service, repository로 나누고 있는 것을 발견할 수 있다. 대부분의 프로젝트가 이런 일관된 구조를 가지는 이유는 Spring에서 지향하는 계층 구조인 3 Tier Architecture(3계층 구조 - Presentation Layer, Business Layer, Persistence Layer)를 반영하기 위해서라고 생각하면 된..
[10분 Boot-up] Kotlin으로 스프링부트 Web Application 만들기 - (5) Spring Data 적용하기 Kotiln과 Spring Boot을 모르더라도 10분씩 따라하면서 자연스럽게 Web Application을 만들어보는 것이 목표입니다. 각 챕터에서 나오는 중요한 내용은 별도로 [더 알아보기]에 보충해서 작성할 예정입니다. 시작하기 대부분의 Web Application은 데이터베이스(DB)에 저장된 데이터의 CRUD를 함께 수행하면서 비지니스 로직을 처리하는 경우가 많다. 이런 데이터베이스 저장소(MySQL, Redis, MongoDB 등)의 종류가 매우 다양하기 때문에, 만약 특정 저장소에 강합 결합도를 가진 Web Application이 있다면 상황에 따라서 언제든지 변경될 수 있는 Storage Layer의 변경이 매우 어려워진다. 이런 이슈를 해소하기 위해서 Spring은 Storage Laye..
[10분 Boot-up] Kotlin으로 스프링부트 Web Application 만들기 - (4) Spring MVC 적용하기 Kotiln과 Spring Boot을 모르더라도 10분씩 따라하면서 자연스럽게 Web Application을 만들어보는 것이 목표입니다. 각 챕터에서 나오는 중요한 내용은 별도로 [더 알아보기]에 보충해서 작성할 예정입니다. 시작하기 전에 지금까지는 spring-boot-starter를 사용해서 Spring Boot Application을 만들어봤다. 앞에서 우리가 만든 Application은 실행시키면 Logging만 수행하고 바로 종료되는 단순한 Java Application이다. 여기서 우리가 주의해야하는 점은 Spring과 Spring Boot는 그 자체로는 Web Application 프레임워크가 아닌, Java 개발을 쉽게 사용할 수 있게 도와주는 Java Application 프레임워크이라는..
[10분 Boot-up] Kotlin으로 스프링부트 Web Application 만들기 - (3) Logback 설정하기 Kotiln과 Spring Boot을 모르더라도 10분씩 따라하면서 자연스럽게 Web Application을 만들어보는 것이 목표입니다. 각 챕터에서 나오는 중요한 내용은 별도로 [더 알아보기]에 보충해서 작성할 예정입니다. 시작하기 전에 Web Application을 운영하다보면 Application 자체의 Matrix 정보도 서비스 모니터링에 매우 중요한 요소지만 Logging은 비지니스 로직의 동작과 오류를 자세하게 추적할 수 있는 또 하나의 강력한 요소라고 생각한다. 특히 Error가 발생한 상황에서 남긴 적절한 Logging은 어느 부분에서, 어떻게 문제가 발생했는지 추적할 수 있는 가장 중요한 첫번째 단서가 된다. Logging을 수행하기 위한 Logger로서 Java 생태계에서는 Log4j(..
[스프링부트] Spring Boot의 Relaxed Binding 이란? Spring Boot는 Environment프로퍼티를 @ConfigurationProperties 빈에 바인딩하기 위해 Relaxed Binding 규칙을 사용하기 때문에 Environment 프로퍼티 이름과 Bean 프로퍼티 이름을 정확히 일치할 필요가 없다. Relaxed Binding이란 프로퍼티와 환경 변수들의 구분을 어느정도 유연한 규칙으로 동일하게 인식한다고 이해하면 된다. 대표적으로 Camel case와 Snake case로 각각 설정된 값들이 있다면 이를 동일한 설정으로 이해하며, 우선순위에 맞게 내부적으로는 1개의 값으로 설정한다. 대시(-)로 구분된 환경 프로퍼티(ex. context-path를 contextPath에 바인드)와 대문자로 작성(capitalized)된 환경 프로퍼티(ex..
[10분 Boot-up] Kotlin으로 스프링부트 Web Application 만들기 - (2) Profile 설정하기 Kotiln과 Spring Boot을 모르더라도 10분 동안 따라하면서 자연스럽게 Web Application을 만들어보는 것이 목적입니다. 각 챕터에서 나오는 중요한 내용은 별도로 [더 알아보기]에 보충해서 작성할 예정입니다. 시작하기 이 블로그를 참고하고 Kotlin으로 Spring Boot 웹 어플리케이션을 시작하는 분들은 아래 글을 먼저 읽고 오는 것을 추천한다. 1. [10분 Boot-up] 스프링부트 웹 어플리케이션 만들기 - (1) 개발 환경 설정하기 [10분 Boot-up] 스프링부트 Web Application 만들기 - (1) 개발 환경 설정하기(Gradle) 시작하며 요즘 Kotlin으로 Spring Boot 웹 어플리케이션 서버를 개발하고 있다. 작년까지 평범하게 Java 8 버전으..
[10분 Boot-up] Kotlin으로 스프링부트 Web Application 만들기 - (1) 개발 환경 설정하기(Gradle) Kotiln과 Spring Boot을 모르더라도 10분씩 따라하면서 자연스럽게 Web Application을 만들어보는 것이 목표입니다. 각 챕터에서 나오는 중요한 내용은 별도로 [더 알아보기]에 보충해서 작성할 예정입니다. 시작하기 요즘 Kotlin으로 Spring Boot 웹 어플리케이션 서버를 개발하고 있다. 작년까지 평범하게 Java 8 버전으로 Spring Boot 2.3 기반으로 서버를 개발했었는데 벌써 Spring Boot는 2.4버전이 나오고, 나는 Kotlin을 사용하고 있다. 세월도 빠르지만 기술의 발전 속도는 점점 더 빨라지고 새로운 기술의 등장은 더 많아지는 것 같다. 사실 Kotlin 자체가 등장한지는 꽤 됐지만, Android 개발을 넘어 Java 생태계의 Spring Boot ..