Skip to content

[Jinyong] Week10 미션 - #117

Open
LATE-BL00MER wants to merge 64 commits into
mainfrom
Jinyong-week10
Open

[Jinyong] Week10 미션#117
LATE-BL00MER wants to merge 64 commits into
mainfrom
Jinyong-week10

Conversation

@LATE-BL00MER

Copy link
Copy Markdown

🔗 연관 이슈

🛠 작업 내용

🖼 스크린샷 (선택)

👀 리뷰 요구사항 (선택)

🤖 AI 활용

  • AI 사용 안 함
  • 코드 작성 아이디어 참고
  • 테스트/리팩토링 보조
  • 문서/주석 작성 보조
  • 기타 (아래에 간단히 작성)

💬 나의 프롬프트

🧠 AI 응답

✅ 내가 최종 선택한 방법 (이유)

💡 나만의 Tip (선택)

LATE-BL00MER and others added 30 commits April 7, 2026 20:51
LATE-BL00MER and others added 26 commits May 20, 2026 14:18
@LATE-BL00MER LATE-BL00MER linked an issue Jun 17, 2026 that may be closed by this pull request
1 task
@LATE-BL00MER LATE-BL00MER changed the title [Jinyong] Week10 미 [Jinyong] Week10 미션 Jun 17, 2026

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0def138327

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

@RequestParam(required = false) String sort
) {
BaseSuccessCode code = MissionSuccessCode.OK;
return ApiResponse.onSuccess(code, missionService.getMissionList(storeId, pageSize, pageNumber, sort));

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge 페이지 파라미터 순서를 맞추세요

가게 미션 목록 조회에서 컨트롤러는 pageSize, pageNumber 순서로 넘기지만 서비스 메서드는 pageNumber, pageSize 순서로 받습니다. 그래서 일반적인 요청인 pageNumber=0&pageSize=10이 서비스 안에서는 PageRequest.of(10, 0)으로 해석되어 Spring Data가 페이지 크기 0 예외를 냅니다. 컨트롤러와 서비스의 파라미터 순서를 동일하게 맞추거나 Pageable/요청 DTO로 묶어 전달하는 방식을 연습해 보세요; 다음 학습 포인트는 컨트롤러-서비스 계약과 페이징 파라미터 의미입니다.

Useful? React with 👍 / 👎.

Comment on lines +28 to +29
@Value("${jwt.token.secretKey}") String secret,
@Value("${jwt.token.expiration.access}") Long accessExpiration

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge JWT 설정값을 실행 프로필에 제공하세요

JwtUtil 생성자가 jwt.token.secretKeyjwt.token.expiration.access를 기본값 없이 필수로 요구하지만, 현재 커밋에는 Jinyong/src/main/resources 설정 파일이 없어 로컬 실행이나 @SpringBootTest contextLoads가 빈 생성 단계에서 placeholder 해석 실패로 멈춥니다. application.yml/application-test.yml에 테스트용 값을 추가하거나 @ConfigurationProperties로 외부 설정을 명확히 검증하세요; 다음 학습 포인트는 Spring Environment와 외부 설정 주입입니다.

Useful? React with 👍 / 👎.



// ID 기준이면 다음 커서는 마지막 리뷰의 ID
if (query.equals("id")) {

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2 Badge 정규화한 query 값으로 커서를 만드세요

위의 조회 분기에서는 query.toLowerCase()ID 같은 대소문자 입력도 허용하지만, 다음 커서를 만들 때는 원본 query.equals("id")를 검사합니다. 이 경우 query=ID&cursor=-1 첫 응답이 score:id 형식 커서를 내려주고, 다음 요청에서 ID 커서 파싱이 깨질 수 있습니다. String normalizedQuery = query.toLowerCase()처럼 한 번 정규화한 값을 조회 분기와 커서 생성에 모두 사용하세요; 다음 학습 포인트는 입력 정규화와 커서 페이지네이션 일관성입니다.

Useful? React with 👍 / 👎.

@kjhh2605 kjhh2605 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

[키워드 조사]
클라우드 컴퓨팅, AWS/GCP, 환경변수, yml 환경 분리를 실제 배포 맥락과 연결하려는 시도가 좋습니다. 다만 ch10 문서 중간에 코드 조각이 섞여 Markdown 구조가 끊기는 부분이 있어 개념 정리의 신뢰도가 낮아질 수 있습니다. Docker와 jar 비교까지 완결되도록 문서 구조를 다시 확인하는 것을 권장합니다.

[코드 리뷰]
회원가입, 로그인, JWT, OAuth, 예외 처리까지 인증 기능을 여러 계층으로 확장한 점이 좋습니다. Controller-Service-Converter-Repository 흐름도 비교적 명확합니다. 다만 JWT 기반 인증에서는 세션 정책을 코드 의도와 일치시켜야 하며, IDE 설정 파일과 로컬 실행 정보는 저장소에 포함하지 않는 습관이 필요합니다. 특히 환경변수와 민감 정보 관리 주차이므로, 배포 설정 파일과 로컬 설정 파일의 경계를 분명히 하는 것을 권장합니다.

# application-local.yml
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

문서 중간에 @EnableWebSecuritySecurityConfig 코드 일부가 섞여 있어 ch10 키워드 정리의 구조가 끊깁니다. 배포 개념 정리와 코드 조각을 분리하고, Docker와 jar 비교까지 문서가 완결되는지 다시 확인하는 것을 권장합니다.


// 2. 세션을 쓰지 않으므로 Stateless(무상태)로 설정하며 끈다.
.sessionManagement(session -> session
.sessionCreationPolicy(SessionCreationPolicy.IF_REQUIRED)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

JWT 기반 인증을 의도한다면 SessionCreationPolicy.STATELESS를 사용하는 것이 더 적절합니다. 현재 주석은 무상태를 설명하지만 실제 설정은 IF_REQUIRED라서 필요한 경우 세션이 생성될 수 있으므로, 주석과 설정을 일치시키는 것을 권장합니다.

Comment thread .idea/workspace.xml
<component name="RunManager">
<configuration name="Umc10thApplication" type="SpringBootApplicationConfigurationType" factoryName="Spring Boot" nameIsGenerated="true">
<envs>
<env name="DB_URL" value="jdbc:mysql://localhost:3306/umc10th?serverTimezone=Asia/Seoul&amp;characterEncoding=UTF-8" />

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

IDE 설정 파일과 로컬 실행 환경 정보는 저장소에 포함하지 않는 것을 권장합니다. 특히 환경변수와 민감 정보 관리 주차에서는 로컬 DB 접속 정보나 개인 실행 설정이 커밋되지 않도록 .gitignore와 추적 파일 정리를 함께 확인해야 합니다.

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.

[Feat] 10주차-프로젝트 배포하기 - AWS

2 participants