본문 바로가기

728x90

분류 전체보기

[Spring MVC] [Asciidoc] Asciidoc이란 Asciidoc은 Spring Rest Docs를 통해 생성되는 텍스트 기반 문서 포맷이다 Asciidoc 포맷을 사용해서 메모, 문서, 기사, 서적,E-Book,웹 페이지, 메뉴얼 페이지, 블로그 게시물 등을 작성할 수 있으며 Asciidoc 포맷으로 작성된 문서는 HTML, PDF, EPUB,메뉴얼 페이지를 포함한 다양한 형식으로 변환될 수 있다. 또한 Asciidoc은 주로 기술 문서 작성을 위해 설계된 가벼운 마크업 언어 이기도하다 Spring Rest Docs를 통해 만들어지는 문서 스니핏과 이 문서 스니핏을 사용하는 템플릿 문서는 Asciidoc포맷의 문서로 이루어져 있기 때문에 우리가 제공하는 API문서를 사용하는 이들이 직관적으로 API문서를 이해할 수 있는 수준 정도의.. 더보기
[어노테이션 정리][계속해서 수정중] 이 글은 어노테이션에 대해 이해를 돕기위해 쓰는 글이며 계속해서 수정을 통해 업데이트 될예정입니다. RestController :해당 클래스가 REST API의 리소스(자원,Resource)를 처지하기 위한 API 엔드포인트로 동작함을 정의한다 :@RestController가 추가된 클래스는 애플리케이션 로딩 시, Spring Bean으로 등록해준다. RequestMapping :클라이언트의 요청과 클라이언트 요청을 처리하는 핸들러 메서드(Handler Method)를 매핑해주는 역할을 한다 :Contoller 클래스 레벨에 추가하여 클래스 전체에 사용되는 공통 URL(Base URL)설정을 한다 SprinBootApplication :자동 구성을 활성화 한다 :애플리케이션 패키지 내에서 @Compone.. 더보기
[Spring MVC][Spring Rest Docs] 학습 목표 Spring Rest Docs가 무엇인지 이해할 수 있다. 테스트 코드 작성 1).슬라이스 테스트 코드 작성 Spring Rest Docs는 Controller의 슬라이스 테스트와 밀접한 관련이 있다. Controller에 대한 슬라이스 테스트 코드를 작성한다 2).API 스펙 정보 코드 작성 슬라이스 테스트 코드 다음에 Controller에 정의 되어 있는 API 스펙 정보(Response Body, Request Body , Query Parameter 등)를 코드로 작성한다 test 테스크(task) 실행 작성된 슬라이스 테스트 코드를 실행한다 하나의 테스트 클래스를 실행시켜도 되지만 일반적으로 GRadle의 빌드 테스크(task)중 하나인 test task를 실행시켜 API 문서 스니핏.. 더보기
[Spring MVC][API 문서화] 학습 목표 API 문서화가 왜 필요한지 이해할 수 있다. API 문서화란 API 문서화란 클라이언트가 REST API 백엔드 애플리케이션에 요청을 전송하기 위해서 알아야 되는 요청 정보(요청URL(또는URI), request body, query parameter 등)를 문서로 정리한 것을 의미한다 API사용을 위한 어떤 정보가 담겨 있는 문서를 API문서 또는 API 스펙(사양)이라고 한다 API문서는 개발자가 요청 URL&URI 등의 API 정보를 직접 수기로 작성할 수도 있고 애플리케이션 빌드를 통해 API 문서를 자동 생성할 수도있다. API 문서 생성의 자동화가 필요한 이유 한번 작성된 API 문서에 기능이 추가되거나 수정되면 API 문서 역시 함께 수정되어야 하는데 update를 못한경우 클라.. 더보기
[SpringMVC][TDD] 학습 목표 TDD가 무엇인지 이해할 수 있다. TDD란(Test Driven Development, 테스트 주도 개발) 테스트가 개발을 주도하는 방식, TDD는 테스트 코드를 먼저 작성하고 그 다음에 기능을 구현한다. TDD의 개발 흐름을 이해할 수 있다. TDD는 모든 조건에 만족하는 테스트를 먼저 진행한 뒤에 조건에 만족하지 않는 테스트를 단계적으로 진행하면서 실패하는 테스트를 점진적으로 성공시켜 나간다 TDD는 테스트 실행 결과가 "failed"인 테스트 케이스를 지속적으로 그리고 단계적으로 수정하면서 테스트 케이스 실행 결과가 "passed"가 되도록 만든다 TDD는 테스트가 "passed"될만큼의 코드만 우선 작성한다 TDD는 "실패하는 테스트 -> 실패하는 테스트를 성공할 만큼의 기능 구현 -.. 더보기
[Spring MVC][Mockito] 학습 목표 Mock의 의미를 이해할 수 있다. 테스트 세계에서의 Mock은 바로 가짜 객체를 의미한다. Mock객체를 사용하는 이유 위 그림을 보면 MemberController의 postMember() 핸들러 메서드쪽만 테스트해야 되는데 서비스 계층을 거쳐 데이터 액세스 계층 그리고 데이터베이스까지 그 동작 흐름이 끝까지 이어졌다가 되돌아 오기 때문에 슬라이스 테스트라기 보다 통합 테스트에 가깝다. 슬라이스 테스트의 목적은 해당 계층 영역에 대한 테스트에 집중하는 것이다. MemberController에서 MemberService 클래스의 createMember()를 호출하지 않고, MockMemberService 클래스의 createMember()를 호출한다. Mock객체를 이용함으로써 다른 계층과 .. 더보기
[Spring MVC][Slice Test] 학습 목표 슬라이스 테스트(Slice Testing)의 의미를 이해할 수 있다. 슬라이드 테스트란? 단위 테스트의 경우 일반적으로 특정 모듈이나 계층, 기술에 의존적이지 않도록 작성하는 것이 좋다 그런데 단위 테스트만으로는 애플리케이션의 모든 기능이 정상적으로 동작한다고 볼 순 없다. 하나의 애플리케이션은 계층별로 역할이 있고, 계층별로 서로 연동되기 때문에 각각의 계층 별로 잘 작동하는지 테스트를 진행한 후에 마지막으로 통합 테스트를 통해 계층 간의 연동에 문제가 없는지 확인해야 개발자의 테스트 작업이 마무리되는 것이라 할 수 있다. 각 계층에 구현해 놓은 기능들이 잘 작동하는지 특정 계층만 잘라서 테스트하는 것을 슬라이스 테스트라고 한다. 애플리케이션의 특정 수정 사항으로 인해 영향을 받을 수 있는 .. 더보기
[JUnit으로 비즈니스 로직에 단위 테스트 적용하기] 핵심 포인트 JUnit의 기본 사용법을 이해할 수 있다. JUnit은 java언어로 만들어진 애플리케이션을 테스트하기 위한 오픈 소스 테스트 프레임워크로서 사실상 Java의 표준 테스트 프레임워크라고도 한다. assertThrows(NullPointerException.class, () -> getCryptoCurrency("XRP")); } private String getCryptoCurrency(String unit) { return CryptoCurrency.map.get(unit).toUpperCase(); } 첫번째 파라미터에는 발생이 기대되는 예외 클라스를 입력, 두번째 파라미터인 람다 표현식에서는 테스트 대상 메서드를 호출, 두번째 파라미터엔 찾을수 없는 값이 있고 첫번째는 이미 없을껄 알.. 더보기

728x90