Skip to content

[♻️ refactor/#237] 도메인 기반 폴더링 구조로 변경#240

Merged
junggyo1020 merged 4 commits into
developfrom
refactor/#237
May 11, 2025
Merged

[♻️ refactor/#237] 도메인 기반 폴더링 구조로 변경#240
junggyo1020 merged 4 commits into
developfrom
refactor/#237

Conversation

@junggyo1020
Copy link
Copy Markdown
Contributor

📄 Work Description

  • 기존 프로젝트의 폴더링 구조가 매우 복잡해 리펙토링이 쉽지 않았는데요.
  • 이를 해결하기 위해 도메인 기반의 폴더링 구조를 적용했습니다.

기존 폴더링 구조는 아래와 같습니다. (계층형)

image

변경한 폴더링 구조는 아래와 같습니다. (도메인)

image

설명

- common
    - security → 보안
        - jwt → 인증/인가
    - exception → 공통 예외처리
    - util → 유틸성 도구
    - config → 프로젝트 구성/설정 파일
    - logging → 로깅
- auth
- banner
- calendar
- filter
- home
- internshipAnnouncement
- scrap
- search
- external → 외부와 통신을 해야하는 요소
    - pushNotification
    - discord
- user

⚙️ ISSUE

💬 To Reviewers

  • 작업할 때 생긴 애매한 부분 확실한 부분안에 넣어놓았어요.
  • 우선적으로 완벽하지 않을 수 있고, 이후에 꼭 추가적인 리펙토링이 필요할 것이지만 제일 중요한 것들 위주로 정리해보았어요.
  • 적극적으로 의견 나눌 수 있었으면 좋겠습니다 :)

@junggyo1020 junggyo1020 self-assigned this May 10, 2025
@junggyo1020 junggyo1020 added ♻️ refactor 코드 리팩토링 ex) 형식변경 📂 file 파일 또는 폴더명 수정, 이동, 삭제 등의 작업만 수행한 경우 🐶정교🐶 labels May 10, 2025
@junggyo1020 junggyo1020 linked an issue May 10, 2025 that may be closed by this pull request
2 tasks
@junggyo1020 junggyo1020 merged commit 5c927be into develop May 11, 2025
1 check passed
@JungYoonShin
Copy link
Copy Markdown
Member

JungYoonShin commented May 11, 2025

수고하셨습니다!! 회의에서 논의된대로 잘 분리해주신 것 같아요!

한 가지 논의하고 싶은게 있는데요! 저번 회의 때 잠깐 얘기하고 넘어간 것으로 기억하는데, 구체적으로 저희가 정하진 않았던 것 같아서요!

에러 및 성공 메시지 관리

그때 회의에서 도메인별로 에러 및 성공 메시지를 분리하자는 이야기가 나왔던 것 같았는데요! 요거 확실히 어떻게 할 건지 정하면 좋을 것 같아요!

요거에 대해서 저도 생각을 해봤는데, 도메인 별로 분리하는 것 자체는 좋은 취지인 것 같아요! 지금 하나의 클래스에서 관리하고 있다보니.. 개발하면서 충돌나기도 쉬웠던 기억이 있네요..!

물론 도메인별로 분리하려면 도메인ErrorException, 도메인ErroCode, 도메인SuccessCode 총 3개의 클래스를 생성해야해서 리소스가 조금 드는 작업일 것 같긴해요.

제가 생각한 방안은 3개인데 다들 각자 어떤 방안이 좋으신지 궁금해요! 👀
@junggyo1020 @jsoonworld

  1. 도메인 별로 나누지 말고 지금처럼 관리하자.
  2. 도메인별로 에러 및 성공 메시지 분리하고 각 도메인 패키지 내부에 해당 파일을 두자.
  • ex) 지금 auth 패키지 안에 common 패키지 둔 것 처럼!
image

  1. 도메인별로 에러 및 성공 메시지 분리하되 해당 파일을 기존처럼 모아두자.
  • ex)
- common
  └── exception
      ├── success
      │   ├── AuthSuccessCode.java
      │   └── ScrapSuccessCode.java
      └── fail
          ├── AuthErrorCode.java
          ├── AuthException.java
          ├── ScrapErrorCode.java
          └── ScrapException.java

저는 개인적으로 3번 방안도 괜찮다고 생각합니다! 도메인으로 분리하고, 전역적으로 파일을 모아두는 게 관리 측면에서 편할 것 같아서요!
( + 사실 다른 리팩토링에 더 힘을 쏟고 싶다면,, 1번으로 가도 된다고 생각합니다~~)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

📂 file 파일 또는 폴더명 수정, 이동, 삭제 등의 작업만 수행한 경우 ♻️ refactor 코드 리팩토링 ex) 형식변경 size/XXL 🐶정교🐶

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[♻️ refactor] 도메인 기반 폴더링 구조로 변경

2 participants