[강의노트] 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발_섹션 1. 프로젝트 환경설정

Woolly·2023년 5월 24일
0

[실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발]

복습 및 기록용 - 강의노트 정리


섹션 1. 프로젝트 환경설정

[#1. 프로젝트 생성]


요즘 JSP 잘 사용하지 않는 추세
  • 성능, 여러 이슈
  • 스프링 부트 내장 톰캣에서도 권장x

Spring Data JPA

  • 스프링, JPA 활용 유틸리티성 라이브러리

H2 Database

  • 간단하게 웹 애플리케이션 실행시 데이터베이스를 메모리에 상태에 내장해서 실행 가능
  • 간단한 교육용 데이터베이스로 주로 사용

스프링부트 플러그인

  • 라이브러리 디펜던시 버전 관리

Gradle

  • 의존 관계 관련한 라이브러리를 모두 다운


[#2. 라이브러리 살펴보기]


HiKariCP : 커넥션 풀
  • 2.X대부터는 기본
  • 운영에서도 많이 사용

slf4j

  • 로거 찍는 인터페이스 모음
  • 구현체 : logback, log4j
    => 라이브러리 설정만 살짝 바꾸면 구현되어 있는 로거 변경 가능
  • slf4j + logback 조합이 대세인 추세

기본적으로 springboot starter 라이브러리는 spring core를 기본적으로 물고 감



[#3. View 환경 설정]


마크업을 깨지 않고 사용 가능한 장점

thymeleaf

-> 웹브라우저에서 열 수 있음 (Natural Template)

thymeleaf 극단적인 단점

  • 문법 맞지 않으면 오류
  • 구현체 : logback, log4j
    => 3.x 버전대로 오면서 많이 극복

뷰 템플릿 엔진 (서버 사이드 렌더링)

  • react, vue.js 많이 사용

Model model

  • 스프링 UI
  • Model에 데이터를 실어서 뷰에 넘길 수 있음 (컨트롤러->뷰)
  • Key-Value
  • return은 화면 이름

return "hello";
-> 자동으로 뒤에 hello.html
.html이 붙음

main > resources > templates
hello.html

  • 정적 컨텐츠 : static
  • 템플릿 엔진, 렌더링 : templates


[#4. JPA와 DB 설정, 동작확인]


- propeties 혹은 yml 사용

설정 많아지고 복잡해지는 경우 -> yml으로

MVCC=TRUE 옵션

  • 여러 개 한번에 접근할 때 처리가 빠르게 됨

  • 옵션 추가 권장

logging:
level:
org.hibernate.SQL: debug

  • hibernate가 생성하는 sql이 보임

show_sql: true

  • system.out 통해 sql 볼 수 있음
  • 운영 환경에서는 사용하지 x

@Id @GeneratedValue

  • GeneratedValue 데이터베이스가 자동 생성

@Repository

  • 엔티티 찾아주는 역할로, DAO와 비슷하다.
  • Spring이 제공하는 기본 타입
  • 기본 컴포넌트 스캔이 되는 어노테이션 중에 하나이다.
  • 자동으로 스프링 빈 등록

@PersistenceContext

  • 스프링 부트
  • 스프링 컨테이너 위에서 모든 것이 동작
  • EntityManager 자동 생성

return member.getId();

  • 커맨드와 쿼리를 분리하라, 원칙에 따라
  • 아이디 정도만 조회하도록 설계함.

@Transactional

  • 테스트에 있으면, 테스트가 끝나면 DB 롤백
  • Rolled back transaction for test

@Rollback(false)

  • value를 false로 하면 롤백x
  • 데이터베이스에 저장

profile
Ad Astra

0개의 댓글