[Spring 입문] 8. DB 접근

heyhey·2023년 1월 25일
0

Spring

목록 보기
8/23

지금까지의 데이터는 spring 내에서 사용했었다.
즉 서버를 끄게 되면 사라지는 데이터이기 때문에 db를 생성해보자

DB 설치

DB는 사용성이 편리한 h2 를 사용할 것이다.

https://www.h2database.com/html/main.html 에서 다운로드

❯ cd bin
❯ ./h2.sh
zsh: permission denied: ./h2.sh
❯ chmod 755 h2.sh
❯ ./h2.sh

bin 폴더로 가서 h2.sh를 실행시킨다.
맥은 권한을 줘야 실행이 가능하다 => chmod 755 h2.sh

실행을 하게 되면 아래와 같은 화면이 나온다.

JDBC URL의 주소를 jdbc:h2:tcp://localhost/~/test로 바쭤준다.

테이블 생성하기

drop table if exists member CASCADE;
create table member
(
 id bigint generated by default as identity,
 name varchar(255),
 primary key (id)
);

id는 자동으로 생성되고, name이 존재하는 member 테이블을 생성한다.

프로젝트 관리를 위해 프로젝트 루트에서 sql/ddl.sql 파일을 생성해 관리해준다.

DB를 생성했으니 이제 프로젝트에서 db 조작을 해보자
JPA가 없을 시절, 직접 sql 코드를 작성하는 방법부터 알아보자

순수 JDBC

실제 쿼리문을 사용해 db에 접근이 가능한 방식이다. 과거의 개발에는 이 방식을 이용했어야 하지만 JPA의 발전으로 인해 더이상 힘들게 코드를 작성하지 않아도 된다.

JPA

  • 기존의 반복 코드를 줄여주고, 기본적인 SQL도 JPA가 직접 생성하고 실행한다.
  • SQL응 작성안해도 되기 때문에 객체 중심의 설계가 가능해진다.
    => 개발 생산성 향상

스프링 데이터 JPA

CRUD 기능을 제공
관계형 데이터베이스를 사용한다면 JPA가 거의 필수

AOP

Aspect Oriented Programming

  • 회원가입, 회원 조회등 핵심 관심사항과 시간을 측정하는 공통 관심 사항을 분리
  • 시간을 측정하는 로직을 별도의 공통 로직으로 만든다
  • 변경이 필요하면 이 로직만 변경하면 된다.
  • 원하는 적용 대상을 선택할 수 있다.
profile
주경야독

0개의 댓글