랑아
article thumbnail
Spring MVC - Spring Rest Docs 3
Spring 2023. 4. 17. 16:12

Spring Rest Docs 스니핏을 이용한 API 문서화 API 문서 템플릿 생성을 위한 디렉토리 및 템플릿 문서 생성 API 문서 스니핏은 문서 일부에 포함되는 조각 모음이다. 이 조각 모음을 제대로 된 문서로 만들기 위해서는 스니핏을 포함하는 템플릿 문서가 필요하다. "index.adoc"파일을 아직 생성하지 않았다면 “src/docs/asciidoc” 디렉토리를 생성하고 비어 있는 “index.adoc” 파일을 생성한다. 템플릿 문서 내용 추가 = xxxx 애플리케이션 // (1) :sectnums: :toc: left :toclevels: 4 :toc-title: Table of Contents :source-highlighter: prettify Lee Dae Gyeom // (2) v1.0..

article thumbnail
Spring MVC - Spring Rest Docs 2
Spring 2023. 4. 17. 16:09

Spring Rest Docs Controller 테스트 케이스에 Spring RestDocs 적용 API 문서 생성을 위한 슬라이스 테스트 케이스 작성 API 문서 생성을 위한 테스트 케이스 기본 구조 import com.codestates.member.controller.MemberController; import com.codestates.member.mapper.MemberMapper; import com.codestates.member.service.MemberService; import com.google.gson.Gson; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowire..

article thumbnail
Spring MVC - Spring Rest Docs 1
Spring 2023. 4. 17. 16:07

Spring Rest Docs Spring Rest Docs란? Spring Rest Docs는 REST API 문서를 자동으로 생성해 주는 Spring 하위 프로젝트이다. Spring Rest Docs의 가장 큰 특징은 Controller의 슬라이스 테스트를 통해 테스트가 통과 되어야지만 API 문서가 정상적으로 만들어 진다는 것이다. Spring Rest Docs의 API 문서 생성 흐름 테스트 코드 작성 슬라이스 테스트 코드 작성 Spring Rest Docs는 Controller에 대한 슬라이스 테스트 코드를 먼저 작성한다. API 스펙 정보 코드 작성 슬라이스 테스트 코드 다음으로 Controller에 정의 되어 있는 API 스펙 정보(Request Body, Response Body, Quer..

article thumbnail
Spring MVC - API 문서화
Spring 2023. 4. 17. 16:05

API 문서화 API 문서화란? API 문서화란 클라이언트가 REST API 백엔드 애플리케이션에 요청을 전송하기 위해서 알아야 되는 요청 정보(요청 URL(또는 URI), request body, query parameter 등)를 문서로 잘 정리하는 것을 의미한다. API 문서화가 필요한 이유 우리가 개발한 REST API 기반의 백엔드 애플리케이션을 클라이언트 쪽에서 사용하려면 API 사용을 위한 어떤 정보가 필요하기 때문이다. API 사용을 위한 어떤 정보가 담겨 있는 문서를 API 문서 또는 API 스펙(사양)이라고 한다. API 문서는 개발자가 요청 URL(또는 URI) 등의 API 정보를 직접 수기로 작성할 수도 있고, 애플리케이션 빌드를 통해 API 문서를 자동 생성할 수도 있다. API ..

article thumbnail
Spring MVC - TDD
Spring 2023. 4. 17. 16:04

테스팅(Testing) TDD(Test Driven Development) TDD란? TDD(테스트 주도 개발)의 개념을 요약하면 '테스트를 먼저 하고 구현을 그 다음에 한다'라고 할 수 있다. TDD가 아닌 전통적인 개발 방식 어떤 서비스 애플리케이션을 개발할 때 개발 절차는 일반적으로 다음과 같다. (고객의 요청으로 고객이 원하는 시스템을 구축하는 것이 아닌, 서비스 제공 기업에서 불특정 다수의 회원에게 제공하는 서비스 애플리케이션을 의미) 서비스 제작에 관여하는 이해 당사자(기획자, 프톤트엔드 개발자, 백엔드 개발자, 웹 디자이너 등)가 모여 서비스에 대한 컨셉과 해당 컨셉에 따른 요구 사항을 지속적으로 수집한다. 수집된 요구 사항에 맞춰 서비스를 화면으로 제공하기 위한 UI(User..

article thumbnail
Spring MVC - Mockito
Spring 2023. 4. 17. 16:03

테스팅(Testing) Mockito Mock이란? 테스트 세계에서의 Mock은 바로 가짜 객체를 의미한다. 그리고 단위 테스트나 슬라이스 테스트 등에 Mock 객체를 사용하는 것을 Mocking이라고 한다. Mockito란? Mock 객체로 Mocking을 할 수 있게 해주는 여러 오픈 소스 라이브러리가 있지만 그 중에서 가장 많이 사용되고, Spring Framework 자체적으로도 지원하고 있는 Mocking 라이브러리가 Mockito이다. Mockito의 Mocking 기능을 이용해서 테스트하고자 하는 대상에서 다른 영역(다른 계층 또는 외부 통신이 필요한 서비스 등)을 단절시켜 오로지 테스트 대상에만 집중할 수 있다. 슬라이스 테스트에 Mockito 적용 Controller의 postMember..

article thumbnail
Spring MVC - 슬라이스 테스트 2
Spring 2023. 4. 17. 16:02

슬라이스 테스트(Slice Test) 데이터 액세스 계층 테스트 현재 데이터 액세스 계층에서 사용하고 있는 기술은 Spring Data JPA이며 Spring에서는 JPA에 대한 테스트를 쉽게 진행할 수 있는 몇 가지 방법들을 제공한다. 데이터 액세스 계층을 테스트 하기 위한 한 가지 규칙 DB의 상태를 테스트 케이스 실행 이전으로 되돌려서 깨끗하게 만든다. Repository 테스트 예시 saveMember() 테스트 예시 import com.codestates.member.entity.Member; import com.codestates.member.repository.MemberRepository; import org.junit.jupiter.api.Test; import org.springfram..

article thumbnail
Spring MVC - 슬라이스 테스트 1
Spring 2023. 4. 17. 16:01

슬라이스 테스트(Slice Test) 하나의 애플리케이션은 계층별로 역할이 있고, 계층별로 서로 연동되기 때문에 각각의 계층 별로 잘 동작하는지 테스트를 진행한 후에 마지막으로 통합 테스트를 통해서 계층 간의 연동에 문제가 없는지 확인해야 비로소 개발자의 테스트 작업이 마무리 되는것이라고 할 수 있다. 이처럼 개발자가 각 계층에 구현해 놓은 기능들이 잘 동작하는지 특정 계층만 잘라서 테스트하는 것을 슬라이스 테스트(Slice Test)라고 한다. 참고사항 통합 테스트는 아니지만 QA 부서에서 본격적으로 전체적인 기능 테스트를 진행하기 전에 애플리케이션의 특정 수정 사항으로 인해 영향을 받을 수 있는 범위에 한해서 제한된 테스트를 진행하기도 한다. 테스트 세계에서는 이를 스모크 테스트(Smoke Test)..