inblog logo
|
Gyeongwon's blog
    Springboot

    [스프링부트 #4] Spring 게시판 CRUD 연습 (Controller 중심)

    Service, Repository 없이 Mock 데이터로 Controller 동작 흐름을 익히는 실전 연습을 하였습니다.
    도경원's avatar
    도경원
    Aug 05, 2025
    [스프링부트 #4] Spring 게시판 CRUD 연습 (Controller 중심)
    Contents
    1. 프로젝트 구성 개요2. 기능 흐름3. DTO란?4. Lombok의 @Data 어노테이션5. 주요 개념 정리
    Service, Repository 없이 Mock 데이터로 Controller 동작 흐름을 익히는 실전 연습

    1. 프로젝트 구성 개요

    • Backend: Spring MVC (@Controller 중심)
    • Frontend: Mustache 템플릿
    • DB 미사용: Service, Repository 생략, 대신 Mock 데이터 사용
    • 목표: 요청과 응답 흐름을 익히고, URL-View 연결을 자연스럽게 다루기

    2. 기능 흐름

    1. 게시글 목록 페이지 조회 (GET)

    notion image
    • 게시글 리스트를 생성하여 setAttribute("models", list)로 View에 전달
    • 반환 View: board/list.mustache

    2. 게시글 상세 페이지 조회 (GET)

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

    3. 게시글 작성 (POST)

    notion image
    • DTO로 폼 데이터를 자동 바인딩 받음
    • DB 저장 없이 redirect:/board 처리

    4. 게시글 삭제 (POST로 진행하기로 사전에 약속)

    notion image
    • @PathVariable을 통해 id 추출
    • 실제 삭제 로직 없이 리다이렉트 처리

    5. 게시글 수정 (POST로 진행하기로 사전에 약속)

    notion image
    • DTO와 PathVariable을 함께 받아서 처리
    • 수정 후 상세페이지로 리다이렉트

    3. DTO란?

    • DTO (Data Transfer Object)는 컨트롤러와 뷰, 또는 클라이언트와 서버 간에 데이터를 전달하기 위한 객체
    • 주로 요청 바디나 폼 데이터, 또는 응답할 데이터를 담는 데 사용한다
    • 엔티티(Entity)와는 달리 비즈니스 로직이 없고, 순수한 데이터 보관용

    4. Lombok의 @Data 어노테이션

    notion image
    @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
    Contents
    1. 프로젝트 구성 개요2. 기능 흐름3. DTO란?4. Lombok의 @Data 어노테이션5. 주요 개념 정리

    Gyeongwon's blog

    RSS·Powered by Inblog