@@ -84,7 +84,7 @@ public MentorRoadmapResponse getById(Long id) {
8484 // 멘토 ID로 멘토 로드맵 상세 조회 (미래 API 확장성 대비)
8585 @ Transactional (readOnly = true )
8686 public MentorRoadmapResponse getByMentorId (Long mentorId ) {
87- // 멘토 ID로 로드맵과 노드들을 한 번에 조회 (성능 최적화)
87+ // 멘토 ID로 로드맵과 노드들을 한 번에 조회
8888 MentorRoadmap mentorRoadmap = mentorRoadmapRepository .findByMentorIdWithNodes (mentorId )
8989 .orElseThrow (() -> new ServiceException ("404" , "해당 멘토의 로드맵을 찾을 수 없습니다." ));
9090
@@ -94,7 +94,7 @@ public MentorRoadmapResponse getByMentorId(Long mentorId) {
9494 // 멘토 로드맵 수정
9595 @ Transactional
9696 public MentorRoadmapSaveResponse update (Long id , Long mentorId , MentorRoadmapSaveRequest request ) {
97- // 수정하려는 로드맵이 실제로 있는지 확인 (노드 정보는 불필요하므로 가벼운 조회)
97+ // 수정하려는 로드맵이 실제로 있는지 확인
9898 MentorRoadmap mentorRoadmap = mentorRoadmapRepository .findById (id )
9999 .orElseThrow (() -> new ServiceException ("404" , "로드맵을 찾을 수 없습니다." ));
100100
@@ -110,13 +110,13 @@ public MentorRoadmapSaveResponse update(Long id, Long mentorId, MentorRoadmapSav
110110 mentorRoadmap .updateTitle (request .title ());
111111 mentorRoadmap .updateDescription (request .description ());
112112
113- // 1. 기존 노드들을 DB에서 직접 삭제 (roadmap_id NULL 처리 없음)
113+ // 1. 기존 노드들을 DB에서 직접 삭제
114114 roadmapNodeRepository .deleteByRoadmapIdAndRoadmapType (
115115 mentorRoadmap .getId (),
116116 RoadmapNode .RoadmapType .MENTOR
117117 );
118118
119- // 2. 새 노드들 생성 및 추가 (재조회 불필요 - 처음부터 노드 없이 조회했음)
119+ // 2. 새 노드들 생성 및 추가
120120 List <RoadmapNode > allNodes = createValidatedNodesWithRoadmapId (request .nodes (), mentorRoadmap .getId ());
121121 mentorRoadmap .addNodes (allNodes );
122122
@@ -147,7 +147,7 @@ public void delete(Long roadmapId, Long mentorId) {
147147 throw new ServiceException ("403" , "본인의 로드맵만 삭제할 수 있습니다." );
148148 }
149149
150- // 1. 관련 노드들을 먼저 직접 삭제 (안전한 삭제)
150+ // 1. 관련 노드들을 먼저 직접 삭제
151151 roadmapNodeRepository .deleteByRoadmapIdAndRoadmapType (
152152 roadmapId ,
153153 RoadmapNode .RoadmapType .MENTOR
@@ -167,26 +167,24 @@ private void validateRequest(MentorRoadmapSaveRequest request) {
167167 validateStepOrderSequence (request .nodes ());
168168 }
169169
170- // stepOrder 연속성 검증 (멘토 로드맵은 선형 구조) - 성능 최적화
170+ // stepOrder 연속성 검증 (멘토 로드맵은 선형 구조)
171171 private void validateStepOrderSequence (List <RoadmapNodeRequest > nodes ) {
172172 int nodeCount = nodes .size ();
173173 boolean [] stepExists = new boolean [nodeCount + 1 ]; // 1부터 nodeCount까지 사용
174174
175- // 한 번의 순회로 중복 검증 및 stepOrder 수집
175+ // 중복 검증 및 stepOrder 수집
176176 for (RoadmapNodeRequest node : nodes ) {
177177 int stepOrder = node .stepOrder ();
178178
179179 // 범위 검증
180180 if (stepOrder < 1 || stepOrder > nodeCount ) {
181181 throw new ServiceException ("400" ,
182- String .format ("stepOrder는 1부터 %d 사이의 값이어야 합니다. 현재값: %d" ,
183- nodeCount , stepOrder ));
182+ String .format ("stepOrder는 1부터 %d 사이의 값이어야 합니다." , nodeCount ));
184183 }
185184
186185 // 중복 검증
187186 if (stepExists [stepOrder ]) {
188- throw new ServiceException ("400" ,
189- String .format ("stepOrder %d가 중복되었습니다." , stepOrder ));
187+ throw new ServiceException ("400" , "stepOrder에 중복된 값이 있습니다" );
190188 }
191189
192190 stepExists [stepOrder ] = true ;
@@ -196,7 +194,7 @@ private void validateStepOrderSequence(List<RoadmapNodeRequest> nodes) {
196194 for (int i = 1 ; i <= nodeCount ; i ++) {
197195 if (!stepExists [i ]) {
198196 throw new ServiceException ("400" ,
199- String .format ("stepOrder는 1부터 시작하는 연속된 숫자여야 합니다. 누락된 값: %d" , i ));
197+ String .format ("stepOrder는 1부터 시작하는 연속된 숫자여야 합니다." ));
200198 }
201199 }
202200 }
0 commit comments