[CODE]/Spring Boot

[Spring Boot] 2. 게시판 CRUD 만들기 - form, DTO, repository

원°C 2026. 5. 7. 18:20

1) 폼 데이터를 DTO로 받기

폼 데이터(form data)

: HTML 요소인 <form> 태그에 실려 전송되는 데이터

 

➔ 데이터를 전송할 때 어디로, 어떻게 보낼지 등을 적어야 한다.

 

<form> 태그에 실어 보낸 데이터 - 서버의 컨트롤러 ➔ 객체에 담는다.

이 때의 객체 = DTO(Data Transfer Object) ➔ 최종적으로 DB에 저장된다.

 

(1) 입력 폼 만들기

 

1. 파일 생성

 

2. 코드 작성

 

3. 컨트롤러 생성

 

(2) 폼 데이터 전송하기
폼 속성

- action: URL 연결 주소 적어 해당 페이지로 데이터를 보낸다.
- method: get/post

 

(3) 폼 데이터 받기

- 기존 controller에 @PostMapping 추가(post 방식으로 받는 경우)

 

(4) DTO 만들기

 

1. 파일 생성 위치

 

2. 코드 작성

- 제목, 내용 2개의 값을 받아올 거라 필드도 2개

- 생성자 및 메서드 추가

생성자/메서드 추가하기

: 코드 내 행 우클릭 - [Generate] - Constructor / 메서드 선택

 

(5) 폼 데이터를 DTO에 담기

- 컨트롤러 안 createArticle() 메서드의 매개변수 선언

- 메서드 호출

 

(6) 입력 폼과 DTO 필드 연결하기

 

- 입력 폼의 <input>에 name속성값 추가하기

<input ~ name="title>

<textarea~ name="content"></textarea>

 

(7) 출력 확인

웹 화면
run 출력

 


2) DTO를 데이터베이스에 저장하기

JPA(Java Persistence API)

: 자바 언어로 DB에 명령을 내리는 도구

- 엔티티: 자바 객체를 DB가 이해할 수 있게 만든 것

- 리파지터리: 엔티티가 DB 속 테이블에 저장 및 관리될 수 있게 하는 인터페이스

 

(1) DTO를 엔티티로 변환하기

 

1. 엔티티 클래스 선언

컨트롤러에서 언급

2. Article 객체의 생성 및 초기화

- 생성 위치 및 코드

 

3. toEntity() 메서드 추가하기

dto>articleform

 

(2) 리파지터리로 엔티티를 DB에 저장하기

 

1. 컨트롤러에 선언

 

2. 인터페이스 생성

 

- 파일 생성 위치

- 코드 작성

CrudRepository 인터페이스 상속
- CrudRepository가 제공하는 기능을 별도 정의 없이 그대로 사용할 수 있다.

 

+ 객체 주입하기

의존성 주입(DI, Dependency Injection)

: 스프링 부트가 미리 생성해 놓은 라파지터리 객체 주입
➔ @Autowired 

 

(3) 데이터 저장 확인하기

 

1. 출력을 위한 코드 수정

- 데이터 저장 확인을 위해 toString() 메서드를 print 한다.

 

2. 출력 테스트

 


3) DB 데이터 조회하기

H2 DB 접속하기

 

1. application.properties 수정

위치: src > main > resources > application.properties

'spring.h2.console.enabled=true' 작성

 

2. 아래 웹브라우저 접속

URL: localhost:8080/h2-console
(8080 = port #)

- JDBC URL 값을 다시 넣어줘야 한다.

인텔리제이의 [RUN] 탭 - jdbc 검색- 검색 결과의 주소 복사 - 붙여넣기

주소 예시) jdbc: h2 ~

 

- [connect] 클릭

 

3. 입력 후 select문으로 확인