게시판 만들기 -4 / JPA, 데이터베이스 연결

패스트 캠퍼스 강의 게시판 만들기를 따라하며 백엔드 스킬을 늘려보자.

  1. 프로젝트 관리
  2. Spring Boot Properites
  3. 공부할거
    1. DB
    2. JPA, JPA Test
      1. JPA
        1. Spring JPA Annotation
        2. Spring Boot Dependencies
      2. JPA Test
        1. MockMvc
    3. Java Test
      1. @DataJpaTest
      2. @Import(JpaConfig.class)
      3. Slice Test
    4. Java
  4. 디비 동향 파악

프로젝트 관리

프로젝트 관리 문서

Spring Boot Properites

프로젝트 설정

debug: false
# 디버그 로그 활성화.
# 로그백을 통해서 로그를 찍을 수 있게 세팅 되어있는데 이 옵션을 통해 로그 메시지 출력을 컨트롤할 수 있음
management.endpoints.web.exposure.include: "*"
# actuactor에 감싸여진 보고 싶은 모든 기능을 보기 위해

logging:
  level: # 구체적으로 명시하고 싶은 로그를 설정
    com.fastcampus.projectboard: debug
    org.springframework.web.servlet: debug
     # 스프링 웹을 사용할때 엔드포인트 호출시 request,response 로그를 어떤 패키지로부터 오는지 조사할 수 있음.
    org.hibernate.type.descriptor.sql.BasicBinder: trace
    # 쿼리로그를 디버그로 관찰 가능 jpa를 이용할때 쿼리로그에서 ?로 나오는 부분을 나오게 해주는 부분

spring:
  datasource:
    url: jdbc:mysql:3306/board
    username: miewone
    password: park8225
    driver-class-name: com.mysql.cj.jdbc.Driver
  jpa:
#    open-in-view: false
    defer-datasource-initialization: true
#    테스트용 데이터베이스 만들 수 있게 함.
    hibernate.ddl-auto: create
    show-sql: true
    properties: # 하이버네이트 공부하면서 추가 작성 예정 / Hibernate ORM, Properties
      # Spring boot가 제공하지 않는  하이버네이트만에서 제공하는 옵션
      hibernate.format_sql: true
      # 한줄로 나와야하는 로그를 예쁘게 포매팅해서 출력 해줌
      hibernate.default_batch_fetch_size: 100
      #
  sql.init.mode: always # 프로젝트에서 초기 실행시 리소스에 있는 sql 구문을 실행 시키는 옵션
#  data.rest:
#    base-path: /api
#    detection-strategy: annotated
#  thymeleaf3.decoupled-logic: true
  h2:
    console:
      enabled: false

---

spring:
  config.activate.on-profile: testdb
#  datasource:
#    url: ${JAWSDB_URL}
#    driver-class-name: com.mysql.cj.jdbc.Driver
#  jpa.hibernate.ddl-auto: create
#  sql.init.mode: always

공부할거

  • AJO

    DB

    DB Index

    JPA, JPA Test

    JPA

  • 하이버네이트
    • 동일성 동등성 검사를 비교할 해쉬코드,이퀄즈 구현 Lombok에서 기본적으로 제공하는 EqualsHashcodes를 사용하지 않는다. 모든 필드를 비교하기 때문에
  • Jpa auditing DB에 연결된 로우 데이터 값을 id 값만 검사하게 만드면 좋다.

    Spring JPA Annotation

    Spring Boot Dependencies

    JPA Test

    SpringBoot Test

    MockMvc

    위 링크 참조.

  • JPA Buddy

    Java Test

    @DataJpaTest

@Import(JpaConfig.class)

Slice Test

Slice Test 레이어별로 잘라서, 레이어를 하나의 단위로 보는 테스트.

Java

npe

디비 동향 파악

db engines.com