Skip to content

[FEAT] 게시판 CRUD API 구현#13

Merged
yongseong123 merged 3 commits into
mainfrom
feature/post-crud
Jun 1, 2026
Merged

[FEAT] 게시판 CRUD API 구현#13
yongseong123 merged 3 commits into
mainfrom
feature/post-crud

Conversation

@holly000
Copy link
Copy Markdown
Contributor

@holly000 holly000 commented Jun 1, 2026

Pull Request

작업 개요

  • 커뮤니티 게시판(Post) CRUD API를 구현했습니다.
  • 게시글 작성, 목록 조회, 상세 조회, 수정, 삭제 기능을 추가했습니다.
  • 삭제는 실제 삭제가 아닌 soft delete 방식으로 처리했습니다.

변경 사항

  • Post 엔티티, PostType enum 추가
  • 게시글 생성/조회/수정/삭제 API 추가
  • Post DTO, Repository, Service, Controller 추가
  • 게시글 작성자 연결을 위한 최소 User 구조 추가
  • 현재 로그인 사용자 조회용 SecurityUtil 추가

관련 이슈

테스트

  • 로컬에서 기능 동작을 확인했습니다.
  • 빌드 또는 테스트가 통과했습니다.
  • 변경된 API의 성공, 실패 케이스를 확인했습니다.
  • 요청 값 검증과 예외 처리를 확인했습니다.

체크리스트

  • 불필요한 로그, 주석, 디버깅 코드를 제거했습니다.
  • API 명세 변경 사항을 문서화했거나 공유했습니다.
  • 인증, 인가, 입력 검증 영향을 확인했습니다.
  • DB 스키마, 마이그레이션, 초기 데이터 변경 여부를 확인했습니다.
  • 환경 변수나 배포 설정 변경이 있다면 문서화했습니다.

API 변경 사항

  • 추가 또는 변경된 엔드포인트:

    • POST /api/posts
    • GET /api/posts
    • GET /api/posts/{postId}
    • PATCH /api/posts/{postId}
    • DELETE /api/posts/{postId}
  • 요청 예시:

{
  "postType": "QNA",
  "courseId": 1,
  "category": "BACKEND",
  "title": "스프링 질문입니다",
  "content": "게시글 내용입니다."
}
  • 응답 예시:
{
  "id": 1,
  "postType": "QNA",
  "courseId": 1,
  "category": "BACKEND",
  "title": "스프링 질문입니다",
  "content": "게시글 내용입니다.",
  "authorNickname": "user",
  "createdAt": "2026-06-01T10:00:00",
  "updatedAt": "2026-06-01T10:00:00"
}
  • 에러 응답:

    • UNAUTHORIZED: 로그인이 필요한 요청
    • FORBIDDEN: 작성자 또는 관리자 권한이 없는 요청
    • POST_NOT_FOUND: 게시글을 찾을 수 없는 요청

리뷰 포인트

  • User 엔티티는 게시글 작성자 연결을 위한 최소 구조로 추가했습니다.
  • 회원가입/로그인 구현 시 필요한 필드는 확장 가능하도록 두었습니다.
  • 현재 SecurityConfig가 전체 permitAll 상태라, 쓰기/수정/삭제 API는 JWT 적용 후 정상 테스트 가능합니다.
  • soft delete 처리 방식과 게시글 목록 조회 필터 조건을 중점적으로 확인 부탁드립니다.

holly000 and others added 3 commits June 1, 2026 17:04
충돌 해소:
- User.java: Auth 팀 구현(origin/main) 수용 - passwordHash, name, provider, deleted 필드 포함
- UserRole.java: origin/main 스타일 수용 (내용 동일)
- UserRepository.java: origin/main 수용 - existsByEmail, existsByNickname 추가

ErrorCode 통합:
- Auth 팀 추가분(DUPLICATE_EMAIL, DUPLICATE_NICKNAME) 유지
- Post CRUD 필요분(UNAUTHORIZED, FORBIDDEN, POST_NOT_FOUND) 추가

Post CRUD 파일 추가:
- domain/post 전체 (PostType, Post, DTOs, Repository, Service, Controller)
- global/security/SecurityUtil

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@yongseong123 yongseong123 self-requested a review June 1, 2026 10:24
Copy link
Copy Markdown
Collaborator

@yongseong123 yongseong123 left a comment

Choose a reason for hiding this comment

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

기능 정상 구현 확인했습니다.
이메일 검증 및 JWT 필터, 로그인 연동은
추후 업데이트 하겠습니다!

@yongseong123 yongseong123 merged commit 062f2cc into main Jun 1, 2026
1 check passed
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] 게시판 CRUD API 구현

2 participants