Skip to content

Fix: 파일 구조 변경#92

Merged
minsoo0506 merged 2 commits intodevfrom
fix/folder-structure
Mar 10, 2026
Merged

Fix: 파일 구조 변경#92
minsoo0506 merged 2 commits intodevfrom
fix/folder-structure

Conversation

@tember8003
Copy link
Collaborator

@tember8003 tember8003 commented Mar 3, 2026

파일 구조 변경

src/
├── main/
│   ├── java/com/mjsec/lms/
│   │   ├── LmsApplication.java
│   │   ├── common/
│   │   │   ├── api/
│   │   │   │   └── TestController.java
│   │   │   ├── config/
│   │   │   │   ├── AdminUserInitializer.java
│   │   │   │   ├── PasswordEncoderConfig.java
│   │   │   │   ├── RedisConfig.java
│   │   │   │   ├── SchedulingConfig.java
│   │   │   │   ├── SecurityConfig.java
│   │   │   │   └── WebConfig.java
│   │   │   ├── domain/
│   │   │   │   └── BaseEntity.java
│   │   │   ├── dto/
│   │   │   │   ├── ErrorResponse.java
│   │   │   │   └── SuccessResponse.java
│   │   │   ├── exception/
│   │   │   │   ├── GlobalExceptionHandler.java
│   │   │   │   └── RestApiException.java
│   │   │   ├── security/
│   │   │   │   ├── CustomLoginFilter.java
│   │   │   │   ├── CustomLogoutFilter.java
│   │   │   │   └── JwtFilter.java
│   │   │   ├── type/
│   │   │   │   ├── ErrorCode.java
│   │   │   │   └── ResponseMessage.java
│   │   │   └── util/
│   │   │       ├── FileUtils.java
│   │   │       ├── IpUtils.java
│   │   │       ├── JsonArrayUtils.java
│   │   │       └── ValidationUtils.java
│   │   ├── auth/
│   │   │   ├── controller/
│   │   │   │   └── AuthController.java
│   │   │   ├── domain/
│   │   │   │   └── PendingUser.java
│   │   │   ├── dto/
│   │   │   │   ├── AuthDto.java
│   │   │   │   └── PendingUserDto.java
│   │   │   ├── repository/
│   │   │   │   └── PendingUserRepository.java
│   │   │   └── service/
│   │   │       ├── AuthCodeService.java
│   │   │       ├── AuthService.java
│   │   │       └── JwtService.java
│   │   ├── user/
│   │   │   ├── controller/
│   │   │   │   └── UserController.java
│   │   │   ├── domain/
│   │   │   │   ├── User.java
│   │   │   │   └── type/
│   │   │   │       └── UserRole.java
│   │   │   ├── dto/
│   │   │   │   ├── PasswordUpdateDto.java
│   │   │   │   ├── UserDto.java
│   │   │   │   ├── UserResponse.java
│   │   │   │   └── UserUpdateDto.java
│   │   │   ├── repository/
│   │   │   │   └── UserRepository.java
│   │   │   └── service/
│   │   │       └── UserService.java
│   │   ├── studygroup/
│   │   │   ├── controller/
│   │   │   │   ├── MentorController.java
│   │   │   │   └── StudyGroupController.java
│   │   │   ├── domain/
│   │   │   │   ├── GroupMember.java
│   │   │   │   ├── StudyActivity.java
│   │   │   │   ├── StudyGroup.java
│   │   │   │   └── type/
│   │   │   │       ├── GroupMemberRole.java
│   │   │   │       └── StudyStatus.java
│   │   │   ├── dto/
│   │   │   │   ├── SimpleStudyActivityResponse.java
│   │   │   │   ├── StudyActivityDto.java
│   │   │   │   ├── StudyActivityResponse.java
│   │   │   │   ├── StudyGroupDetailDto.java
│   │   │   │   ├── StudyGroupDto.java
│   │   │   │   ├── StudyGroupPutDto.java
│   │   │   │   ├── StudyGroupPutResponse.java
│   │   │   │   ├── StudyGroupSummaryDto.java
│   │   │   │   ├── StudyMemberResponse.java
│   │   │   │   └── StudyMemberWarnResponse.java
│   │   │   ├── repository/
│   │   │   │   ├── GroupMemberRepository.java
│   │   │   │   ├── StudyActivityRepository.java
│   │   │   │   └── StudyGroupRepository.java
│   │   │   └── service/
│   │   │       ├── MentorService.java
│   │   │       └── StudyGroupService.java
│   │   ├── attendance/
│   │   │   ├── controller/
│   │   │   │   └── AttendanceController.java
│   │   │   ├── domain/
│   │   │   │   ├── Attendance.java
│   │   │   │   └── type/
│   │   │   │       └── AttendanceType.java
│   │   │   ├── dto/
│   │   │   │   ├── AttendanceDto.java
│   │   │   │   ├── AttendanceResponse.java
│   │   │   │   ├── StudyAttendanceDto.java
│   │   │   │   └── WeeklyAttendanceResponse.java
│   │   │   ├── repository/
│   │   │   │   └── AttendanceRepository.java
│   │   │   └── service/
│   │   │       ├── AttendanceAlertService.java
│   │   │       └── AttendanceService.java
│   │   ├── assignment/
│   │   │   ├── controller/
│   │   │   │   └── AssignmentController.java
│   │   │   ├── domain/
│   │   │   │   ├── AssignmentNotSubmittedInfo.java
│   │   │   │   ├── AssignmentSubmission.java
│   │   │   │   ├── Plan.java
│   │   │   │   ├── PlanComment.java
│   │   │   │   └── type/
│   │   │   │       ├── Category.java
│   │   │   │       └── SubmissionStatus.java
│   │   │   ├── dto/
│   │   │   │   ├── DetailPlanResponse.java
│   │   │   │   ├── DetailSubmissionResponse.java
│   │   │   │   ├── PlanCommentDto.java
│   │   │   │   ├── PlanCommentResponse.java
│   │   │   │   ├── PlanDto.java
│   │   │   │   ├── PlanResponse.java
│   │   │   │   ├── SubmissionDto.java
│   │   │   │   ├── SubmissionFeedbackDto.java
│   │   │   │   ├── SubmissionResponse.java
│   │   │   │   └── SubmissionStatisticsResponse.java
│   │   │   ├── repository/
│   │   │   │   ├── PlanCommentRepository.java
│   │   │   │   ├── PlanRepository.java
│   │   │   │   └── SubmissionRepository.java
│   │   │   └── service/
│   │   │       ├── AssignmentSubmissionService.java
│   │   │       └── PlanService.java
│   │   ├── announcement/
│   │   │   ├── controller/
│   │   │   │   └── AnnouncementController.java
│   │   │   ├── domain/
│   │   │   │   ├── Announcement.java
│   │   │   │   └── type/
│   │   │   │       └── AnnouncementRole.java
│   │   │   ├── dto/
│   │   │   │   ├── AnnouncementMapper.java
│   │   │   │   ├── AnnouncementRequestDto.java
│   │   │   │   └── AnnouncementResponseDto.java
│   │   │   ├── repository/
│   │   │   │   └── AnnouncementRepository.java
│   │   │   └── service/
│   │   │       └── AnnouncementService.java
│   │   ├── media/
│   │   │   ├── controller/
│   │   │   │   └── ImageController.java
│   │   │   ├── dto/
│   │   │   │   └── ImageResponse.java
│   │   │   └── service/
│   │   │       ├── FileService.java
│   │   │       └── ImageService.java
│   │   ├── notification/
│   │   │   ├── external/
│   │   │   │   ├── EmailService.java
│   │   │   │   └── WikiService.java
│   │   │   └── service/
│   │   │       ├── ScheduledTaskService.java
│   │   │       └── WeeklyAlertService.java
│   │   └── admin/
│   │       ├── controller/
│   │       │   └── AdminController.java
│   │       ├── dto/
│   │       │   ├── AllStudyGroupDto.java
│   │       │   └── UserAdminResponseDto.java
│   │       └── service/
│   │           └── AdminService.java
│   └── resources/
│       └── application.yml
└── test/
    └── java/com/mjsec/lms/
        ├── LmsApplicationTests.java
        ├── common/util/
        │   ├── ValidationUtilsAdminBypassTest.java
        │   └── ValidationUtilsStatusTransitionTest.java
        └── studygroup/service/
            └── MentorServiceAdminBypassTest.java

DDD 기반으로 각 Domain 안에 controller , domain, dto, repository, service 가 들어가도록 변경했습니다.
common의 경우, 공통되거나 아예 관련성이 없을 경우 (TestController) 를 모아뒀습니다.

infrastructure, application 같이 DDD 구조를 세분화해서 짤 수도 있었지만, (실제로 그렇게도 잡아봄) 제 기준에서도 이해가 잘 안 되는데 굳이 이렇게 할 필요가 있을까 라는 마음에 간단하게 controller, service, repository 같은 형식을 유지했습니다.

개발자유미 센세의 https://www.youtube.com/watch?v=VOrA9Dfn3vY&t=562s 영상을 보고 제 입맛대로 잡아놓긴 했습니다.

만약 해당 구조가 별로거나, 더 나은 구조가 있다면 편하게 이야기해주세용

+3월 10일자 패치

  • 어드민이 과제 제출에 대한 상세 보기가 가능하도록 수정함.

Copy link
Collaborator

@minsoo0506 minsoo0506 left a comment

Choose a reason for hiding this comment

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

안그래두 아까 읽어보구 있었는데...ㅎ 고생많았어 유찬 :)

@minsoo0506 minsoo0506 merged commit c70730a into dev Mar 10, 2026
6 checks passed
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