[프로젝트/Spring Boot] 간단한 ToDoList 만들기 --- (3) CRUD -> "C"

hoho·2024년 3월 17일

1. 프로젝트 재정의

이제 CRUD를 구현해야 하는데
그 전에 프로젝트를 다시 구체적으로 정의하기로 하였다.

  • Create: 메인 페이지에 표시된 Form을 통해 데이터 저장함.
  • Read: 메인 페이지에 Form과 같이 데이터 목록을 표시하려고 함.
  • Update: Finished 버튼을 누르면 Status를 In progress에서 Completed로 변경함.
  • Delete: Delete 버튼을 누르면 삭제됨.

2. Create 구현

DTO로 Form 데이터 받아오기

우선 컨트롤러를 구현하였다.
각각 메인 페이지를 띄우는 메서드와, Save 버튼을 눌렀을 때 create 요청을 받은 후 최종적으로 / 에 redirect하는 메서드이다.

엔티티, DTO, Repository도 각각 만들었다.

서버 실행 후 아무 거나 입력해보면 DTO 형태로 Form을 받아올 수 있음을 확인할 수 있다.

DTO를 엔티티로 변환

다음으로, 받아온 DTO를 엔티티로 변환한다.

toEntity() 메서드는 TodoForm에 선언한다.

리파지터리로 엔티티를 DB에 저장

리파지터리를 클래스 내에 불러온 후 saved 인스턴스를 만든다. 리파지터리가 엔티티를 DB에 저장한 후 saved에 그 저장된 엔티티를 반환해주는 형식이다.

로그를 찍어보니 DB에 잘 저장됐음을 확인할 수 있다!

그런데 여기서, status는 서버에서 일괄적으로 "In progress"라고 지정해주어야 한다.
이 점을 해결하기 위해 toEntity() 메서드를 수정해야 한다.
기존에는 그냥 new TodoEntity를 반환하는 식으로 했지만, 이번에는 status에 In progress를 저장해준 후에 객체를 반환하도록 작성하였다.

그리고 setter를 사용하였으므로 TodoEntity 클래스로 가서 @Setter 어노테이션을 붙인다. (롬복 기능)

로그를 찍어보면 이제 status까지 잘 저장되었다.

데이터 확인

데이터를 확인하려면 MySQL WorkBench를 열거나 CMD 상에서 하면 된다. 나는 CMD를 통해 확인하였다.

잘 저장되었음을 다시 확인할 수 있다.

0개의 댓글