부트캠프 개발일기/Spring MVC19 59일차: 빌드 / 실행 / 배포 ❯ 애플리케이션 빌드(Build) 이때까지 실습을 통해 구현한 애플리케이션은 로컬 환경에서 실행시켜 정상 작동되는 것을 확인하였다. 실제로 애플리케이션을 개발하고 로컬환경이 아닌 서버 환경에서 실행시키기 위해서는 빌드 툴을 사용하는 방법을 알고 있어야 한다. 여러 가지 빌드 방법 중 Gradle을 이용해 소스코드를 빌드하는 방법을 학습하고자 한다. IntelliJ IDE를 이용한 빌드 Spring Boot를 이용한 애플리케이션의 경우 Spring Boot 자체에서 Gradle 빌드 툴을 이용해 애플리케이션을 빌드할 수 있는 플러그인을 지원한다. :bootJar :build task를 통해 build/libs경로에 Jar파일을 생성할 수 있다. :build task -> Gradle에서 빌드와 관련된 모든.. 2023. 5. 8. 58일차: Spring Rest Docs 사용을 위한 build.gradle 설정 Spring Rest Docs 사용을 위해서는 build.gradle에 다음과 같은 설정을 추가해야한다. 버전이나 일부 내용은 사용 환경이나 개발 방향에 따라 변경될 수 있다. // (1) plugins { id "org.asciidoctor.jvm.convert" version "3.3.2" } // (2) ext { set('snippetsDir', file("build/generated-snippets")) } // (3) configurations { asciidoctorExtensions } // (4) dependencies { testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc' // (4-1) asciidocto.. 2023. 5. 4. 57일차: API 문서화 ❯ API 문서화 애플리케이션의 API를 사용할 수 있도록 해주는 것을 API 문서화라고 한다. 클라이언트가 백엔드 애플리케이션에 요청을 전송하기 위해 알아야하는 요청 정보(URL, RequestBody, Query Parameter 등)를 문서로 정리한 것을 API 문서, API 스펙(사양)이라고 한다. API 문서를 직접 작성할수도 있겠지만 혹시 코드 일부가 변경되었을 때 해당 부분을 찾아서 수정해야하는 번거로움이 있다. 따라서 문서 자동화를 통해 시간을 단축하고 완성도를 향상시킬 수 있다. API 문서화를 하는 방법은 크게 두가지가 있다. Swagger: API 문서 자동화 오픈소스. 소스코드에 @ApiOperation, @ApiResponse, @ApiParam 등의 애너테이션을 붙여서 문서화를.. 2023. 5. 3. 56일차: Mockito ❯ Mock 사전적으로 "가짜의, 모의의, 거짓의" 라는 뜻을 가진다. 진짜와 유사하게 기능을 테스트 해볼 수 있도록 하는 가짜 객체를 의미한다. 프로그래밍에서 Mock 객체를 사용하는 것을 Mocking 이라고 한다. 테스트에서 Mock 객체를 사용하는 이유는 슬라이스 테스트 등에서 해당 테스트 영역에 집중하기 위해서이다. Mock 객체를 사용하지 않을때는 Controller 테스트를 위해서 서비스계층과 데이터 액세스 계층까지 흐름이 이어진다. 이 때 Mock 서비스 객체를 사용해서 Mock 객체의 메서드를 호출함으로써 다른 계층들까지 흐름이 이어지지 않는다. ❯ Mockito Mock 객체로 Mocking을 할 수 있게 해주는 대표적인 오픈 소스 라이브러리이다. 1. @MockBean @MockBea.. 2023. 5. 2. 55일차: 슬라이스 테스트 슬라이스 테스트란 특정 계층만 잘라서(Slice) 테스트하는것을 의미한다. ❯ API 계층 테스트 API 계층 테스트 대상은 클라이언트 요청을 받아들이는 Controller 라고 할 수 있다. 크게 두가지 애너테이션을 사용해 테스트 코드를 작성할 수 있다. @SpringBootTest: 스프링 부트 기반 애플리케이션 테스트를 위한 Application context를 생성한다. @AutoConfigureMockMvc: Controller 테스트를 위한 자동 구성작업을 해준다. MockMvc 객체를 사용가능하게하며 MockMvc를 통해 Controller의 메서드를 호출할 수 있다. // Controller 테스트 클래스 기본 구조 import org.junit.jupiter.api.Test; import.. 2023. 5. 1. 54일차: 테스팅(단위테스트, JUnit) ❯ 테스팅(Testing) 애플리케이션 구현을 하고나면 코드가 의도한대로 작동하는지 테스트를 해야한다. 테스트란 어떤 대상에 대한 기준을 정해놓고 정해진 기준에 맞는지 검증하는것을 의미한다. 애플리케이션 테스트는 크게 네가지로 구분할 수 있다. 기능테스트: 애플리케이션을 사용하는 사용자 입장에서 기능이 올바르게 동작하는지 테스트 하는것 통합테스트: 클라이언트 툴 없이 테스트 코드를 통해 애플리케이션이 정상 동작하는지 테스트 하는것 슬라이스 테스트: 특정 계층이 올바르게 동작하는지 테스트 하는것. Mock(가짜) 객체를 사용해서 테스팅 단위테스트: 기능이 제대로 동작하는지 테스트하는것. 대부분 메서드 단위로 작성됨. 단위테스트 F.I.R.S.T 원칙 Fast: 테스트 케이스는 빨라야한다. Independe.. 2023. 4. 28. 이전 1 2 3 4 다음