쇼핑몰 프로젝트 리팩토링 - 패키지 구조

손창현·2022년 6월 3일
0

4월 20일부터 5월 29일까지 이스트소프트 백엔드 개발자 익스턴쉽을 진행하였다.
이번 익스턴쉽을 통해 배운 내용을 바탕으로 기존의 쇼핑몰 프로젝트를 리팩토링하려 한다.

https://github.com/mistarson/ShoppingMall

먼저 패키지 구조부터 변경하려 한다. 기존의 패키지 구조는 아래와 같다.

인터넷 강의만 듣고 만든 프로젝트이다 보니 단순하게 도메인, 컨트롤러, 서비스, 리포지토리별로 나뉘어져 있다.

익스턴쉽에서 배운 패키지 구조는 아래와 같이 4가지의 패키지 구조로 나누는 것이다.

패키지 구조

  • domain 패키지: 각 도메인별로 핵심로직들을 가지고 있는 패키지
  • global 패키지: 프로젝트 전반에 사용되는 유틸성 클래스, 설정 파일, 상수, 에러 등을 가지고 있는 패키지
  • infra 패키지: sms, 이메일 전송기능이나 파일 저장과 관련된 코드를 가지고 있는 패키지
  • web 패키지: domain 패키지에 작성한 비즈니스 로직들을 가져와서 사용하는 web 개발을 위한 로직들을 가지고 있는 패키지

위와 같이 패키지 구조를 변경하게 되면

  • 도메인과 웹 로직을 분리하기 때문에 도메인 패키지가 특정화면에 종속되지 않는다.
  • 유지보수에도 용이하다
  • 추후에 비슷한 프로젝트를 개발할 때 도메인 패키지의 재사용성도 고려해 볼 수 있게 된다.

아래 그림은 변경한 패키지 구조이다.


패키지 구조만 변경 했을 뿐 여전히 도메인 패키지안에 웹 로직이 모두 섞여 있기 때문에 도메인 로직과 웹 로직을 분리하여 리팩토링해야한다.

이 내용은 다음 포스팅 때 진행해야겠다.

profile
백엔드개발자 손창현입니다.

0개의 댓글