Spring

    [JUnit5] @AfterEach 사용해 테스트 실행 이후 작업 처리하기

    @AfterEach는 언제 사용하는가? @AfterEach를 사용하면, 각 테스트 이후 실행되어야 하는 작업을 설정할 수 있다. 예를 들어 영속적인 데이터들이 초기화 되어야 하는 경우 사용될 수 있으며, 대표적으로 테스트 시 사용하는 데이터 베이스를 테스트 하는 경우 인메모리 데이터베이스를 사용하게 되는데, 이런 데이터 베이스를 초기화 할 때 사용할 수 있다. @AfterEach 사용 예시 예를 들어 다음과 같이 MyDatabase라는 이름의 RoomDataBase가 있고, 테스트에 MyDatabase를 사용한다면, 마지막에 꼭 close를 실행해줘야 테스트 시 리소스를 정리할 수 있다. 이때, 다음과 같이 @AfterEach를 사용해 myDatabase를 close 해줌으로써 각 테스트 이후 데이터 베..

    [JUnit5] @BeforeEach를 사용한 테스트 환경 설정

    하나의 클래스에 대한 여러 테스트 만들기 테스트를 작성하게 되면 하나의 클래스에 여러 테스트가 작성된다. 예를 들어 다음과 같이 가변 인자로 받는 모든 정수에 대해 곱하기를 실행하는 SimpleMultiplier 객체가 있다고 해보자. class SimpleMultiplier() { fun multiplyAll(vararg numbers: Int): Int { return numbers.fold(1) { acc, number -> acc * number } } } 이 객체에 대한 간단한 테스트 케이스와 테스트를 작성하면 다음과 같다. 1. 일반적인 곱하기가 제대로 실행되는지 살펴야 한다. @Test fun `check_2_multiply_3_is_6`() { // Given val simpleMultip..

    리다이렉트(Redirect)와 포워드(Forward)의 차이는 무엇인가?

    리다이렉트와 포워드 특정 URL 접속 시 리다이렉트 또는 포워드가 일어나게 되면 작업 중인 페이지가 전환된다. 리다이렉트와 포워드는 페이지가 전환된다는 점에서 비슷한 역할을 한다. 하지만 이 둘 사이에는 페이지를 전환하는 주체가 다르다는 큰 차이점이 있는데, 이 차이점이 동작에 큰 영향을 미친다. 리다이렉트는 페이지 전환 주체가 클라이언트이며, 포워드는 페이지 전환 주체가 서버이다. 클라이언트가 주체가 되어 페이지를 전환하는 방법은 접속한 URL이 아닌 다른 URL로 직접 접속하는 방법 밖에 없다. 반대로 서버가 전환 주체가 되면 URL 주소가 바뀌지 않고도 서버 내부의 동작을 통해 다른 응답을 클라이언트에 내려줄 수 있게 된다. 리다이렉트와 포워드가 무엇인지, 어떻게 동작이 다른지를 살펴볼 것이다. 리..

    Spring MVC Framework란 무엇인가? Spring MVC의 구조와 의의

    Spring MVC란 무엇인가? Spring MVC는 Spring에서 제공하는 웹 모듈로, Model, View, Controller 세가지 구성요소를 사용해 사용자의 다양한 HTTP Request을 처리하고 단순한 텍스트 형식의 응답부터 REST 형식의 응답은 물론 View를 표시하는 html을 return하는 응답까지 다양한 응답을 할 수 있도록 프레임웍이다. Spring MVC는 다양한 요청을 처리하고 응답하기 위해 주요 구성요소들을 만들어놓고 구성요소들을 확장할 수 있게 만들어 놓는데, 이들을 제대로 사용하기 위해서는 MVC가 어떻게 구성되어 있는지를 알아야 한다. 이번 글에서는 MVC가 어떤 구조로 이루어져 있는지, 각 구성요소들이 어떤 역할을 하는지를 알아볼 것이다. Sprint MVC의 구조..

    Intellij에서 Groovy 프로젝트 만들기

    Intellij에서 Groovy 프로젝트 만들기 Intellij에서 Groovy 프로젝트를 만들기 위해서는 Groovy SDK를 다운 받아 Intellij에 경로를 설정해주어야 한다. Groovy SDK 다운 받기 1. https://groovy.apache.org/download.html 에서 Download 4.0.0 버튼을 눌러 Groovy를 다운 받는다. 글 작성 시점 기준으로 최신 버전은 4.0.0 버전이다.