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

얽혀있는 의존성 및 리팩토링이 필요한 부분을 수정했습니다 #97

Merged
merged 3 commits into from
Jun 26, 2024

Conversation

mkSpace
Copy link
Collaborator

@mkSpace mkSpace commented Jun 24, 2024

진행한 작업

  • spring-boot-starter-web은 매우 큰 의존성이고 동반하는 라이브러리가 상당히 많기 때문에 tomcat을 부팅하고 앱을 실질적으로 실행하는 spring-boot-start-web을 api 모듈만 갖게 변경했습니다. subprojects 모두 web을 들고 있던 것을 web이 아닌 spring-boot-starter 만을 의존해 최대한 의존성을 적게 가져가고자 했습니다.
  • 위에서 web을 제거하면서 S3에서 파일을 업로드할 때 MultipartFile를 인자로 받는 부분이 있는데 이 인자는 web 의존성에 포함되어 있기에 이를 분리하고자 했습니다. 이전 구현부에서는 MultipartFile을 받아서 파일 이름 및 사이즈를 측정하는 정도의 역할을 하기에 이를 모두 메서드를 호출하는 곳에서 채워넣도록 변경했습니다.
  • 항상 개발할 때 부터 생각하던것인데 ApplicationService 단에서 Transactional 어노테이션을 사용하기 위해 spring-boot-data-jpa를 api 를 통해 강하게 의존하는게 맘에 안들어서 Transaction 어노테이션을 포함하는 spring-tx 라이브러리를 사용해 의존을 완화했습니다.
  • 하지만 위의 경우 테스트에서 Repository를 직접 사용할 수는 없기에 data-jpa를 테스트 환경에서만 일시적으로 사용할 수 있게 변경했습니다.
  • 더불어 Exception이 쓸데없이 httpStatusCode를 포함하고 있는데 이걸 Int와 같은 primitive 형태가 아닌 HttpStatus 객체를 담고 있어서 web 라이브러리에 의존하고 있는 형태였습니다. common 모듈은 다른 모듈에서 부담없이 가져다 쓸 수 있기에 최대한 의존을 모두 배제하였습니다. 더불어 원래 있던 에러코드 또한 현재 상황에서는 의미가 없다 생각해 우선 덜어뒀습니다.
  • 카카오 Auth 관련된 부분은 엄밀히 3rd party에서 제공하는 api이기 때문에 core 모듈이 아닌 external 모듈에 있는게 맞다고 생각하고 이 로직을 core -> external로 분리하였습니다. 더불어 RestTemplate을 사용하기 위해 web 라이브러리를 의존하였는데 더이상 core 모듈이 web 라이브러리에 의존하지 않기 때문에 RestTemplate을 제공하는 web-mvc 라이브러리를 의존하는걸로 web 라이브러리를 대체하였습니다. (web-mvc는 web의 포함관계)
  • h2 db를 현재 테스트 환경에서만 사용하고 있는데 common 및 external은 필요 없기에 api와 core 모듈에서 각각 참조하는것으로 변경했습니다.
  • 쓸데 없는 플러그인 참조를 삭제했습니다. (java-library, kotlin 등)
  • root project에서 해당 프로젝트에 사용할 플러그인을 명시 할 때 apply=false 로 두어 각 프로젝트에서 필요할 때 로드하여 사용하게끔 변경했습니다.
  • AuthAspect가 UserRepository를 직접 사용하던 코드를 삭제했습니다.

@mkSpace mkSpace requested a review from K-Diger June 24, 2024 08:58
Copy link
Collaborator

@K-Diger K-Diger left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

꼼꼼하게 청소 잘해주셨네요.... 이견없습니다 GOOD!!

@mkSpace mkSpace merged commit 6a134ce into develop Jun 26, 2024
1 check passed
@mkSpace mkSpace deleted the feature/fix-dependencies branch June 26, 2024 05:42
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.

2 participants