공부/BackEnd - Spring Boot

코딩 자율학습단 5기 - 4일차 Entity 및 DB 저장하기

pekokane 2023. 11. 26. 23:44

저번 시간에 사용한 DTO 를 활용하여 이번에는 실제 DB 에 저장하는 부분을 실습해보았다.

책에 나온 Article 이 아닌 과제로 있던 Members 부분으로 진행하였다.

 

  1. view template 제작 (기존 Article template 참고하여 생성)
    Member View Template
  2. 데이터를 입력받고 저장할 MemberController 만들기
    입력받을 form 을 연결해주는 members 와 저장하는 post mapping 을 생성. form 의 action과 postmapping 은 일치해야한다는 점 주의!!
    Member Controller code
  3. Data 를 전달 받을 DTO 생성
    이 때 변수 명은 반드시 view form 에서 지정한 name 과 일치하도록 주의!! 해당 form 을 생성할 때 호출 되는 생성자와, entity 로 전달해주기 위한 toEntity 함수 또한 같이 선언해 주었다.
    MemberForm code
  4. 그리고 DTO 로부터 데이터를 전달 받아 DB 에 전달해 줄 Entity 생성
    @Entity 선언은 필수!! 
    Member Entity code
  5. 그 후 실제 db 에 전달해주는 역할을 하는 repository 를 생성한다.
    다른 것 없이 그냥 Repository 생성 후, CrudRepository 를 상속받아 주면 된다. 내부에는 save, find 등과 같이 db 를
    조회하기 위한 함수들을 지원해주는 것 같다. 책에서도 우선 이 정도까지만 알면 된다고 하여서, 나중에 더 자세하게 알 기회가 있지 않을까 싶다.
  6. 그 후 저장하고 다시 서버 재실행하여 view template 확인
    Members view
  7. 이번에 메인으로 사용하는 H2 database 확인(localhost:8080/h2-console 로 접속)
    여기서는 생략하였지만, application-properties 에서 spring.h2.console.enabled 옵션을 반드시 true 로 해줘야 사용 가능한 점 주의!! 그리고 하기 url 은 책에서 나온 대로 터미널에서 ctrl + f 로 jdbc:h2 로 찾아보면 jdbc:h2:~~~ 하는 url
    주소가 있다. 여기가 내가 서버를 켤 때 사용하는 주소이고, 이는 메모리에 얹어서 사용하기 때문에 휘발성인 점 주의!
    H2 database
  8. 이제 members 를 추가!
  9. 그 후 서버 log 및 db 를 확인해보면 정상적으로 생긴 부분을 확인할 수 있었다!!!
    서버 terminal log
    H2 Database select 결과
  10. 이렇게 실제 DTO, Entitiy, CrudRepository 를 이용해서 실제 DB 에 저장까지 해보았다. 뭔가 진짜 backend 를 하는 것 같은 기분이 든다. 실제 진도는 더 나갔는데, 필자의 현생으로 인해 나눠서 적으려고 한다... 마스터까지 화이팅!!