티스토리 뷰

조회, 등록은 사실 데이터를 이 모양에서 저 모양으로 옮기는 것뿐이었다. 수정은 다르다 비밀번호가 맞는지 판단하는 로직이 들어갔다. 처음으로 진짜 "로직"이 생겼다

 

// 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 호출해서, 맞는 비밀번호로는 수정이 잘 되고 틀린 비밀번호로는 에러가 나는 것까지 확인했다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2026/08   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
글 보관함