본문 바로가기
  • AI (Artificial Intelligence)
Fundamental/Technical

영속성(Persistence)이란?

by 로샤스 2019. 8. 23.

업무를 하다보면 동료가 영속성이란 말을 하는걸 들을 수 있습니다.
혹은 IT서적을 보다보면 영속성(Persistence)라는 단어가 종종 나오는것을 볼 수 있는데요.

과연 영속성(Persistence)이라는 것이 무엇인지 알아보겠습니다.
알고보면 별거 아닙니다. 아주 쉽습니다.

일단 아래 사전적 의미부터 보겠습니다.

영속
persistence
: 고집
: (없어지지 않고 오랜동안) 지속됨

음… 뭔가 감이 오는것도 같은데 말이죠.
그럼 위키피디아에서는 뭐라고 하는지도 살펴 보겠습니다.

영속성(persistence)은 데이터를 생성한 프로그램의 실행이 종료되더라도 사라지지 않는 데이터의 특성을 의미한다. 영속성은 파일 시스템, 관계형 테이터베이스 혹은 객체 데이터베이스 등을 활용하여 구현한다. 영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하기 때문에 프로그램을 종료하면 모두 잃어버리게 된다. 결국 영속성은 특정 데이터 구조를 이전 상태로 복원할 수 있게 해주어 프로그램의 종료와 재개를 자유롭게 해준다.the characteristic of data that outlives the execution of the program that created it: which is achieved in practice by storing the data in non-volatile storage such as a file system or a relational database or an object database영속성이 필요한 객체를 'persistent object'라고 하는데, 필요없는 객체는 어떻게 표기할까? 먼저 위키피디아에서는 반대 표현을 ephemeral이라 한다. 처음보는 형용사인데, 영속성이 불필요한 데이터 구조를 수식할 때 사용하는 것이다.

뭐 그렇다는 군요
결국 어떠한 상태가 계속 유지되는 것을 말한다고 합니다.

위와 같이 데이터베이스의 서버가 없어지지 않는 이상 한번 저장된 데이터의 경우 영구히 저장되겠죠 (물론 Delete나 테이블 혹은 디비를 Truncate, Remove를 하지 않는다는 가정하에서…)

Spring JPA Persistence Context concept

위의 그림은 요즘 많이 쓰이고 있는 Java진영의 Spring Framework에서 제공하는 JPA중 Persistence Context에 대한 도식인데요

여기서 응용을 해보자면 자바의 JPA에서 영속성은 무언가를 Entity 속성에 영구히 저장해준다라는 뜻으로 해석이 가능할 것 같습니다.

이 정도면 이해가 가시려나요?

한 줄로 결론 내리자면 “영구히 저장되는 그 어떤 것" 이라고 개념을 잡으시면 되겠습니다.

 

 

너무 고마운 글을 공유해주신 분이라.. 감사의 말씀을 먼저 전하며..
개념을 잡는 데는 아래 그림이 더 도움이 되지 않을까 하여 추가합니다.
오해하지는 말아 주셨으면 좋겠습니다.

Database에 접근하는 객체? 라 표현해도 될런지..
요즘은 Object-Relational Mapping (ORM)을 많이 사용해서 ORM이나 SQL Mapping을 사용하여 
가져온 데이터의 중간지점 뭐 이렇게 표현하면 어떨지 모르겠네요.

감히 제가..

 

 

 

Reference: https://medium.com/zaneiru-tech-life-blog/%EC%98%81%EC%86%8D%EC%84%B1-persistence-%EC%9D%B4%EB%9E%80-eef745da8e16

 

 

 

 

댓글