프로젝트- 책방

프로젝트 책방 - chap01

스파이더웹 2022. 9. 14. 15:46
728x90
반응형

JPA 

JPA는 자바 ORM 기술에 대한 API 표준이다. ORM이란 Object Relational Mapping의 약자로 객체와 관계형 데이터베이스를 매핑해주는 것을 말한다

객체와 관계형데이터베이스는 패러다임의 불일치가 가장 큰 문제인데, 자바는 객체 지향패러다임으로 만들어 졌고, 관계형 DB는 데이터를 정규화해서 잘 보관하는 것을 목표로 한다. 이러할 경우 결국 객체를 단순히 데이터 전달 목적으로 사용할 뿐 객체 지향 프로그래밍을 할 수 없게된다. 이를 해결하기 위해서 나온 기술이 ORM입니다.

 

JPA 사용시 장점

1. 특정 데이터베이스의 종속되지 않음

  • JPA는 추상화한 데이터 접근 계층을 제공한다. 그러므로 설정 파일에 어떤 데이터베이스를 사용하는지 알려주면 얼마든지 데이터베이스를 변경할 수 있다

2. 객체지향적 프로그래밍 

  • JPA를 사용함으로써 객체지향적 설계가 가능하고, 이를 통해 비즈니스 로직에 집중할 수 있다.

3. 생산성 향상

  • JPA는 테이블과 매핑된 클래스에 필드만 추가한다면 쉽게 관리가 가능하다. 또한 SQL문을 직접 작성하지 않고 객체를 사용하여 동작하기 때문에 유지보수 측면에서 좋고 재사용성이 가능하다

 

JPA사용시 단점

1. 복잡한 쿼리 처리

  • 복잡한 쿼리를 사용할 경우는 SQL문을 사용하는게 나을 수도 있다. 그래서 이를 보완하기위해 SQL과 유사한 JPQL을 지원한다

2. 성능 저하 위험

  • 객체 간의 매핑 설계를 잘못했을 때 성능 저하가 발생할 수 있으며, 자동으로 생성되는 쿼리가 많기 때문에 개발자가 의도하지 않는 쿼리로 인해 성능이 저하될 수 있다

 

Spring Boot Devtools

Spirng Boot Devtools는 애플리케이션 개발 시 유용한 기능들을 제공하는 모듈이다.

대표적인 기능

- Automatic Restart : classpath에 있는 파일이 변경 될때마다 애플리케이션을 자동으로 재시작해준다

- Live Reload : 정적자원 수정 시 새로 고침 없이 바로 적용할 수 있다

- Property Defaults : 타임리프는 기본적으로 성능을 향상시키기 위해 캐싱 기능을 사용한데, 개발과정에서 캐싱 기능을 사용하면 수정한 소스가 제대로 반용되지 않기에 기본 값을 false로 설정할 수 있다.

 

IntelliJ 자동화 빌드 Auto Compile 활성화 방법

  1. Setting > Build, Execution, Deployment > Compiler
    Build Project Automatically 체크

 

Live Reload 적용하기

properteies 파일 설정 후 구글 웹스토어에서 LiveReload 프로그램을 설치한다

 

Property Defaults 설정하기

동일하게 프로퍼티 파일 설정해주면 된다

 

타임리프 페이지 레이아웃

header,footer 공통적인 페이지 구성요소의 경우 타임리프의 페이지 레이아웃 기능을 사용하여 공통관리를 한다

 

<dependency>
<groupId>nz.net.ultraq.thymeleaf</groupId>
<artifactId>thymeleaf-layout-dialect</artifactId>
<version>2.5.1</version>
</dependency>

 

의존성 추가를 해준다

 

 

728x90
반응형