Skip to content

[BE-2] init: 초기 레포 구성#2

Open
2hyeon-jeong wants to merge 1 commit intodevfrom
feat/project-structure-init
Open

[BE-2] init: 초기 레포 구성#2
2hyeon-jeong wants to merge 1 commit intodevfrom
feat/project-structure-init

Conversation

@2hyeon-jeong
Copy link
Copy Markdown
Collaborator

[BE-2] init: 프로젝트 초기 패키지 구조 및 도메인 틀 구성

📑 PR 내용

1. 개요 (Overview)

  • 프로젝트의 확장성과 유지보수성을 위해 **도메인 주도 계층화 아키텍처(Domain-Driven Layered Architecture)**를 기반으로 초기 레포지토리 구조를 설계하였습니다.
  • 각 도메인별 독립적인 패키지 구성을 통해 코드 응집도를 높였습니다.

2. 주요 변경 사항 (Key Changes)

📂 도메인별 상세 패키지 구성

각 패키지 내부에 .gitkeep 또는 초기 클래스 파일을 배치하여 폴더 구조를 확정했습니다.

  • admin (관리자 도메인)
    • controller, service, repository, entity, dto
    • 관리자 계정 생성 및 시스템 설정을 담당하는 레이어입니다.
  • audit (졸업 사정 도메인)
    • controller, service, dto
    • 별도의 DB 저장 없이 계산 로직 위주로 구동되므로 Repository/Entity를 제외한 경량 구조로 구성했습니다.
  • auth (인증/인가 도메인)
    • controller, service, repository, entity, dto
    • Spring Security와 JWT 기반의 인증 시스템을 위한 레이어입니다.
  • student (학생 데이터 도메인)
    • service, dto
    • 엑셀 파싱 중심: 업로드된 엑셀 파일을 해석하여 학생 객체로 변환하는 StudentExcelService를 포함합니다.
    • 휘발성 객체 관리: 데이터를 DB에 저장하지 않으므로 EntityRepository를 생성하지 않고, 순수 자바 객체(Student)를 통해 데이터를 관리합니다.
    • 보안 및 효율: 성적 데이터를 영구 저장하지 않음으로써 데이터 보안을 강화하고, 메모리 기반의 빠른 심사 처리가 가능하도록 설계했습니다.
  • global (공통 모듈)
    • config: 보안, JPA 등 프로젝트 전역 설정
    • exception: 예외 처리기 및 커스텀 에러 코드
    • util: 엑셀 파싱 등 공통 유틸리티 도구

3. 설계 의도 (Design Notes)

  • 파일 중심 인식: Git이 빈 폴더를 인식하지 못하는 특성을 고려하여 모든 하위 패키지에 파일 또는 .gitkeep을 배치했습니다.
  • 관심사 분리: auditstudent를 분리하여 데이터 파싱과 실제 심사 로직이 섞이지 않도록 설계했습니다.

🚀 다음 작업 (Next Steps)

  • 관리자(Admin) 엔티티 및 회원가입 로직 구현
  • Spring Security 기본 설정 및 비밀번호 암호화 적용
  • 엑셀 파싱 유틸리티 기초 코드 작성

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