.
├── 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로 의존하며
각 계층은 도메인에 의존한다.