명절 버퍼타임간 2주차 ~ 6주차 미션까지 배운 내용들을 복습한다.
base project는 6주차 미션 에서 catsbi_remind 브랜치를 만든 뒤, 모든 소스파일, 테스트 코드를 삭제하고 진행한다.
미션 요구사항
2주차 - 스프링 웹
•
Spring Web 이용해서 ToDo REST API를 만들어봅니다.
•
Marko를 이용해서 웹을 만들고, 만든 REST API와 연결하여 동작하는 ToDo앱을 만들어봅니다.
◦
Marko를 이용한 프론트 학습은 스프링 학습과 거리가 있기에 제외한다.
REST API
•
ToDo 목록 얻기 - GET /tasks
•
ToDo 상세 조회하기 - GET /tasks/{id}
•
ToDo 생성하기 - POST /tasks
•
ToDo 제목 수정하기 - PUT/PATCH /tasks/{id}
•
ToDo 삭제하기 - DELETE /tasks/{id}
3주차 - 테스트
: 작성한 코드가 올바르게 동작하는지 확인해줄 수 있는 유닛 테스트 작성을 하는 훈련을 진행한다.
•
Task 모델 테스트
•
TaskService 테스트
•
TaskController 유닛 테스트
•
TaskController MockMVC 테스트
4주차 - 도메인
:고양이 장난감을 등록하고, 조회하고, 수정하고 삭제하는 기능이 있는 간단한 웹이 있습니다. 이 웹에서 사용할 REST API를 만들어주세요.
고양이 장난감 Structure
{
"name": "장난감 뱀",
"maker": "고양이 주식회사",
"price": 5000,
"imageUrl": "https://sc04.alicdn.com/kf/HTB10TD8ipmWBuNjSspdq6zugXXag.jpg"
}
JSON
복사
구현해야 할 API
•
고양이 장난감 목록 얻기 - GET /products
•
고양이 장난감 상세 조회하기 - GET /products/{id}
•
고양이 장난감 등록하기 - POST /products
•
고양이 장난감 수정하기 - PATCH /products/{id}
•
고양이 장난감 삭제하기 - DELETE /products/{id}
5주차 - 유효성 검사
회원 Entity structure
{
"email": "catsbi@test.com",
"name": "testuser",
"password": "password"
}
JSON
복사
과제 내용
1.
고양이 장난감가게 API 유효성 검사 추가 및 회원 관리 API 구현
고양이 장난감은 이름, 메이커 그리고 가격은 필수 입력 항목입니다. 이 중에서 하나라도 빠트린 경우에는 처리를 거부하고 웹에게 에러 응답을 전달해야 합니다. 그래야 웹에서 잘못된 경우를 사용자에게 피드백을 줄 수 있습니다. 유효성을 검사하여 올바른 에러 응답을 만들어주세요.
•
고양이 장난감 목록 얻기 - GET /products
•
고양이 장난감 상세 조회하기 - GET /products/{id}
•
고양이 장난감 등록하기 - POST /products
•
고양이 장난감 수정하기 - PATCH /products/{id}
•
고양이 장난감 삭제하기 - DELETE /products/{id}
2.
회원 관리하기
회원 생성, 수정, 삭제하기 REST API를 만들어주세요. 회원은 이름, 이메일, 비밀번호는 필수 입력 항목입니다. 만약 잘못된 정보로 회원이 만들어지지 않도록 유효성 검사를 하고 올바른 에러를 웹에게 응답할 수 있도록 만들어 주세요.
•
회원 생성하기 - POST /user
•
회원 수정하기 - POST /user/{id}
•
회원 삭제하기 - DELETE /user/{id}
6주차 - 로그인
: JWT를 이용해 고양이 장난감 등록,수정,삭제 기능은 인증 사용자만이 사용할 수 있도록 한다.
로그인이 필요없는 API
•
로그인 - POST /session
•
회원 생성하기 - POST /users
•
회원 수정하기 - POST /users/{id}
•
회원 삭제하기 - DELETE /users/{id}
•
고양이 장난감 목록 얻기 - GET /products
•
고양이 장난감 상세 조회하기 - GET /products/{id}
로그인이 필요한 API
•
고양이 장난감 등록하기 - POST /products
•
고양이 장난감 수정하기 - PATCH /products/{id}
•
고양이 장난감 삭제하기 - DELETE /products/{id}