Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[레거시 코드 리팩토링 - 4단계] 오찌(오지훈) 미션 제출합니다. #418

Open
wants to merge 5 commits into
base: ohzzi
Choose a base branch
from

Conversation

Ohzzi
Copy link

@Ohzzi Ohzzi commented Nov 4, 2022

안녕하세요 디우 :) 멀티 모듈 분리는 크게 커밋을 많이 할 일이 없어서 금방 하게 되었네요!
MSA 환경도 아니고, 도메인 컨텍스트 별로 모듈을 나눠야 할 정도로 큰 프로젝트도 아니라고 생각해서 계층 별로 모듈을 나누어보았습니다 :)

kitchenpos-core

도메인과 레포지토리가 모여 있는 코어 모듈입니다. 웹 계층이나 서비스 계층에 대한 의존성은 전혀 가지고 있지 않으며, 가지고 있는 의존성은 레포지토리와 엔티티를 구성하기 위한 spring-data-jpa 의존성 뿐입니다. 여러 예외 클래스 중 도메인에서 발생하는 예외 클래스도 이곳에 모여 있습니다. 3단계 결과 레포지토리를 반드시 거쳐야 하는 validation 로직(menuRepository에 menu가 존재해야 한다든가 하는)을 제외하고는 모든 validation 로직이 이곳에 모여 있어 완전한 도메인을 생성할 수 있게 되었기 때문에 다른 모듈들에서 재사용하기 용이합니다.

kitchenpos-external-api

서비스와 컨트롤러, 그에 따라 dto까지 함께 모여 있는 모듈입니다. 서비스가 이곳에 있는 것은, 결국 서비스 레이어 자체가 들어온 api 요청에 맞게 도메인을 가공하고 dto로 조립하는 계층이기 때문에 api라는 모듈 의미에 맞추어 이곳에 넣었습니다. kitchenpos-core 모듈을 의존하며, 서비스에서 생성되는 예외들은 이 모듈에 들어있습니다.

파일 체인지가 많지만 크게 많이 바뀐 부분은 없습니다 :) 잘 부탁드려요!

@Ohzzi Ohzzi requested a review from tco0427 November 4, 2022 02:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant