[스프링부트 #4] Spring 게시판 CRUD 연습 (Controller 중심)
Service, Repository 없이 Mock 데이터로 Controller 동작 흐름을 익히는 실전 연습을 하였습니다.
Aug 05, 2025
![[스프링부트 #4] Spring 게시판 CRUD 연습 (Controller 중심)](https://image.inblog.dev?url=https%3A%2F%2Finblog.ai%2Fapi%2Fog-custom%3Ftitle%3D%255B%25EC%258A%25A4%25ED%2594%2584%25EB%25A7%2581%25EB%25B6%2580%25ED%258A%25B8%2B%25234%255D%2BSpring%2B%25EA%25B2%258C%25EC%258B%259C%25ED%258C%2590%2BCRUD%2B%25EC%2597%25B0%25EC%258A%25B5%2B%2528Controller%2B%25EC%25A4%2591%25EC%258B%25AC%2529%26tag%3DTemplate%2B1%26description%3D%26template%3D3%26backgroundImage%3Dhttps%253A%252F%252Fsource.inblog.dev%252Fog_image%252Fdefault.png%26bgStartColor%3D%252323ec86%26bgEndColor%3D%252323ec86%26textColor%3D%2523000000%26tagColor%3D%2523000000%26descriptionColor%3D%2523000000%26logoUrl%3D%26blogTitle%3DGyeongwon%2527s%2Bblog&w=2048&q=75)
Service, Repository 없이 Mock 데이터로 Controller 동작 흐름을 익히는 실전 연습
1. 프로젝트 구성 개요
- Backend: Spring MVC (
@Controller
중심)
- Frontend: Mustache 템플릿
- DB 미사용:
Service
,Repository
생략, 대신 Mock 데이터 사용
- 목표: 요청과 응답 흐름을 익히고, URL-View 연결을 자연스럽게 다루기
2. 기능 흐름
1. 게시글 목록 페이지 조회 (GET)

- 게시글 리스트를 생성하여
setAttribute("models", list)
로 View에 전달
- 반환 View:
board/list.mustache
2. 게시글 상세 페이지 조회 (GET)

@PathVariable("id")
를 통해 URL에서 id 추출
- 해당 게시글 DTO를 Mock으로 만들어 View에 전달
- 반환 View:
board/detail.mustache
3. 게시글 작성 (POST)

- DTO로 폼 데이터를 자동 바인딩 받음
- DB 저장 없이
redirect:/board
처리
4. 게시글 삭제 (POST로 진행하기로 사전에 약속)

@PathVariable
을 통해 id 추출
- 실제 삭제 로직 없이 리다이렉트 처리
5. 게시글 수정 (POST로 진행하기로 사전에 약속)

- DTO와 PathVariable을 함께 받아서 처리
- 수정 후 상세페이지로 리다이렉트
3. DTO란?
- DTO (Data Transfer Object)는 컨트롤러와 뷰, 또는 클라이언트와 서버 간에 데이터를 전달하기 위한 객체
- 주로 요청 바디나 폼 데이터, 또는 응답할 데이터를 담는 데 사용한다
- 엔티티(Entity)와는 달리 비즈니스 로직이 없고, 순수한 데이터 보관용
4. Lombok의 @Data
어노테이션

@Data
는 Lombok에서 제공하는 어노테이션으로 다음 기능을 한 번에 만들어준다.@Getter
,@Setter
@ToString
@EqualsAndHashCode
@RequiredArgsConstructor
(기본 생성자 포함)
즉, DTO에 필요한 모든 코드를 자동으로 생성해주는 아주 강력한 도구
5. 주요 개념 정리
개념 | 설명 |
@Controller | Spring MVC 진입지점 |
@GetMapping , @PostMapping | HTTP 메서드별 매핑 |
@PathVariable | URL 경로 값 추출 |
DTO | 요청/응답 데이터 캡슐화 객체 |
@Data | Lombok의 코드 자동 생성 도구 |
HttpServletRequest.setAttribute() | View로 데이터 전달 |
redirect:/path | 클라이언트에 리다이렉트 요청 |
이 코드를 직접 작성해보면서 URL, 컨트롤러, View 흐름의 구조를 익힐 수 있었고, DTO 설계와 데이터 전달 방식, Mock 데이터 기반으로 화면 렌더링 하는 법을 배웠다.
Share article