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

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

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



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

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

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

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

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

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

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

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

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

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