Tany
백문이불어일Tany
Tany
전체 방문자
오늘
어제
  • 분류 전체보기 (197)
    • JAVA TPC (1)
    • JAVA (10)
    • CS (3)
    • SPRING (5)
    • DFS BFS (12)
    • SQL (7)
    • 알고리즘 정리 (76)
    • Git, Github (3)
    • 학습 계획 (36)
    • 코드스쿼드 학습일지 (19)
    • Servlet (5)
    • VPC (2)
    • AWS (4)
    • JPA (5)
    • 취미생활 (2)
    • 프로젝트 기록 (7)
      • Issue Tracker 삽질 기록 (5)
      • 당근마켓 API 서버 기록 (2)
      • 나만의 블로그 제작 기록 (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • BFS
  • 재귀
  • 알고리즘
  • hash
  • 이코테
  • dfs
  • JSP
  • MVC
  • 백준
  • AWS
  • 해시
  • sql
  • JPA
  • 문자열
  • 자바
  • Stack
  • 이분탐색
  • 인프런
  • github
  • 자료구조
  • 프로그래머스
  • 파이썬
  • java
  • 완전탐색
  • 정렬
  • 면접을 위한 CS 전공지식 노트
  • MySQL
  • EC2
  • GIT
  • 주간 학습 계획

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
Tany

백문이불어일Tany

[당근마켓 API 서버 Project] 지금까지 구현 내역과 앞으로 구현 계획
프로젝트 기록/당근마켓 API 서버 기록

[당근마켓 API 서버 Project] 지금까지 구현 내역과 앞으로 구현 계획

2023. 3. 8. 19:16

출처) 짤봇 - https://jjalbot.com/jjals/D1PYZTxcX

기록 이유

블로그를 쉰지 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
    '프로젝트 기록/당근마켓 API 서버 기록' 카테고리의 다른 글
    • [당근마켓 API 서버 Project] Form, OAuth2 로그인 통합 구현
    Tany
    Tany
    내가 보려고 만드는 백엔드 기록장 Github https://github.com/juni8453

    티스토리툴바