최종프로젝트 - 최종 디렉토리 구조

박지혜·2025년 8월 28일
.
├── main
│   ├── java
│   │   └── com
│   │       └── guardians
│   │           ├── GuardiansApplication.java
│   │           ├── config
│   │           │   ├── AppConfig.java  	#Bean 설정파일
│   │           │   ├── AsyncConfig.java	#비동기 설정파일
│   │           │   ├── AwsS3Properties.java	#AWS 설정파일
│   │           │   ├── CorsConfig.java		#Cors 설정파일
│   │           │   ├── JpaConfig.java		#JPA 설정파일
│   │           │   ├── MapperConfig.java	#Mapper 설정파일
│   │           │   ├── PasswordEncoderConfig.java		#Password해싱 설정파일
│   │           │   ├── RedisConfig.java		#Redis 설정파일
│   │           │   ├── S3Config.java	#S3 설정파일
│   │           │   ├── SecurityConfig.java	#Spring Security 설정파일
│   │           │   └── SwaggerConfig.java		#Swagger 설정파일
│   │           ├── controller
│   │           │   ├── BadgeController.java
│   │           │   ├── BoardController.java
│   │           │   ├── CommentController.java
│   │           │   ├── DashboardController.java
│   │           │   ├── HealthCheckController.java
│   │           │   ├── JobController.java
│   │           │   ├── MypageController.java
│   │           │   ├── QnaController.java
│   │           │   ├── RankingController.java
│   │           │   ├── UserController.java
│   │           │   └── WargameController.java
│   │           ├── domain
│   │           │   ├── badge
│   │           │   │   ├── entity
│   │           │   │   │   ├── Badge.java
│   │           │   │   │   ├── BadgeType.java
│   │           │   │   │   └── UserBadge.java
│   │           │   │   └── repository
│   │           │   │       ├── BadgeRepository.java
│   │           │   │       └── UserBadgeRepository.java
│   │           │   ├── board
│   │           │   │   ├── entity
│   │           │   │   │   ├── Answer.java
│   │           │   │   │   ├── Board.java
│   │           │   │   │   ├── BoardLike.java
│   │           │   │   │   ├── BoardType.java
│   │           │   │   │   ├── Comment.java
│   │           │   │   │   └── Question.java
│   │           │   │   └── repository
│   │           │   │       ├── AnswerRepository.java
│   │           │   │       ├── BoardLikeRepository.java
│   │           │   │       ├── BoardRepository.java
│   │           │   │       ├── CommentCountRepository.java
│   │           │   │       ├── CommentRepository.java
│   │           │   │       └── QuestionRepository.java
│   │           │   ├── job
│   │           │   │   ├── entity
│   │           │   │   │   └── Job.java
│   │           │   │   └── repository
│   │           │   │       └── JobRepository.java
│   │           │   ├── user
│   │           │   │   ├── entity
│   │           │   │   │   ├── Tier.java
│   │           │   │   │   ├── User.java
│   │           │   │   │   └── UserStats.java
│   │           │   │   └── repository
│   │           │   │       ├── UserRepository.java
│   │           │   │       └── UserStatsRepository.java
│   │           │   └── wargame
│   │           │       ├── entity
│   │           │       │   ├── Bookmark.java
│   │           │       │   ├── BookmarkId.java
│   │           │       │   ├── Category.java
│   │           │       │   ├── Difficulty.java
│   │           │       │   ├── Review.java
│   │           │       │   ├── SolvedWargame.java
│   │           │       │   ├── SolvedWargameId.java
│   │           │       │   ├── Wargame.java
│   │           │       │   ├── WargameFlag.java
│   │           │       │   └── WargameLike.java
│   │           │       └── repository
│   │           │           ├── BookmarkRepository.java
│   │           │           ├── CategoryRepository.java
│   │           │           ├── ReviewRepository.java
│   │           │           ├── SolvedWargameRepository.java
│   │           │           ├── WargameFlagRepository.java
│   │           │           ├── WargameLikeRepository.java
│   │           │           └── WargameRepository.java
│   │           ├── dto
│   │           │   ├── admin
│   │           │   │   └── HealthCheckResponse.java
│   │           │   ├── answer
│   │           │   │   ├── req
│   │           │   │   │   ├── ReqCreateAnswerDto.java
│   │           │   │   │   └── ReqUpdateAnswerDto.java
│   │           │   │   └── res
│   │           │   │       ├── ResAnswerDetailDto.java
│   │           │   │       ├── ResAnswerListDto.java
│   │           │   │       ├── ResCreateAnswerDto.java
│   │           │   │       └── ResUpdateAnswerDto.java
│   │           │   ├── badge
│   │           │   │   └── res
│   │           │   │       └── ResUserBadgeDto.java
│   │           │   ├── board
│   │           │   │   ├── req
│   │           │   │   │   ├── ReqCreateBoardDto.java
│   │           │   │   │   ├── ReqCreateCommentDto.java
│   │           │   │   │   ├── ReqUpdateBoardDto.java
│   │           │   │   │   └── ReqUpdateCommentDto.java
│   │           │   │   └── res
│   │           │   │       ├── ResBoardDetailDto.java
│   │           │   │       ├── ResBoardListDto.java
│   │           │   │       ├── ResCommentListDto.java
│   │           │   │       ├── ResCreateBoardDto.java
│   │           │   │       ├── ResCreateCommentDto.java
│   │           │   │       ├── ResHotBoardDto.java
│   │           │   │       ├── ResUpdateBoardDto.java
│   │           │   │       └── ResUpdateCommentDto.java
│   │           │   ├── common
│   │           │   │   ├── ErrorResult.java
│   │           │   │   ├── ListResult.java
│   │           │   │   ├── ResWrapper.java
│   │           │   │   └── SuccessResult.java
│   │           │   ├── dashboard
│   │           │   │   ├── ResRadarChartDto.java
│   │           │   │   └── ResSolvedTimelineDto.java
│   │           │   ├── job
│   │           │   │   ├── req
│   │           │   │   │   ├── ReqCreateJobDto.java
│   │           │   │   │   └── ReqUpdateJobDto.java
│   │           │   │   └── res
│   │           │   │       ├── ResJobDto.java
│   │           │   │       └── ResJobListDto.java
│   │           │   ├── mypage
│   │           │   │   └── res
│   │           │   │       ├── ResBoardDto.java
│   │           │   │       ├── ResBookmarkDto.java
│   │           │   │       ├── ResProfileDto.java
│   │           │   │       ├── ResRankDto.java
│   │           │   │       ├── ResReviewDto.java
│   │           │   │       ├── ResSolvedDto.java
│   │           │   │       └── ResUserStatsDto.java
│   │           │   ├── question
│   │           │   │   ├── req
│   │           │   │   │   ├── ReqCreateQuestionDto.java
│   │           │   │   │   └── ReqUpdateQuestionDto.java
│   │           │   │   └── res
│   │           │   │       ├── ResCreateQuestionDto.java
│   │           │   │       ├── ResQuestionDetailDto.java
│   │           │   │       ├── ResQuestionListDto.java
│   │           │   │       └── ResUpdateQuestionDto.java
│   │           │   ├── user
│   │           │   │   ├── req
│   │           │   │   │   ├── ReqChangePasswordDto.java
│   │           │   │   │   ├── ReqCreateUserDto.java
│   │           │   │   │   ├── ReqLoginDto.java
│   │           │   │   │   ├── ReqUpdateUserDto.java
│   │           │   │   │   └── ReqUpdateUserRoleDto.java
│   │           │   │   └── res
│   │           │   │       ├── ResCreateUserDto.java
│   │           │   │       └── ResLoginDto.java
│   │           │   └── wargame
│   │           │       ├── req
│   │           │       │   ├── ReqCreateReviewDto.java
│   │           │       │   ├── ReqCreateWargameDto.java
│   │           │       │   ├── ReqSubmitFlagDto.java
│   │           │       │   └── ReqUpdateReviewDto.java
│   │           │       └── res
│   │           │           ├── PodStatusDto.java
│   │           │           ├── ResHotWargameDto.java
│   │           │           ├── ResReviewListDto.java
│   │           │           ├── ResSubmitFlagDto.java
│   │           │           ├── ResUserStatusDto.java
│   │           │           └── ResWargameListDto.java
│   │           ├── exception
│   │           │   ├── CustomException.java
│   │           │   ├── ErrorCode.java
│   │           │   └── GlobalExceptionHandler.java
│   │           └── service
│   │               ├── admin
│   │               │   └── HealthCheckService.java
│   │               ├── answer
│   │               │   ├── AnswerService.java
│   │               │   └── AnswerServiceImpl.java
│   │               ├── auth
│   │               │   └── EmailVerificationService.java
│   │               ├── badge
│   │               │   ├── BadgeService.java
│   │               │   └── BadgeServiceImpl.java
│   │               ├── board
│   │               │   ├── BoardService.java
│   │               │   ├── BoardServiceImpl.java
│   │               │   ├── CommentService.java
│   │               │   └── CommentServiceImpl.java
│   │               ├── dashboard
│   │               │   ├── DashboardService.java
│   │               │   └── DashboardServiceImpl.java
│   │               ├── job
│   │               │   ├── JobService.java
│   │               │   └── JobServiceImpl.java
│   │               ├── mypage
│   │               │   ├── MypageService.java
│   │               │   └── MypageServiceImpl.java
│   │               ├── question
│   │               │   ├── QuestionService.java
│   │               │   └── QuestionServiceImpl.java
│   │               ├── s3
│   │               │   ├── S3Service.java
│   │               │   └── S3ServiceImpl.java
│   │               ├── user
│   │               │   ├── UserService.java
│   │               │   └── UserServiceImpl.java
│   │               └── wargame
│   │                   ├── KubernetesKaliPodService.java
│   │                   ├── KubernetesKaliPodServiceImpl.java
│   │                   ├── KubernetesPodService.java
│   │                   ├── KubernetesPodServiceImpl.java
│   │                   ├── WargameService.java
│   │                   └── WargameServiceImpl.java
│   └── resources
│       ├── application.yml
│       └── mail
│           ├── password-reset.html
│           └── signup-verification.html
└── test
    └── java
        └── com
            └── guardians
                └── GuardiansApplicationTests.java

패키지 간 의존관계

의존관계란? 한 객체의 클래스가 다른 객체의 클래스의 기능을 사용하는것

예를 들어 A가 B에 의존한다 고 한다면 A는 B의 메서드나 객체를 사용한다.
Spring MVC패턴을 기준으로

컨트롤러 -> 서비스 -> 리포지토리 -> DB로 의존하며
각 계층은 도메인에 의존한다.

0개의 댓글