카카오 테크 캠퍼스 2단계 카카오 쇼핑하기 백엔드 클론 프로젝트 레포지토리입니다.
카카오 테크 캠퍼스 2단계 - BE - 1주차 클론 과제
1. 요구사항분석/API요청 및 응답 시나리오 분석
2. 요구사항 추가 반영 및 테이블 설계도
1. 요구사항 시나리오를 보고 부족해 보이는 기능을 하나 이상 체크하여 README에 내용을 작성하시오.
2. 제시된 화면설계를 보고 해당 화면설계와 배포된 기존 서버의 API주소를 매칭하여 README에 내용을 작성하시오. (카카오 화면설계 시나리오가 있음)
3. 배포된 서버에 모든 API를 POSTMAN으로 요청해본 뒤 응답되는 데이터를 확인하고 부족한 데이터가 무엇인지 체크하여 README에 내용을 작성하시오.
4. 테이블 설계를 하여 README에 ER-Diagram을 추가하여 제출하시오.
아래 항목은 반드시 포함하여 과제 수행해주세요!
- 부족한 기능에 대한 요구사항을 미리 예상할 수 있는가? (예를 들면 상품등록 api가 기존 요구사항에는 없는데 추후 필요하지는 않을지, 이런 부분들을 생각하였는지)
- 요구사항에 맞는 API를 분석하고 사용자 시나리오를 설계하였는가? (예를 들어 배포된 서버와 화면 설계를 제시해줄 예정인데, 특정 버튼을 클릭했을 때 어떤 API가 호출되어야 할지를 아는지)
- 응답되는 데이터가 프론트앤드 화면에 모두 반영될 수 있는지를 체크하였는가?(예를 들어 배송관련 비용이 있는데, 이런것들이 API에는 없는데 이런 부분을 캐치할 수 있는지)
- 테이블 설계가 모든 API를 만족할 수 있게 나왔는가? (테이블이 효율적으로 나왔는가 보다는 해당 테이블로 요구사항을 만족할 수 있는지에 대한 여부만)
- 테이블명이 이해하기 쉽게 만들어졌는가? (상품테이블이 product이면 이해하기 쉽지만, material이라고 하면 이해하기 어렵기 때문)
1. PR 제목과 내용을 아래와 같이 작성 해주세요.
- PR 제목 : 부산대BE_라이언_1주차 과제
2. PR 내용 :
- 코드 작성하면서 어려웠던 점
- 코드 리뷰 시, 멘토님이 중점적으로 리뷰해줬으면 하는 부분
카카오 테크 캠퍼스 2단계 - BE - 2주차 클론 과제
1. 전체 API 주소 설계
2. Mock API Controller 구현
1. API주소를 설계하여 README에 내용을 작성하시오.
2. 가짜 데이터를 설계하여 응답하는 스프링부트 컨트롤러를 작성하고 소스코드를 업로드하시오.
아래 항목은 반드시 포함하여 과제 수행해주세요!
- User 도메인을 제외한 전체 API 주소 설계가 RestAPI 맞게 설계되었는가? POST와 GET으로만 구현되어 있어도 됨.
- 가짜 데이터를 설계하여 Mock API를 잘 구현하였는가? (예를 들어 DB연결없이 컨트롤러만 만들어서 배포된 서버의 응답과 동일한 형태로 데이터가 응답되는지 여부)
- DTO에 타입은 올바르게 지정되었는가?
- DTO에 이름은 일관성이 있는가? (예를 들어 어떤 것은 JoinDTO, 어떤 것은 joinDto, 어떤 것은 DtoJoin 이런식으로 되어 있으면 일관성이 없는것이다)
- DTO를 공유해서 쓰면 안된다 (동일한 데이터가 응답된다 하더라도, 화면은 수시로 변경될 수 있기 때문에 DTO를 공유하고 있으면 배점을 받지 못함)
1. PR 제목과 내용을 아래와 같이 작성 해주세요.
- PR 제목 : 부산대BE_라이언_2주차 과제
2. PR 내용 :
- 코드 작성하면서 어려웠던 점
- 코드 리뷰 시, 멘토님이 중점적으로 리뷰해줬으면 하는 부분
카카오 테크 캠퍼스 2단계 - BE - 3주차 클론 과제
1. 레포지토리 단위테스트
1. 레포지토리 단위테스트를 구현하여 소스코드를 제출하시오.
2. 쿼리를 테스트하면서 가장 좋은 쿼리를 작성해보시오.
아래 항목은 반드시 포함하여 과제 수행해주세요!
- 레포지토리 단위테스트가 구현되었는가?
- 테스트 메서드끼리 유기적으로 연결되지 않았는가? (테스트는 격리성이 필요하다)
- Persistene Context를 clear하여서 테스트가 구현되었는가? (더미데이터를 JPA를 이용해서 insert 할 예정인데, 레포지토리 테스트시에 영속화된 데이터 때문에 쿼리를 제대로 보지 못할 수 있기 때문에)
- 테스트 코드의 쿼리 관련된 메서드가 너무 많은 select를 유발하지 않는지? (적절한 한방쿼리, 효율적인 in query, N+1 문제 등이 해결된 쿼리)
- BDD 패턴으로 구현되었는가? given, when, then
1. PR 제목과 내용을 아래와 같이 작성 해주세요.
- PR 제목 : 부산대BE_라이언_3주차 과제
2. PR 내용 :
- 코드 작성하면서 어려웠던 점
- 코드 리뷰 시, 멘토님이 중점적으로 리뷰해줬으면 하는 부분
카카오 테크 캠퍼스 2단계 - BE - 4주차 클론 과제
1. 컨트롤러 단위 테스트
1. 컨트롤러 단위테스트를 작성한뒤 소스코드를 업로드하시오.
2. stub을 구현하시오.
아래 항목은 반드시 포함하여 과제 수행해주세요!
- 컨트롤러 단위테스트가 구현되었는가?
- Mockito를 이용하여 stub을 구현하였는가?
- 인증이 필요한 컨트롤러를 테스트할 수 있는가?
- 200 ok만 체크한 것은 아닌가? (해당 컨트롤러에서 제일 필요한 데이터에 대한 테스트가 구현되었는가?)
- 모든 요청과 응답이 json으로 처리되어 있는가?
1. PR 제목과 내용을 아래와 같이 작성 해주세요.
- PR 제목 : 부산대BE_라이언_4주차 과제
2. PR 내용 :
- 코드 작성하면서 어려웠던 점
- 코드 리뷰 시, 멘토님이 중점적으로 리뷰해줬으면 하는 부분
카카오 테크 캠퍼스 2단계 - BE - 5주차 클론 과제
코드 리팩토링
카카오 쇼핑 프로젝트 전체 코드를 리팩토링한다
- AOP로 유효성검사 적용하기
- 구현하기
- 장바구니 담GlobalExceptionHanlder 기 -> 예외 처리하기
- 장바구니 수정(주문하기) -> 예외처리하기
- 결재하기 기능 구현 (장바구니가 꼭 초기화 되어야함)
- 주문결과 확인 기능 구현
아래 항목은 반드시 포함하여 과제 수행해주세요!
- AOP가 적용되었는가?
- GlobalExceptionHandler가 적용되었는가?
- 장바구니 담기시 모든 예외가 처리 완료되었는가?
- 장바구니 수정시 모든 예외가 처리 완료되었는가?
- 결재하기와 주문결과 확인 코드가 완료되었는가?
1. PR 제목과 내용을 아래와 같이 작성 해주세요.
- PR 제목 : 부산대BE_라이언_5주차 과제
2. PR 내용 :
- 코드 작성하면서 어려웠던 점
- 코드 리뷰 시, 멘토님이 중점적으로 리뷰해줬으면 하는 부분
카카오 테크 캠퍼스 2단계 - BE - 6주차 클론 과제
1. 카카오 클라우드 배포
1. 통합테스트를 구현하시오.
2. API문서를 구현하시오. (swagger, restdoc, word로 직접 작성, 공책에 적어서 제출 등 모든 방법이 다 가능합니다)
3. 프론트앤드에 입장을 생각해본뒤 어떤 문서를 가장 원할지 생각해본뒤 API문서를 작성하시오.
4. 카카오 클라우드에 배포하시오.
아래 항목은 반드시 포함하여 과제 수행해주세요!
- 통합테스트가 구현되었는가?
- API문서가 구현되었는가?
- 배포가 정상적으로 되었는가?
- 프로그램이 정상 작동되고 있는가?
- API 문서에 실패 예시가 작성되었는가?
1. PR 제목과 내용을 아래와 같이 작성 해주세요.
- PR 제목 : 부산대BE_라이언_6주차 과제
2. PR 내용 :
- 코드 작성하면서 어려웠던 점
- 코드 리뷰 시, 멘토님이 중점적으로 리뷰해줬으면 하는 부분