Skip to content

[1주차] 강지훈/[feat] 초기 프로젝트 설정#9

Open
theSnackOverflow wants to merge 13 commits intoLeets-Official:강지훈/mainfrom
theSnackOverflow:강지훈/1주차

Hidden character warning

The head ref may contain hidden characters: "\uac15\uc9c0\ud6c8/1\uc8fc\ucc28"
Open

[1주차] 강지훈/[feat] 초기 프로젝트 설정#9
theSnackOverflow wants to merge 13 commits intoLeets-Official:강지훈/mainfrom
theSnackOverflow:강지훈/1주차

Conversation

@theSnackOverflow
Copy link
Member

@theSnackOverflow theSnackOverflow commented Mar 21, 2026

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

  • 프로젝트 구조 구성 (Controller/Service 레이어 분리)
  • 헬스체크 API 구현 (GET /api/v1/health)
  • 문자열 2개 반환 API 구현 (POST /api/v1/strings/repeat)
  • 권장 추가 구현 반영 (선택)

2. 핵심 변경 사항

  • HealthController : GET /api/v1/health 엔드포인트 추가
  • StringController + StringService : POST /api/v1/strings/repeat 구현, Controller/Service 레이어 분리
  • StringRequest / StringResponse : 요청·응답 DTO 분리, @JsonProperty로 스네이크 케이스 키 적용
  • ApiResponse<T> : 공통 응답 포맷(status, message, data) 도입
  • GlobalExceptionHandler : @Valid 검증 실패 시 400 응답 처리
  • API 경로를 /api/v1/ 접두사로 버전 구조 설계
  • Swagger UI 연동 (springdoc-openapi-starter-webmvc-ui)

3. 실행 및 검증 결과

  • 실행 결과: ./gradlew bootRun 후 정상 기동 확인 (port 8080)
  • GET /api/v1/health 응답:
ok
  • POST /api/v1/strings/repeat 요청/응답:
// 요청
{ "value": "hello" }

// 응답
{
  "status": "success",
  "message": "요청이 성공적으로 처리되었습니다.",
  "data": {
    "string_one": "hello",
    "string_two": "hello"
  }
}
  • 잘못된 요청 시:
// 요청
{ "value": "" }

// 응답 (400)
{
  "status": "error",
  "message": "value는 필수 입력값입니다.",
  "data": null
}
image image image

4. 완료 사항

  1. Spring Boot 프로젝트 초기 세팅 (Controller/Service/DTO 레이어 구조)
  2. 헬스체크 API 및 문자열 반복 API 구현
  3. 공통 응답 포맷, 예외 처리, API 버전 경로 설계 적용

5. 추가 사항

제출 체크리스트

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

@theSnackOverflow theSnackOverflow self-assigned this Mar 21, 2026
@theSnackOverflow theSnackOverflow changed the title 강지훈/1주차 [1주차] 강지훈/초기 프로젝트 설정 Mar 21, 2026
@theSnackOverflow theSnackOverflow changed the title [1주차] 강지훈/초기 프로젝트 설정 [1주차] 강지훈/[feat] 초기 프로젝트 설정 Mar 21, 2026
Copy link
Collaborator

Choose a reason for hiding this comment

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

우선 cluade와 같은 LLM을 사용하여 진행하고 익숙해지는 것은 너무 좋습니다.

다만, claude의 문서 중에서 어떤걸 공유하고, 어떤걸 공유하지 말지에 대한 걸 고민해보는 걸 추천드립니다! 아래의 저의 생각을 간단하게 공유 드릴테니, 보시기전에 "문서를 어떻게 분류할까"라는 생각을 해보시면 좋을 것 같아요.

개인적인 생각

제가 생각할 때에 문서는 다음과 같은 두 종류를 가집니다.

  • SLM: 단기 기억
  • LTM: 장기 기억

단기 기억이란 특정 문제를 해결하기 위한 문서(흔히 티켓 혹은 테스크)들을 이야기 하며 해당 작업이 끝나면 소비되어 사라져도 무방한 문서들을 이야기 합니다.

장기 기억이란 README 문서나, 아키텍쳐 문서 등 프로젝트 진행에 전반에 걸쳐서 지속적으로 관리되어야 할 문서를 이야기합니다.

즉, 작업 중에는 단기 기억이 생성되어 진행되고
작업이 끝나면 장기 기억을 업데이트 하여 공유하는

그런 방식으로 팀 문서가 관리되어야 한다고 생각하고 있어요.

그래서 위 같은 생각으로 이번 실습 프로젝트에서 .claude/ ignore 처리해주시면 어떨까 싶어요.

Copy link
Member Author

Choose a reason for hiding this comment

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

리뷰 반영헀습니다!
VSC만 쓰다 IntelliJ 오랜만에 사용해보는데 아직 손에 안 익어서 어렵네요..

@theSnackOverflow theSnackOverflow requested review from a team and eun-seoo and removed request for sky-0131 and yukyoungs March 23, 2026 13:40
@theSnackOverflow theSnackOverflow added the enhancement New feature or request label Mar 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants