Skip to content

[신지연] Sprint5#165

Open
Nooroong wants to merge 19 commits intocodeit-bootcamp-spring:신지연from
Nooroong:sprint5
Open

[신지연] Sprint5#165
Nooroong wants to merge 19 commits intocodeit-bootcamp-spring:신지연from
Nooroong:sprint5

Conversation

@Nooroong
Copy link
Copy Markdown
Collaborator

@Nooroong Nooroong commented Feb 24, 2026

요구사항

기본

  • 스프린트 미션#4에서 구현한 API를 RESTful API로 다시 설계해보세요.

    • API 스펙을 확인하고 본인이 설계한 API와 비교해보세요.
    • oasdiff를 활용하면 좀 더 수월하게 비교할 수 있어요.
    • API 설계에 정답은 없지만, 이어지는 요구사항과 미션을 원활히 수행하기 위해 제공된 API 스펙에 맞추어 구현해주세요.
    • 특히, 심화 요구사항에서 제공되는 프론트엔드 코드는 제공된 API 스펙을 준수해야 연동할 수 있습니다.
    • Service 레벨에서 예외처리 하는 부분에 BusinessLogicException 적용하기
    • GlobalHandlerException 작성
  • Postman을 활용해 컨트롤러를 테스트 하세요.

  • springdoc-openapi를 활용하여 Swagger 기반의 API 문서를 생성하세요.

  • Swagger-UI를 활용해 API를 테스트해보세요.

심화

  • 다음의 정적 리소스를 서빙하여 프론트엔드와 통합해보세요. API 스펙을 준수했다면 잘 동작할거예요.

    fe_1.0.0.zip
    화면 가이드

  • Railway.app을 활용하여 애플리케이션을 배포해보세요.
    • Railway.app은 애플리케이션을 쉽게 배포할 수 있도록 도와주는 PaaS입니다.
    • Railway.app에 가입하고, 배포할 GitHub 레포지토리를 연결하세요.
    • Settings > Network 섹션에서 Generate Domain 버튼을 통해 도메인을 생성하세요.
    • 생성된 도메인에 접속해 배포된 애플리케이션을 테스트해보세요.
    • https://10-sprint-mission-production-8757.up.railway.app/ ← 도메인 입니다.

스크린샷

스크린샷 2026-02-24 오후 4 12 34 스크린샷 2026-02-24 오후 4 14 04 스크린샷 2026-02-24 오후 4 16 32

멘토에게

  • 셀프 코드 리뷰를 통해 질문 이어가겠습니다.

- 스프린트 미션#4에서 구현한 API를 RESTful API로 다시 설계
  - 공통 성공 응답모델(SuccessResponse)을 컨트롤러에 적용하기
  - Service 레벨에서 예외처리 하는 부분에 BusinessLogicException 적용하기
  - GlobalHandlerException 작성
- springdoc-openapi를 활용하여 Swagger 기반의 API 문서를 생성
- 프론트에서 이 형태를 받지 않으므로 제거했습니다.
- 이전 미션에 남겨주신 내용에 따라 파일 확장자를 스펙에 맞게 변경
- 공통사항
  - 파일 이름 앞에 랜덤한 UUID를 붙여 파일 이름이 중복되지 않도록 하였습니다.
  - 첨부파일이 존재하는지를 service에서 확인하도록 했습니다.
- BasicMessageService
  - 여러 첨부파일을 저장할 수 있도록 기존의 코드를 활용하여 작성했습니다.
- Swagger에서 multipart/form-data로 request를 날릴 때 Octet-Stream 문제가 발생함
- 이를 해겷하기 위해 Octet-Stream을 처리하는 코드를 작성
- 참가자 검증은 private channel에서만 하도록 함
- readStatus 생성을 서버가 아닌 프론트에게 맡김
- 엔티티 리턴에서 DTO 리턴으로 변경
- mapper를 통해 코드를 분리
- 회원가입, 회원정보 수정, 메시지 전송에서 첨부파일을 저장하는 코드가 중복됨
- 이를 AttachmentUtil 클래스를 통해 분리함
- 또한 첨부파일 저장 경로를 application.yml에 분리함
@Nooroong Nooroong added the 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. label Feb 24, 2026
@Nooroong Nooroong self-assigned this Feb 24, 2026
- PATCH /api/users/{userId}의 응답 형태 수정
- ChannelPatchDto(ChannelUpdateRequest) 필드 수정
@Nooroong Nooroong requested a review from jaeyeon518 February 24, 2026 07:50
- Bean Validation을 이용하여 요청과 관련된 DTO의 필드에 대해 유효성 검사를 하도록 수정
- @notblank는 String 타입 필드에 대해서만 작동하므로 UUID나 Instant 필드에서는 @NotNull로 바꿈
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant