기록 이유
블로그를 쉰지 3달 정도가 됐는데, 지금까지 Notion 에 얼추 정리했던 내용을 바탕으로 블로그 포스팅을 하면서 프로젝트를 이어나가기 위해 기록하게 됐다. 사전 과제하고 이것저것 하느라 정신이 없었는데, 다시 마음을 다 잡고 시작해보자.. 기록 시작 🙂
프로젝트 디렉토리 구조
도메인을 기준으로 Global, Category, Likes, Login, Member, Product 디렉토리 내 Controller, Domain, Service 디렉토리가 위치해 있는 상태. 각 클래스 네이밍을 신경쓰면서 작업을 진행했는데 다시 보니 조잡하게 네이밍한 클래스도 많이 보이고, 뭉칠 수 있는 클래스들은 더 뭉쳐서 깔끔하게 리팩토링 할 예정.
📦 src
┣ 📂 main
┃ ┣ 📂 generated
┃ ┃
┃ ┣ 📂 java
┃ ┃ ┗ 📂 com
┃ ┃ ┗ 📂 market
┃ ┃ ┗ 📂 carrot
┃ ┃ ┣ 📂 global
┃ ┃ ┃ ┗ 📂 exception
┃ ┃ ┃
┃ ┃ ┣ 📂 category
┃ ┃ ┃ ┣ 📂 controller
┃ ┃ ┃ ┃ ┗ 📂 dto
┃ ┃ ┃ ┃ ┗ 📂 request
┃ ┃ ┃ ┣ 📂 domain
┃ ┃ ┃ ┗ 📂 service
┃ ┃ ┃
┃ ┃ ┣ 📂 likes
┃ ┃ ┃ ┣ 📂 controller
┃ ┃ ┃ ┣ 📂 domain
┃ ┃ ┃ ┗ 📂 service
┃ ┃ ┃
┃ ┃ ┣ 📂 login
┃ ┃ ┃ ┣ 📂 config
┃ ┃ ┃ ┃ ┗ 📂 customAuthentication
┃ ┃ ┃ ┃ ┗ 📂 common
┃ ┃ ┃ ┃ ┗ 📂 form
┃ ┃ ┃ ┃ ┗ 📂 oauth2
┃ ┃ ┃ ┃ ┗ 📂 factory
┃ ┃ ┃ ┃ ┗ 📂 provuderType
┃ ┃ ┃ ┃ ┗ 📂 userinfo
┃ ┃ ┃ ┣ 📂 controller
┃ ┃ ┃ ┣ 📂 domain
┃ ┃ ┃ ┗ 📂 service
┃ ┃ ┃
┃ ┃ ┣ 📂 member
┃ ┃ ┃ ┣ 📂 controller
┃ ┃ ┃ ┃ ┗ 📂 dto
┃ ┃ ┃ ┃ ┣ 📂 request
┃ ┃ ┃ ┃ ┗ 📂 response
┃ ┃ ┃ ┣ 📂 domain
┃ ┃ ┃ ┣ 📂 hateoas
┃ ┃ ┃ ┗ 📂 service
┃ ┃ ┃
┃ ┃ ┣ 📂 product
┃ ┃ ┃ ┣ 📂 controller
┃ ┃ ┃ ┃ ┗ 📂 dto
┃ ┃ ┃ ┃ ┣ 📂 request
┃ ┃ ┃ ┃ ┗ 📂 response
┃ ┃ ┃ ┣ 📂 domain
┃ ┃ ┃ ┣ 📂 hateoas
┃ ┃ ┃ ┗ 📂 service
┃ ┃
┃ ┗ 📂 resources
┃
┣ 📂 test
┃ ┣ 📂 java
┃ ┃ ┗ 📂 com
┃ ┃ ┗ 📂 task
┃ ┃ ┗ 📂 callbuslab
┃ ┃ ┣ 📂 config
┃ ┃ ┗ 📂 integration
┃ ┃ ┣ 📂 category
┃ ┃ ┗ 📂 like
┃ ┃ ┗ 📂 member
┃ ┃ ┗ 📂 product
┃ ┃
┃ ┗ 📂resources
┗ 📜README.md
앞으로 진행해야 할 사항
1. 클래스 명 변경
위에서 언급했지만, 남이 봤을 때 한번에 알기 힘든 그런 클래스 명이 많이 있다. 좋은 코드는 아무 사전 지식도 없는 사람이 봤을 때도 쉽게 알아볼 수 있는 코드이기 때문에 고민해서 알아보기 쉽게 이름을 바꿔보자.
2. 패키지화 및 쓸데 없는 중복 클래스 리팩토링
아래에 보이는 Custom Exception 클래스는 모두 이름만 다를 뿐, 코드가 100% 동일하다. Custom Exception 이 발생했을 때 가독성을 위해 나눠놨지만 클래스 명이 아닌 Exception Message 또한 인자로 받기 때문에 가독성을 챙기면서 충분히 통일시킬 수 있을 것 같다. 또한 묶을 수 있는 클래스들은 묶어보자.
2. 단위 테스트 및 슬라이스 테스트 진행
@SpringBootTest Annotation 을 활용한 통합 테스트를 어느정도 진행했기 때문에 도메인 별 단위 테스트를 진행해보자.
3. 검색 기능 추가
카테고리 별 검색 기능을 추가해보자.
4. 동시성 처리
동시성 이슈가 발생할 수 있는 부분에서 DB Lock 을 학습 후 이슈를 처리해보자.
5. DB 성능 튜닝, 부하 테스트, 모니터링
쿠킴에게 리뷰 받은 대로 위 3가지 항목을 실시해 성능이 얼마나 나오는지 체크해보자.
'프로젝트 기록 > 당근마켓 API 서버 기록' 카테고리의 다른 글
[당근마켓 API 서버 Project] Form, OAuth2 로그인 통합 구현 (0) | 2023.03.08 |
---|