티스토리 뷰
조회, 등록은 사실 데이터를 이 모양에서 저 모양으로 옮기는 것뿐이었다. 수정은 다르다 비밀번호가 맞는지 판단하는 로직이 들어갔다. 처음으로 진짜 "로직"이 생겼다
// BoardService.java
public BoardResponse updateBoard(Long id, BoardUpdateRequest request) {
BoardEntity board = boardMapper.selectBoardDetail(id);
// 비밀번호 검증
if (!board.getPassword().equals(request.password())) {
throw new IllegalArgumentException("비밀번호가 일치하지 않습니다.");
}
//바꿀 부분 덮어쓰기
board.setCategoryId(request.categoryId());
board.setTitle(request.title());
board.setContent(request.content());
board.setUpdatedAt(LocalDateTime.now());
boardMapper.updateBoard(board);
return boardConverter.toResponse(board);
}
writer는 왜 수정 불가로 정했음? - 누가 썼는지는 수정되면 안되니까 막아둠
수정 로직에서 기존 데이터를 불러올 때, getBoardDetail이 아니라 boardMapper.selectBoardDetail을 직접 썼다.
이유는 조회수 때문인데 수정하려고 서버가 내부적으로 불러온 것까지 조회수 1 증가로 치면 이상하다. 그래서 조회수 증가 로직이 없는 순수 조회 메서드만 골라서 썼다.
@PathVariable(URL의 {id})이랑 @RequestBody(요청 본문)를 처음으로 같이 썼다
@PutMapping("/api/boards/{id}")
public BoardResponse updateBoard(@PathVariable Long id, @RequestBody BoardUpdateRequest request) {
return boardService.updateBoard(id, request);
}
수정할 대상(id)은 URL에서, 뭘로 바꿀지(request)는 본문에서 받는다 출처가 다른 두 정보를 한 메서드가 동시에 받는 구조인 것이다
결과적으로는 수정 파트는 큰 문제없이 잘 구현했다

(비밀번호 틀릴시) java.lang.IllegalArgumentException: 비밀번호가 일치하지 않습니다.로그를 뱉어낸다.
Postman으로 PUT /api/boards/1 호출해서, 맞는 비밀번호로는 수정이 잘 되고 틀린 비밀번호로는 에러가 나는 것까지 확인했다.
'게시판 만들기 > 2주차' 카테고리의 다른 글
| 만들자 게시판 2주차 (6) - Board 삭제 API 구현 (0) | 2026.07.11 |
|---|---|
| 만들자 게시판 2주차 (4) - Board 조회 API 구현 (0) | 2026.07.11 |
| 만들자 게시판 2주차 (3) - Board 등록 API 구현 (0) | 2026.07.10 |
| 만들자 게시판 2주차 (2) - 카테고리 조회 API 구현 (0) | 2026.07.09 |
| 만들자 게시판 2주차 (1) - 1주차 마무리, 그리고 2주차 스프링부트로 (0) | 2026.07.09 |
