현재 BoardController에 게시글 수정하기 페이지는 다음과 같이 구현되어 있습니다.

BoardController.java

@GetMapping("/boards/1/update-form")
public String updateForm() {
     return "board/update-form";
}

1.png

1.png

게시글 수정 페이지의 기본 구성은 작성 페이지와 유사합니다. 다만, 게시글 수정 페이지는 작성 페이지와 달리 수정 시나리오에 맞춘 추가 기능이 필요합니다

<aside> 💡

더 나은 사용자 경험을 위해 수정 페이지에는 기존 게시글의 정보가 미리 채워져 있어야 합니다. 이렇게 하면 사용자는 필요한 부분만 선택적으로 수정할 수 있습니다.

</aside>

8.1 Service

다음과 같이 BoardService 에 게시글 수정폼 메서드를 구현합니다.

게시글수정 화면은 기존 데이터를 조회해 폼에 채워 넣는 기능이므로, 기본적인 조회 로직은 게시글상세()와 동일합니다.이 경우 별도의 조회 로직을 중복 작성하기보다는 게시글상세()를 재사용하도록 구성할 수 있습니다.

다만, 항상 재사용이 최선의 선택은 아닙니다. 수정 화면 전용 검증이나 권한 체크 등 추가 로직이 필요한 경우에는, 의미와 책임을 명확히 하기 위해 게시글수정폼() 메서드를 독립적으로 유지하는 것이 더 적절할 수 있습니다.

BoardService.java

public Board 게시글수정폼(Integer id) {
    Board board = boardRepository.findById(id);
    return board;
}

8.2 Controller

다음과 같이 BoardController 에 updateForm을 구현합니다.

URL에 게시글 ID를 포함한 뒤, BoardService의 게시글수정폼 메서드를 호출하여 해당 게시글 정보를 조회합니다. 그리고 HttpServletRequest 객체를 사용해 뷰에 응답 데이터를 전달합니다.