Skip to content

[3주차] 김동빈/[feat] 게시글 도메인 API 구현#103

Open
kdobi wants to merge 4 commits intoLeets-Official:김동빈/mainfrom
kdobi:김동빈/3주차

Hidden character warning

The head ref may contain hidden characters: "\uae40\ub3d9\ube48/3\uc8fc\ucc28"
Open

[3주차] 김동빈/[feat] 게시글 도메인 API 구현#103
kdobi wants to merge 4 commits intoLeets-Official:김동빈/mainfrom
kdobi:김동빈/3주차

Conversation

@kdobi
Copy link
Copy Markdown

@kdobi kdobi commented Apr 7, 2026

1. 과제 요구사항 중 구현한 내용

  • 게시글 생성, 수정, 삭제
  • 게시글 조회, 존재하지 않는 게시글에 관한 안내
  • 잘못된 입력값으로 요청 받았을 때 해당 내용 안내
  • 요청에 대한 처리를 성공한 경우 / 실패한 경우에 대한 결과 메시지

2. 핵심 변경 사항

  1. user, comment, post의 각 속성에 잘못된 입력에 대한 검증 과정을 추가했고 안내 메시지를 지정했습니다.
  2. global.exception.GlobalExceptionHandler 클래스로 잘못된 입력에 대한 처리 과정을 작성했습니다.
  3. global.exception.ApiResponse 클래스로 올바른/잘못된 입력에 대한 응답 메시지를 통일했습니다.
  4. 파일을 도메인별로 정리헀습니다.

3. 실행 및 검증 결과

게시글 등록 성공한 경우
스크린샷 2026-04-07 오후 4 18 25

게시글 등록 과정에서 제목을 입력하지 않은 경우
스크린샷 2026-04-07 오후 4 17 49

게시글 조회
스크린샷 2026-04-07 오후 4 17 39

4. 완료 사항

  1. 게시글 생성, 수정, 삭제, 조회
  2. 잘못된 입력 검증
  3. 요청 성공한 경우 / 실패한 경우 안내 메시지 지정

5. 추가 사항

#102

제출 체크리스트

  • PR 제목이 규칙에 맞다
  • base가 {이름}/main 브랜치다
  • compare가 {이름}/{숫자}주차 브랜치다
  • 프로젝트가 정상 실행된다
  • 본인을 Assignee로 지정했다
  • 파트 담당 Reviewer를 지정했다
  • 리뷰 피드백을 반영한 뒤 머지/PR close를 진행한다

Reviewer 참고

@kdobi kdobi requested a review from a team April 7, 2026 07:28
@kdobi kdobi self-assigned this Apr 7, 2026
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Entity와 DTO 간의 변환 로직을 PostConverter라는 별도 클래스로 분리하신 점이 인상 깊네요! 덕분에 서비스 코드가 비즈니스 로직에만 집중할 수 있어 가독성이 훨씬 좋아진 것 같습니다. 저도 다음 작업 때 이런 계층 분리를 적용해보고 싶네요. 잘 배웠습니다!

Comment on lines +28 to +31
@Transactional
public PostResponse createPost(PostRequest request) {
User user = userRepository.findById(request.getUserId())
.orElseThrow(() -> new PostException(BaseErrorCode.USER_NOT_FOUND));
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

3주차 개발도 수고 많으셨습니다 :)
userId를 Request에서 직접 받으면 다른 사람 id를 넣어서 요청할 수도 있을 것 같은데, 추후 어떤 방식으로 개발하실 생각이신지 궁금합니다!

@HyeonSeongIM HyeonSeongIM self-requested a review April 9, 2026 09:39
import java.util.List;

@RestController
@RequestMapping("/posts")
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

추후에 api 버전으로 API를 구성해보면 어떠실까요?? 예를 들어 api/v1/posts라던지 api/v1 디렉토리를 만드시면 유지보수에 더 좋은 코드가 될 것 같아요!


@Service
@RequiredArgsConstructor
@Transactional(readOnly = true)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

서비스 전체에 Transactional을 붙이기 보다는 각 메서드별로 Transactional을 붙이시는게 이후 코드 유지보수에 더 좋을 것 같아요!

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.

4 participants