본문 바로가기
Java Spring

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

by Bill Lab 2024. 9. 16.
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

'Java Spring' 카테고리의 다른 글

@Builder 빌더패턴  (2) 2024.09.17
단위테스트 (unit test) - Spring Boot Test !!  (0) 2024.09.17
Spring Boot 완전 기초  (2) 2024.09.15
Spring Boot 기본  (1) 2024.09.15
Java 완전 기초  (1) 2024.09.13