본문 바로가기
개인 공부/BackEnd Study

[ Spring Boot ] 맨날 까먹는 나를 위한 복습 - 3 -

by 킴도비 2024. 3. 27.

3.1 폼 데이터란?

  • HTML 요소인 <form> 태그에 실려 전송되는 데이터
  • DTO란? <form> 태그에 실어 보낸 데이터는 서버의 컨트롤러가 객체에 담아 받는 것
  • 최종적으로 DTO로 받은 데이터는 데이터베이스에 저장

 

3.2 폼 데이터를 DTO로 받기

  • 뷰 템플릿 페이지는 templates에 만든다.
  • <form> 태그 안에 어디에 보낼지는 action 속성에 어떻게 보낼지는 method 속성으로 설정해준다.
  • 폼 데이터를 post 방식으로 전송했으므로 컨트롤러에서 받을 때도 @PostMapping()으로 받는다.
  • 생성자 추가하기는 Generate -> Constructor 선택
  • toString() 메서드로 데이터 출력

 

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

  • JPA(Java Persistence API)란?
    • 자바 언어로 DB에 명령을 내리는 도구
    • 데이터를 객체 지향적으로 관리할 수 있게 해준다.
    • JPA의 핵심 도구로는 엔티티와 리파지터리가 있음
      • 엔티티 : 자바 객체를 DB가 이해할 수 있게 만든 것으로, 이를 기반으로 테이블이 만들어짐.
      • 리파지터리 : 엔티티가 DB 속 테이블에 저장 및 관리될 수 있게 하는 인터페이스

 

  • DTO를 엔티티로 변환하기 위해 form 객체의 toEntity()라는 메서드를 호출해서 그 반환값을 클래스 타입의 클래스 엔티티에 저장

 

  • @Entity란?
    • JPA에서 제공하는 어노테이션
    • 이 어노테이션이 붙은 클래스를 기반으로 DB에 테이블이 생성됨
  • @Column이란?
    • 필드가 DB에서 인식할 수 있게 하는 것. DB 테이블의 각 열과 연결 됨.
  • @GeneratedValue란?
    • 대푯값을 자동으로 생성

 

  • CrudRepository<T, ID>란?
    • CrudRepository라는 인터페이스를 상속받는 명령
    • CrudRepository란?
      • JPA에서 제공하는 인터페이스
      • 이를 상속해 엔티티를 관리(생성, 조회, 수정, 삭제)할 수 있음
      • 홑화살괄호(<>)를 붙이고 그 안에 관리 대상 엔티티의 클래스 타입과 관리대상 엔티티의 대표값을 넣어 제네릭 요소를 받음.

 

  • @Autowired 어노테이션이란?
    • 붙이면 스프링 부트가 미리 생성해 놓은 객체를 가져다가 연결해줌.
    • 스프링 부트에서 제공하는 어노테이션
    • 컨트롤러의 필드에 붙이면 스프링 부트가 만들어 놓은 객체를 가져와 주입. 이를 의존성 주입(DI)이라고 함

 

3.4 DB 데이터 조회하기

  • spring.h2.console.enabled=true라고 application.properties에 넣으면 H2 DB에 웹 콘솔로 접근할 수 있도록 허용해줌
  • 레코드란? 데이터는 테이블에 행 단위로 저장되는데 이 행 하나하나를 뜻함