양식
<aside>
10/27 @담당자
요청자 :
담당 도메인:
조회 조건:
반환값:
예외:
[x] 확인 및 해결
⇒
</aside>
<aside>
10/27 @담당자
요청자 : 채팅 ( 김영서 )
담당 도메인: 프로필 ( 이현정 )
조회 조건: 채팅방 내의 프로필 클릭시
반환값: 탈퇴·정지 사용자의 프로필 응답 형태
예외:
[x] 확인 및 해결
⇒ 탈퇴하지 않은 회원을 조회하는 MemberService.getMemberEntity()가 구현되어 있습니다!
내부에서 findByIdAndDeletedAtIsNull로 조회하며 회원이 없거나 탈퇴한 경우 회원 없음 예외를 반환하므로 해당 메서드를 사용해 주세요!
</aside>
<aside>
10/27 @담당자
요청자 : 채팅 ( 김영서 )
담당 도메인: 서비스 요청·견적 ( 김태민 )
조회 조건: 요청서, 견적서에 대한 상세 조회 버튼을 클릭 시
반환값: 요청서, 견적서 데이터가 담긴 이미지, 혹은 context String 반환
예외: 요청서, 견적서의 유효 기간이 지난 경우 열리지 않고 경고문만 띄워지도록 함
</aside>
<aside>
10/27
요청자 :
담당 도메인:
조회 조건:
반환값:
예외:
[ ] 확인 및 해결
⇒
</aside>
<aside>
10/27
요청자 :
담당 도메인:
조회 조건:
반환값:
예외:
[ ] 확인 및 해결
⇒
</aside>
<aside>
10/27
요청자 :
담당 도메인:
조회 조건:
반환값:
예외:
[ ] 확인 및 해결
⇒
</aside>
<aside>
10/27
요청자 :
담당 도메인:
조회 조건:
반환값:
예외:
[ ] 확인 및 해결
⇒
</aside>
<aside>
2026년 10월 28일 · 이슈 #3 구조 변경 공유
요청자 : 이현정
담당 도메인: 카테고리·지역
조회 조건: 분리된 단계별 엔티티 및 공개 목록 조회
반환값: FirstCategory / SecondCategory / FirstRegion / SecondRegion 또는 각 Response 목록
예외: 대상·상위 항목이 없으면 해당 도메인의 404 예외
기존 CategoryService.getCategoryEntity와 RegionService.getRegionEntity는 제거합니다. 각 단계의 Service가 제공하는 getFirstCategoryEntity·getSecondCategoryEntity·getFirstRegionEntity·getSecondRegionEntity를 사용합니다. 다른 도메인은 Repository를 직접 호출하지 않습니다.
공개 목록은 GET /api/public/first-categories, GET /api/public/first-categories/{firstCategoryId}/second-categories, GET /api/public/first-regions, GET /api/public/first-regions/{firstRegionId}/second-regions로 나눕니다. 기존 /api/public/categories·regions와 parentId 계약은 대체됩니다. 응답의 상위 ID 필드는 firstCategoryId·firstRegionId로 구분합니다.
시드의 기존 ID·이름·지역 코드는 보존합니다. ID는 단계별 테이블의 값이므로 다른 단계에서 같은 ID를 사용할 수 있습니다. 내부 ID와 code를 구분해서 전달해 주세요.
고수 프로필은 user.expertprofile로 정리하고 Member와 별도 엔티티로 유지합니다. 회원당 최대 하나의 프로필만 저장할 수 있으며 신규 등록·수정과 서비스·지역 연결은 후속 이슈입니다.
</aside>