1. Spring Rest API 기본 세팅
2. Event 도메인 구현
3. Event 생성 API 구현 : 201 응답 받기
4. Event 생성 API 구현 : EventRepository 구현
5. Event 생성 API 구현 : 입력값 제한하기
6. Event 생성 API 구현 : 입력값 이외에 에러 발생
1. Spring Rest API 기본 세팅
- Java Version :
11
- SpringBoot Version :
2.1.2.RELEASE
→ 2.2.5.RELEASE

2. Event 도메인 구현
2-1) Event

2-2) EventStatus

2-3) EventTest
2-3)-1. Builder
- Builder를 사용하면 손쉽게 Event 객체를 만들 수 있음.
- .name, .description 등 어떤 문자열인지 알 수 있으며
- .(점)만 찍으면 되기 때문에 코딩하기가 쉬움.
- Builder를 추가하면 기본생성자는 추가되지 않음.
- public이 아니기 때문에 다른 패키지에서 사용 못함.
- 이런 경우

2-3)-2. JavaBean
3. Event 생성 API 구현 : 201 응답 받기
3-1) @RestController
- @ResponseBody를 모든 메소드에 적용한 것과 동일
3-2) ResponseEntity(Click)
- 응답 코드, 헤더, 본문 모두 다루기 편한 API
3-3) Location URI
- HATEOS가 제공하는 InkTo(), methodOn() 사용
3-4) 객체를 JSON으로 변환
3-5) 테스트할 목록
- 입력 값들을 전달하면 JSON 응답으로 201이 나오는지 확인
- Location 헤더에 생성된 이벤트를 조회할 수 있는 URI 담겨 있는지 확인
- DB에 넣기 전, ID가 있는지 확인
3-6) 테스트할 목록 구현-1
- Location 헤더에 생성된 이벤트를 조회할 수 있는 URI 담겨 있는지 확인
3-6)-1. EventControllerTest(TDD 먼저 작성하기)

-
Console(Error)
- Status 404,
요청한 리소스가 없음
- EventController가 없어서 에러남.(생성하기)

3-6)-2. EventController
- ResponseEntity
- 응답 코드, 헤더, 본문 모두 다루기 편한 API
- Location URI
- HATEOS가 제공하는 InkTo(), methodOn() 사용

-
Console(Success)
- Status 201 응답 받기 완료
- Location 헤더 정보 URI 담기 완료

3-6) 테스트할 목록 구현-2
3-6)-1. EventControllerTest(TDD 먼저 작성하기)

-
Console(Error)

3-6)-2. EventController

-
Console(success)
- Status 201 응답 완료, 새 리소스를 성공적으로 생성함.
- Body 정보에 ID 100인 값 담긴 거 완료.

4. Event 생성 API 구현 : EventRepository 구현
4-1) 스프링 데이터 JPA
4-2) Enum을 JPA 맵핑시 주의할 것
- @Enumerated(EnumType.STRING)
- EventStatus
4-3) 테스트할 목록
4-4) 테스트할 목록 구현
5. Event 생성 API 구현 : 입력값 제한하기
6. Event 생성 API 구현 : 입력값 이외에 에러 발생