Skip to content

4주차 미션 루크(luke)#1

Open
yujining3827 wants to merge 1 commit intomainfrom
luke/week4-new
Open

4주차 미션 루크(luke)#1
yujining3827 wants to merge 1 commit intomainfrom
luke/week4-new

Conversation

@yujining3827
Copy link
Copy Markdown
Collaborator

🚩 관련 이슈

없음

📌 구현 결과

  • Spring Boot 프로젝트 기본 세팅을 진행했습니다.
  • 도메인형 아키텍처 구조를 기준으로 패키지 구조를 구성했습니다.
  • ERD 피드백을 반영하여 약관 동의 구조와 알림 구조를 수정했습니다.
    • 약관: term, user_term_agreement로 분리
    • 알림: notification 테이블로 분리

❓ 리뷰 요청

  • 도메인 분리 방향과 패키지 구조가 적절한지 확인 부탁드립니다.
  • 이전에 피드백 받은 약관/알림 관련 테이블 분리 방향이 확장성 측면에서 괜찮은지 피드백 부탁드립니다.

🤔 질문

  • 이번 4주차 과제를 프로젝트의 전체 구조를 설계하는 단계로 이해하고 진행했는데, 해당 방향이 맞는지 궁금합니다.

💬 기타 공유 사항


Copy link
Copy Markdown
Collaborator

@KateteDeveloper KateteDeveloper left a comment

Choose a reason for hiding this comment

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

확인했습니다~! 초기 세팅 수고 많으셨습니다:) LGTM

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Spring Boot 프로젝트의 초기 부트스트랩(Gradle/Wrapper/기본 설정)과 도메인 중심 패키지 구조(미션/멤버/리뷰) 스캐폴딩, Swagger(OpenAPI) 설정을 추가하는 PR입니다.

