Java Spring

영속성 이란? (Java Spring Boot 완전기초)

Bill Lab 2024. 9. 16. 23:04
728x90

흔히 백엔드 개발을 처음 접하다 보면, 

영속성이란 말을 듣게된다.

 

영속성? 

영속성 컨텍스트?

JPA?

JDBC (interface, Driver)?

 

영속성을 사전적 정의부터 말하고 들어가는게 이해하기가 쉬울꺼같아,

사전적의미는

: 영원히 계속되는 성질이나 능력(네이버 국어사전 참조)

영속성 네이버 사전 결과

 

자 그럼 영원히 계속 되게 하는 성질이 Java spring 에는 어떤게 있을까?

바로 Data 처리가 그 중 하나이다!

 

간단한 온라인 쇼핑몰을 개발하면,

고객정보, 상품정보, 결제정보, 주문정보는 필수적이다.

이러한 Data 가 시스템 개발 초기때와 운영중일때가 같을까?

당연히 아니다!

(아무도 사용안하고 아무도 관리 안 한다면 모를까?)

 

한명이라도 회원가입해서 사용하면 그정보는 어딘가 저장되어야한다

그럼 그 정보는 어디에 저장을 할까?

Data 를 저장할 수 있는 공간으로는 (CS 지식을 살려서)

메모리?

하드디스크?

 

하지만 이 둘다 큰 단점들이 존재한다.

메모리에 영속성 정보를 저장하게 되면, 서버가 불안해서 종료 후 다시 뛰우게 되면 정보가 사라진다

즉, 영속성이 보장되지 않는다는 것이다.

반대로 하드디스크는 영속성을 보장할 수는 있지만,

Data 를 저장, 수정, 삭제, 읽기에서 상당히 느린 성능을 보여준다.

 

자 그럼?

 

우리에겐 DB 가있다!

(물론 메모리기반 DB 도 있지만, 메모리특성 중 휘발성을 보완하기 위한 장치를 해당 DB에서 보장한다.)

고객정보, 상품정보, 결제정보, 주문정보 등과 같이 영속성이 보장되어야 할 정보들을

DB에다가 저장을 하는 것이다!

 

자바 스프링에서는 이를 지원하기 위해 JDBC 라는 interface를 사용하고

간단한 property 세팅으로만으로 DB 에 연결해서 data 를 처리할 수 있게 해준다.

(얼마나 편한것인가?)

 

그럼 DB 를 사용하려면 쿼리문도 배워야한는가? 라는 질문을 흔하게 듣는다(완전 초보자 들로부터)

물론 배우면 좋다(아니 언젠가는 배워야한다!)

 

하지만 처음부터 배울 필요는 없다!

왜? JPA 와 같은 ORM 부터 사용한 뒤 배워도 늦지 않다!

(배우면서 배워도 된다.)

 

 

 

 

728x90