Skip to content

[2주차/빈] 워크북 제출합니다#30

Merged
2u6in merged 5 commits intoUMC-Inha:bin/mainfrom
2u6in:main
Apr 2, 2026
Merged

[2주차/빈] 워크북 제출합니다#30
2u6in merged 5 commits intoUMC-Inha:bin/mainfrom
2u6in:main

Conversation

@2u6in
Copy link
Copy Markdown

@2u6in 2u6in commented Mar 23, 2026

✅ 워크북 체크리스트

  • 모든 핵심 키워드 정리를 마쳤나요?
  • 핵심 키워드에 대해 완벽히 이해하셨나요?
  • 이론 학습 이후 직접 실습을 해보는 시간을 가졌나요?
  • 미션을 수행하셨나요?
  • 미션을 기록하셨나요?

✅ 컨벤션 체크리스트

  • 디렉토리 구조 컨벤션을 잘 지켰나요?
  • pr 제목을 컨벤션에 맞게 작성하였나요?
  • pr에 해당되는 이슈를 연결하였나요?(중요)
  • 적절한 라벨을 설정하였나요?
  • 파트장에게 code review를 요청하기 위해 reviewer를 등록하였나요?
  • 닉네임/main 브랜치의 최신 상태를 반영하고 있는지 확인했나요?(매우 중요!)

📌 주안점

홈화면의 API 명세서를 설계할 때 해당 지역에서 달성한 미션의 개수를 조회하는 API하고 내 미션들을 조회하는 API를 각각 따로 하려다가 한 번에 했는데 따로하는 거랑 한 번에 하는 거랑 뭐가 더 나은 설계일까요
그리고 좋은 엔드포인트 주소 설계를 잘 모르겠는데 엔드포인트 주소 설계는 어떻게 짜야하나요

@2u6in 2u6in requested a review from YoungJJun March 23, 2026 14:20
@2u6in 2u6in self-assigned this Mar 23, 2026
@2u6in 2u6in linked an issue Mar 23, 2026 that may be closed by this pull request
Copy link
Copy Markdown
Collaborator

@YoungJJun YoungJJun left a comment

Choose a reason for hiding this comment

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

2주차 피드백

  1. 홈화면
    • 조회이기 때문에 GET 메서드 사용 적절합니다.
    • 페이지네이션이 적용되지 않은 요청으로 보여요! 만약에 적용한다면 어떻게 하실지 생각해보시면 좋을것 같아요.
    • member-id를 Path Variable로 전달하고 있어요! 아마 토큰에 대해서 아직 배우지 않아서 그런것 같은데 토큰에는 해당 사용자에 대한 정보가 담겨있습니다. 따라서 따로 id를 전달할 필요가 없어요.
      추가로 만약에 Path Variable을 통해 id를 전달하도록 구현하면 해당 값만 바꿔서 다른 회원의 홈화면을 조회할 수 있는 취약점도 생길 수 있어요! 로직상 막을 수 있지만 일반적으로 토큰이 포함되는 경우 멤버id는 항상 포함하지 않는다고 생각하고 계시면 될 것 같아요.
  2. 보유 포인트 조회
    • 홈화면 설명과 동일하게 user-id는 토큰에서 가져올 수 있어요.
      그러면 endpoint는 members/me/points 정도가 좋을 것 같아요.
  3. 마이페이지 리뷰 작성
    • POST 요청 좋아요.
    • endpoint에서 user-id 제거
    • 미션에 리뷰를 다는것으로 설계하신 것 같아요.
      그렇다면 POST /v1/missions/{mission-id}/reviews
      혹은 대부분 가게에 리뷰를 다는 것으로 설계하셨는데
      그런 경우에는 POST /v1/store/{store-id}/reviews
      이런식으로 될 것 같아요.
    • 응답은 작성이 필수가 아니여서 많이 헷갈려하신 부분 적어드리자면 리뷰 작성의 경우 성공에 대한 응답 코드는 200Success 보다는 201Created가 적절 (리뷰가 Created 되었기 때문입니다)
  4. 미션 목록 조회
    • Path Variable에는 user-id가 여전히 남아있고 Endpoint에는 없어요.
      user-id 없는 방향으로 통일하는게 맞는 것 같습니다.
    • 쿼리 파라미터를 통해 진행 중, 완료 선택하는거 좋아요.
  5. 미션 성공 누르기
    • 상태(특정 컬럼)를 바꾼다 라는 의미에서 PATCH 메서드 선택 좋아요.
    • user-id는 당연히 여기서도 제거할게요.
    • PATCH ~/missions/{mission-id}는 미션에 대한 수정을 하는 API에 더 적절한 endpoint인 것 같습니다.
      따라서 여기서는 실제로 userMission의 상태를 바꾸는거니 그에 맞춰서 user-missions/{user-mission-id} 로 전달하고 이 때 상태를 어떤 값으로 바꿀지 Body에 {“status”: “COMPLETED”} 이런식으로 바꿀 수 있을 것 같아요.
  6. 회원가입
    • endpoint 는 사용자 생성에 초점을 맞추면 POST /v1/users 가 가장 RESTful 한 것 같아요.
    • 회원가입, 로그인등과 관련해서는 예외로 signup, login등을 사용하는 것으로 알고 있어요. 따라서 auth/signup 정도도 좋은 것 같아요.

빈 2주차 수고하셨어요. 꼭 필요한 부분들은 수정해주시고 개인적으로 궁금한거 공부해주시면 좋을 것 같습니다. (질문도 환영입니다) 다음주도 화이팅 해주세요.

추가로 현재 작성된 워크북(노션) 보면서 리뷰 작성해서 혹시 제출하신 내용과 다른 부분이 있을수도 있어요!

@2u6in 2u6in merged commit 026e896 into UMC-Inha:bin/main Apr 2, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Chapter02_API 설계하기 - API 명세서, RESTful API

2 participants