Changes:

  • Spring Boot/Gradle Wrapper 기반 프로젝트 기본 세팅 및 실행 스크립트 추가
  • domain/* 중심 패키지 구조와 관련 클래스(현재는 빈 스텁) 생성
  • MySQL/JPA 설정 및 Swagger(OpenAPI + JWT 스키마) 설정 추가

Reviewed changes

Copilot reviewed 52 out of 55 changed files in this pull request and generated 15 comments.

Show a summary per file
File Description
src/test/java/com/example/umc10th/Umc10thApplicationTests.java 기본 Spring context 로드 테스트 추가
src/main/resources/application.yml DB/JPA 기본 설정 추가
src/main/java/com/example/umc10th/Umc10thApplication.java Spring Boot main 애플리케이션 엔트리 추가
src/main/java/com/example/umc10th/global/config/SwaggerConfig.java OpenAPI/Swagger 설정 및 보안 스키마 추가
src/main/java/com/example/umc10th/domain/review/service/ReviewService.java 리뷰 도메인 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/review/repository/ReviewRepository.java 리뷰 도메인 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/review/exception/ReviewException.java 리뷰 도메인 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/review/exception/code/ReviewSuccessCode.java 리뷰 도메인 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/review/exception/code/ReviewErrorCode.java 리뷰 도메인 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/review/entity/Review.java 리뷰 도메인 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/review/dto/ReviewResDTO.java 리뷰 도메인 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/review/dto/ReviewReqDTO.java 리뷰 도메인 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/review/converter/ReviewConverter.java 리뷰 도메인 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/review/controller/ReviewController.java 리뷰 도메인 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/mission/service/MissionService.java 미션 도메인 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/mission/repository/MissionRepository.java 미션 도메인 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/mission/exception/MissionExcepotion.java 미션 도메인 예외 스캐폴딩(현재 오타 포함)
src/main/java/com/example/umc10th/domain/mission/exception/code/MissionSuccessCode.java 미션 도메인 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/mission/exception/code/MissionErrorCode.java 미션 도메인 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/mission/erntity/Region.java 미션 도메인 엔티티 스캐폴딩(현재 패키지명 오타 포함)
src/main/java/com/example/umc10th/domain/mission/erntity/Mission.java 미션 도메인 엔티티 스캐폴딩(현재 패키지명 오타 포함)
src/main/java/com/example/umc10th/domain/mission/erntity/Market.java 미션 도메인 엔티티 스캐폴딩(현재 패키지명 오타 포함)
src/main/java/com/example/umc10th/domain/mission/erntity/mapping/Particiopate.java 미션 매핑 엔티티 스캐폴딩(현재 오타/패키지명 오타 포함)
src/main/java/com/example/umc10th/domain/mission/enums/ParticipatedStatus.java 미션 enum 스캐폴딩(현재 class로 선언)
src/main/java/com/example/umc10th/domain/mission/enums/MissionStatus.java 미션 enum 스캐폴딩(현재 class로 선언)
src/main/java/com/example/umc10th/domain/mission/dto/MissionResDTO.java 미션 DTO 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/mission/dto/MissionReqDTO.java 미션 DTO 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/mission/converter/MissionConverter.java 미션 변환기 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/mission/controller/MissionController.java 미션 컨트롤러 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/member/service/MewmberService.java 멤버 서비스 스캐폴딩(현재 오타 포함)
src/main/java/com/example/umc10th/domain/member/repository/MemberRepository.java 멤버 리포지토리 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/member/exception/MemberExpection.java 멤버 예외 스캐폴딩(현재 오타 포함)
src/main/java/com/example/umc10th/domain/member/exception/code/MemberSuccessCode.java 멤버 도메인 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/member/exception/code/MemberErrorCode.java 멤버 도메인 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/member/enums/UserType.java 멤버 enum 스캐폴딩(현재 class로 선언)
src/main/java/com/example/umc10th/domain/member/enums/NotifictationType.java 멤버 enum 스캐폴딩(현재 오타/ class로 선언)
src/main/java/com/example/umc10th/domain/member/enums/Gender.java 멤버 enum 스캐폴딩(현재 class로 선언)
src/main/java/com/example/umc10th/domain/member/entity/Term.java 약관 엔티티 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/member/entity/Notification.java 알림 엔티티 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/member/entity/Member.java 멤버 엔티티 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/member/entity/mapping/UserTermAgreement.java 약관동의 매핑 엔티티 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/member/entity/mapping/Preference.java 선호 매핑 엔티티 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/member/entity/FoodCategory.java 음식 카테고리 엔티티 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/member/dto/MemberResDTO.java 멤버 DTO 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/member/dto/MemberReqDTO.java 멤버 DTO 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/member/converter/MemberConverter.java 멤버 변환기 스캐폴딩(빈 클래스)
src/main/java/com/example/umc10th/domain/member/controller/MemberController.java 멤버 컨트롤러 스캐폴딩(빈 클래스)
settings.gradle rootProject 이름 설정
gradlew.bat Gradle Wrapper Windows 스크립트 추가
gradlew Gradle Wrapper POSIX 스크립트 추가
gradle/wrapper/gradle-wrapper.properties Gradle wrapper 배포 URL/설정 추가
gradle/wrapper/gradle-wrapper.jar Gradle wrapper JAR 추가
build.gradle Gradle 빌드/의존성/Swagger 설정 추가
.gitignore 빌드 산출물/IDE 파일/민감정보 무시 규칙 추가
.gitattributes EOL 및 binary 속성 설정 추가

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +19 to +28
// JWT 토큰 헤더 방식
String securityScheme = "JWT TOKEN";
SecurityRequirement securityRequirement = new SecurityRequirement().addList(securityScheme);

Components components = new Components()
.addSecuritySchemes(securityScheme, new SecurityScheme()
.name(securityScheme)
.type(SecurityScheme.Type.HTTP)
.scheme("Bearer")
.bearerFormat("JWT"));
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

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

For an HTTP Bearer auth scheme, OpenAPI expects .scheme("bearer") (lowercase) and the header name is typically Authorization. Using .scheme("Bearer") and .name("JWT TOKEN") can cause Swagger UI not to send the token correctly.

Copilot uses AI. Check for mistakes.
Comment on lines +11 to +16
jpa:
database: mysql
database-platform: org.hibernate.dialect.MySQLDialect
show-sql: true
hibernate:
ddl-auto: update
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

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

spring.jpa.hibernate.ddl-auto: update in the default (non-profiled) config can unexpectedly mutate schemas when the app runs in non-dev environments. Consider moving this to a local/dev profile and using validate (or disabling DDL auto) by default.

Copilot uses AI. Check for mistakes.
Comment on lines +6 to +9
driver-class-name: com.mysql.cj.jdbc.Driver
url: ${DB_URL} # jdbc:mysql://localhost:3306/{???????}
username: ${DB_USER}
password: ${DB_PW}
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

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

The inline JDBC URL example comment contains unreadable placeholder text ({???????}), which makes onboarding harder. Please replace with a valid example (e.g., jdbc:mysql://localhost:3306/<db_name>), or use a default value in ${DB_URL:...}.

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,4 @@
package com.example.umc10th.domain.member.service;

public class MewmberService {
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

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

Class/file name has a typo: MewmberService should be MemberService (and the filename should match). Fixing early avoids breaking package/class references as more code is added.

Suggested change
public class MewmberService {
public class MemberService {

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,4 @@
package com.example.umc10th.domain.member.exception;

public class MemberExpection {
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

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

Class/file name has a typo: MemberExpection should be MemberException (and the filename should match). This will reduce confusion and prevent import/name mismatches later.

Suggested change
public class MemberExpection {
public class MemberException {

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,4 @@
package com.example.umc10th.domain.member.enums;

public class UserType {
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

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

This file is under an enums package but declares a class. If this is intended to be an enum, declare it as enum; otherwise move it out of the enums package to avoid misleading structure.

Suggested change
public class UserType {
public enum UserType {

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,4 @@
package com.example.umc10th.domain.member.enums;

public class Gender {
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

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

This file is under an enums package but declares a class. If this is intended to be an enum, declare it as enum; otherwise move it out of the enums package to avoid misleading structure.

Suggested change
public class Gender {
public enum Gender {

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,4 @@
package com.example.umc10th.domain.member.enums;

public class NotifictationType {
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

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

NotifictationType has a typo (likely NotificationType). Also, since this is in an enums package, consider making it an enum rather than an empty class to match the package meaning.

Suggested change
public class NotifictationType {
public enum NotifictationType {
;

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +4
package com.example.umc10th.domain.mission.enums;

public class MissionStatus {
}
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

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

This file is under an enums package but declares a class. If this is intended to be an enum, declare it as enum; otherwise move it out of the enums package.

Copilot uses AI. Check for mistakes.
Comment on lines +1 to +4
package com.example.umc10th.domain.mission.enums;

public class ParticipatedStatus {
}
Copy link

Copilot AI Apr 8, 2026

Choose a reason for hiding this comment

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

This file is under an enums package but declares a class. If this is intended to be an enum, declare it as enum; otherwise move it out of the enums package.

Copilot uses AI. Check for mistakes.
@ochyeon
Copy link
Copy Markdown
Collaborator

ochyeon commented Apr 8, 2026

약관과 알림 테이블을 분리하여 각 기능이 더 독립적으로 작동하게 된 것 같아요! 수고하셨습니다!!!

Copy link
Copy Markdown
Collaborator

@ywkim1m ywkim1m left a comment

Choose a reason for hiding this comment

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

미션 하느라 고생하셨습니다! ! 최고!

Copy link
Copy Markdown
Member

@yangjiae12 yangjiae12 left a comment

Choose a reason for hiding this comment

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

코멘트 달은 것 외에는 미션 잘 진행해주신 것 같습니다! 수고하셨습니다~

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

enum으로 바꿔주시길 바랍니다!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

에러코드와 성공코드 또한 enum으로 바꿔주시길 바랍니다!

Copy link
Copy Markdown
Member

@yangjiae12 yangjiae12 left a comment

Choose a reason for hiding this comment

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

luke 폴더 내에 프로젝트 파일이 들어가도록 해주시길 바랍니다!

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

레포지토리는 interface로 만들어 주세요!

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.

6 participants