이번에는 멤버십 삭제 및 포인트 적립 API를 개발해보도록 하겠습니다. 1. 멤버십 삭제 API 구현 [ 요구사항 확인 ] 나의 멤버십 삭제 API 기능: 나의 멤버십을 삭제합니다. 요청: 사용자 식별값, 멤버십 번호 응답: X [ Repository 계층 개발 ] 이번에도 다른 API와 마찬가지로 Repository 계층부터 테스트를 작성하도록 하자. 엔티티 객체의 삭제를 위해 JPARepository는 deleteById라는 메소드를 제공하고 있다. 1개의 엔티티를 먼저 추가하고, 이 엔티티를 삭제하는 테스트 코드를 작성해보도록 하자. 멤버십 번호로 멤버십 객체를 찾기 위해 findById도 사용해야 하지만, deleteById와 유사하므로 넘어가도록 하자. @Test public void 멤버십추가..
이번에는 멤버십 전체/상세 조회 관련 API를 개발해보도록 하겠습니다. 1. 멤버십 전체 조회 API 구현 [ 요구사항 확인 ] 나의 멤버십 전체 조회 API 기능: 내가 가진 모든 멤버십을 조회합니다. 요청: 사용자 식별값 응답: {멤버십 ID, 멤버십 이름, 포인트, 가입 일시}의 멤버십 리스트 [ Repository 계층 개발 ] 이전에 멤버십 등록 API를 개발할 때와 마찬가지로, 이번에도 먼저 구현할 계층은 Repository 계층이다. 또한 TDD 기반으로 개발을 하고 있으므로, 이번에도 역시 사용자 식별값으로 멤버십 정보 목록을 DB에서 조회하는 Repository에 대한 테스트 코드를 먼저 작성해보도록 하자. 이번에는 데이터가 없는 경우와 데이터가 있는 경우를 한번에 작성하도록 하자. @T..
이번에는 TDD로 멤버십 등록 API를 구현해보도록 하겠습니다. 첫 API를 개발하는 것이므로 다른 로직에서 사용되는 공통 로직들도 많이 있어서 작업이 적지는 않을 것 같은데, 열심히 첫 API를 개발해보도록 하겠습니다. 1. 멤버십 등록 API 구현 [ 요구사항 확인 ] 나의 멤버십 등록 API 기능: 나의 멤버십을 등록합니다. 요청: 사용자 식별값, 멤버십 이름, 포인트 응답: 멤버십 ID, 멤버십 이름 [ Repository 계층 개발 ] 앞선 포스팅에서 살펴봤던 것처럼 Repository의 메소드 중에서 멤버십을 DB에 추가하는 테스트 코드를 먼저 작성해보고자 한다. MembershipRepository에 대한 테스트 클래스를 작성하면 다음과 같다. public class MembershipRep..
이번에는 TDD로 구현해볼 연습 문제에 대해 소개하고, 프로젝트 생성까지 한 후에 마무리하도록 하겠습니다. 1. TDD 연습문제 소개와 요구사항 분석 [ 문제 설명 ] 이번 연습 문제의 주제는 멤버십 적립 서비스입니다. 현재 지원중인 멤버십에는 네이버, 카카오, 라인 3가지 멤버십이 있으며, 사용자는 원하는 멤버십을 등록할 수 있습니다. 포인트 적립비율은 결제금액의 1%로 고정되며, 추후에 고정 금액(1000원)으로 확장하여 적립될 수 있어야 합니다. 이번 연습문제에서는 위의 문제 설명과 아래의 요구사항을 만족하는 REST API를 자유롭게 정의하고, TDD 방식으로 구현하는 것입니다. [ 기능 요구 사항 ] 멤버십 연결하기, 나의 멤버십 조회, 멤버십 연결끊기, 포인트 적립 API 를 구현합니다. 사용..
이번에는 디스패처 서블릿(Dispatcher Servlert)이 HTTP 요청을 처리하는 방법에 대해서 알아보도록 하자 1. 디스패처 서블릿(Dispatcher Servlert)이 HTTP 요청을 처리하는 방법과 핸들러 메소드(HandlerMethod) [ 핸들러 메소드(HandlerMethod)란? ] HandlerMethod는 @RequestMapping과 그 하위 어노테이션(@GetMapping, @PostMapping 등)이 붙은 메소드의 정보를 추상화한 객체이다. HandlerMethod는 그 자체가 실행가능한 객체가 아니라 메소드를 실행하기 위해 필요한 참조 정보를 담고 있는 객체로써 다음과 같은 정보들을 가지고 있다. 빈 객체 메소드 메타정보 메소드 파라미터 메타정보 메소드 어노테이션 메타정..