본문 바로가기

study/Spring boot

4. Spring boot 입문 - 폼데이터 DB에 저장, 롬복과 로깅

폼 데이터를 db에 저장하기(H2 Database)

 

  • 자바에서 DB를 사용하기 위해서 JPA를 사용한다. JPA는 DB를 조작할 수 있고, 편리한 기능을 제공한다
  • 컨트롤러는 DTO로 폼 데이터를 받는데, 그것을 Entity라는 객체에 전달한다. Entity는 DB에 규격화된 데이터다.
  • Entity는 Repository를 통해 DB에 전달되고 처리된다.
  1. 폼데이터를 갖는 DTO를 Entity로 바꾼다.
    1. Entity 클래스를 만든다. (@Entity)
    2. 필드에는 DTO가 갖고 있는 데이터를 받을 변수를 선언한다.(@Column)
    3. 그리고 대표값을 만든다.(id, @ID)
    4. DTO 클래스에서 toEntity메소드를 만들어 컨트롤러에서 메소드를 이용해 DTO의 데이터를 Entity로 만든다.
  2. Repository에게 Entity를 DB 안에 저장하게 한다.
    1. 컨트롤러에서 Entity를 Repository에게 전달한다.
    2. Repository  인터페이스를 만든다. JPA가 제공하는 클래스를 상속 받아 CrudRepository 메소드를 사용할 수 있다.  상속 받을 땐, Entity객체와, 그 Entity의 대표값의 타입을 파라미터로 전달한다.
  3. DB에서 직접 확인.
    1. application.properties 파일에서 H2 데이터베이스가 웹 콘솔로 접근할 수 있도록 허용해준다.
    2. 직접 조회해서 확인한다.

 

 

 

Lombok을 통해 코드를 줄일 수 있다.

 

  • Lombok은 코드를 간소화시키는 라이브러리이다. 필수 코드의 반복을 줄여주고 로깅(Logging) 기능을 제공한다.
  1. build.gradle 파일에 dependencies안에 롬복 라이브러리를 추가한다. 그리고 새로고침해서 라이브러리들을 다운 받는다. 
  2. 롬복 플러그인을 추가한다.
  3. 클래스를 작성할 때, 생성자, toString() 같은 기본 코드들을 클래스 위에 어노테이션을 붙여 직접 작성하지 않아도 되게 해준다.
    1. @AllArgsConstructor - 모든 필드를 매개값으로 받는 생성자.
    2. @ToString - toString() 메소드

 

  • 롬복은 로깅 기능을 제공한다.
  • 로그가 아니라 print 함수를 사용한다면, 기록이 남지도 않고 서버의 성능에도 좋지 않다.
  1. 컨트롤러 위에 @Slf4j 어노테이션을 붙인다.
  2. log.into(인자) 메소드로 로깅 기능을 사용한다.

 

 

홍팍님의 강의를 보고 적은 글입니다.

 

클라우드스터딩 | CloudStudying

 

cloudstudying.kr