IT 에서 Persistent 데이터에 대한 이해

Bryant Jimin Son
9 min readJun 19, 2020

대학교를 졸업하고 제일 처음 직장에 입사한후 한 일은 미국 항공사에서 Java 와 그 외 관련된 기술을 사용해서 만들어진 웹사이트에 관한 기능을 업데이트 하고 배포하는 것 이였다. 그때 Agile 이란것도 알게 되었고 Spring Framework Test Driven Development (TDD) 니 대학교에서 접하지 못한 많은걸 배울수 있는 기회가 많았다. 어느정도 직장생활 하다 보니 이런 느낌이 문득 들었다. ‘아… 대학교에선 배우기 위해 내가 돈을 지불해야 하는데 직장에선 배우는데 돈을 받는구나'

어쨌든… 이번 글은 그런 내용은 아니고 Persistence 이란 개념에 대해서 적어볼려고 한다. 이 단어를 처음 접했을때가 그 항공사에서 일할때 였고 생각보다 그 단어가 다른 형태로 자주 나온다. 명사 (Noun) 으론 Persistence 이지만 동사로 … Persist 그리고 형용사로 Persistent… 같은 단어인데 여러가지 형태로 소프트웨어 개발자들 사이에서 심지어 메니져 나 그위인 관리직 사람들의 입에서도 종종 나왔었다. 그때 당시 데이터베이스 (Database) 는 알고 있었지만 Persistence 가 어떻게 다른지 대충 어림 풋 짐작만 하고 있었지 크게 관심이 없어서 거기에 대해서 깊게 파고들 생각은 별로 없었던것 같다. 그러다가 클라우드 (Cloud) 에 접하게 되고 그 분야에 크게 관심이 생겨서 자체 클라우드를 만든 금융 회사로 옮기고 지금도 클라우드 분야에서 컨설팅을 하게 되었는데 Kubernetes 를 기반으로 한 Red Hat Openshift 를 쓰다보니 Persistent Volume (PV) 이란것도 있고 Persistent 에 대한 개념을 잘 아는게 중요한 편이다. 깊게 자세하게 설명할수도 있지만 누가 최대한 쉽게 이해할수 있도록 이 개념을 여기서 정리해 볼려고 한다.

일반적으로 Persistence 라고 하면 사람들은 데이터베이스를 떠올린다. 틀린 말은 아니다. 데이터베이스가 Persistence 메모리의 한 종류라고 정의할수도 있다. 그렇지만 왜 데이터베이스가 Persistent storage 인가? Persistence 는 어떻게 정의되는가? Persistent 의 반대말은 무엇인가? 이 질문들을 통해서 Persistence 에 대해서 이해해 보자.

Q1: Persistence 는 어떻게 정의되는가?

Persistence 에서 “persist” 는 “지속되다" 라는 뜻을 가지고 있다. 이쯤되면 물어볼수 있다. “아니, 저장하라고 쓰는게 메모리 아닌가? 그러면 그냥 Memory 나 Storage 라고 쓰면 되지?” 하지만 지속된다는 그 특징에 초첨을 맞쳐보자. 만약 여러분이 어떤…

--

--

Bryant Jimin Son

A cloud practitioner talking about technology, travels & career tips. But I will sometimes cover financial advises and some random stuffs.