brunch

You can make anything
by writing

C.S.Lewis

by Younggi Seo Jun 08. 2022

60세 어머니가 이해한 Docker란?

가상화 컨테이너 도커(Docker)의 생성 연유




출퇴근 길의 어머니를 태우면서, 한 번씩 엄마에게 스토리 텔링을 하곤 했다. 원서로 본 '게임의 여왕'의 줄거리를 읽은 만큼 퇴근길에 얘기하곤 하면 엄마는 듣는 둥 마는 둥 했다. 하지만, 소설의 주인공 Kate의 아들이 총을 그의 어머니에게 겨눴다는 말을 하고 잠깐 뜸을 들이자, '쐈나?'라는 외마디의 물음에 궁금해하기 시작했다.


어제는 저녁 식사를 준비하고 막간에 곧 이직하는 업체에서 가상화 서비스로 사용할 수 있는 도커(Docker)에 대해서 얘기했다.



클라우드 서비스도 뭔지 잘 모르는 세대에게 과연 이 도커를 어떻게 설명했을까?



 

사실 나도 잘 모른다. 그럼에도 불구하고 엄마에게 설명하려고 했던 까닭은, 입사하는 회사의 면접에서 내가 이 도커를 설치한 경험을 이야기하자 면접관이 나를 뚜렷이 보기 시작했었기에 이 가상화 서비스에 대해서는 확실히 알고 출근하는 게 여러모로 도움이 될 것 같았기 때문이다. 그래서 정말 나보다 더 모르는 엄마에게 도커가 뭔지 이해시키면 나도 확실히 이해할 수 있지 않을까 생각했다.



이틀간, 클라우드 아키텍처를 구축할 때 '가용성(사용자 접속량)'에 초점을 두고 보안적 측면에서 무엇을 고려해야 하는지 공부했었다. 그 가운데 '도커'가 실행환경(애플리케이션) 자체를 저장하여 추후에 재사용(복제)이 가능한, 아키텍처 구축 방법 중 하나로 보안 사고 시 필요한 대응책으로 학습했다.  



엄마, 이번에 들어가는 회사에서 하게  업무일지도 모르는  가운데 하나가  도커라는 컨테이너 박스에 대해서 고객사에 피칭(컨설팅) 해야 하는 거야. 도커가 뭔지 얘기해 볼게.


컨테이너 박스는  그대로 어떤 격리된 공간의 상자를 말하는 건데...


회사에서 엄마가 쓰는 노트북과 내가 쓰는 노트북의 구성이 다를 거야(여기서부터 엄마는 운영체제라는 용어를 모를 거라 생각했기 때문에 어떤 단어를 골라야 할지 고민되기 시작했다).


그런데 , 엄마가 쓰는 노트북은 Windows 7 쓰는데 내가 쓰는 노트북은 Windows 10 거야. 알겠어?(갑자기 협박 모드로 들어가기 시작했다.) 그리고 엄마는 본체만  하다가 일단 들어주는  같았다.


그런데 말이지,  기발한 아이디어를 발상해낸 개발자가 있었어.  기발한 아이디어가 뭐냐면, 엄마가 회사에서 쓰는 노트북이 해킹당하게 되었어. 보통은 해킹당하면  노트북 환경 자체를 고치거나, 다른 노트북이 감염되지 않게 아예 포맷을 해버리지.


엄마가 말했다. ',  포맷도   아나?' ', 진짜... 그래, 포맷을 하기도 하는데, 중요한   기발한 아이디어를  개발자는 이렇게 고치는  시간이 많이 걸려서, 아싸~바리 엄마가 본래 쓰던 노트북의 처음 환경을 통째로 냉각(?)시켜 박스 채로 둬서 나중에 필요할  해동(?)해서   있게끔 만든  바로 도커라는 거지.


내가 말했잖아, 내가 쓰는 노트북은 윈도 10이고, 엄마가 쓰는 노트북의 운영체제는 윈도 7이니까 서로에게 익숙한 컴퓨터 환경이 다르지? 그런데 초창기의 실행환경을 얼려버려서, 엄마가 말했다(냉동?!). 그렇지. 해킹당하면 다시 바로 처음의 환경을 그대로 불러올  있게끔 인터넷 상에 미리 올려 버리는 거지.



갑자기 엄마의 눈빛에 생기가 돋기 시작했다. 그리고 내가 하는 말을 끝까지 듣는다.


그래서 세상에 개발자 2 명이 있으면,  2 명의 개발환경이  다를 텐데 도커를 만든  천재가  개발환경 2 개를 미리 인터넷(클라우드) 올려놓고 언제든지 필요하면   있게끔 해놓은 거지. 그래서 도커가 대단한 거라고.


엄마가 물었다. ', 시스템 사양이  다를 텐데 그래도 되나??'


.............



.............


엄마가 질문한 물음에서의 '사양'이라는 단어가 내가 말한 윈도 버전을 뜻한 건지, 아니면 그것을 사용하는 컴퓨터의 사양을 뜻한 건지 헷갈린  둘째 치고, 도커에서 가장 중요한 개념인 '종속성' 대해서  할머니가 지금 바로 지적한 거였다.
 

~ 시스템마다의 종속성에 얽매이지 않기 위해서 그래서 실행환경 자체(이미지) 저장시켜놓고 나중에 복제해서 배포할  있게  거지. 이게 가장 중요해. 시스템의 사양이 다르더라도 특정 시점의 상태(이미지) 저장해서 복제할  있게 하자는 불변 인프라(Immutable Infrastructure) 실현하면, 시스템 간의 차이가 있어 실행 프로그램이 기대했던 대로 동작하지 않는 상황* 해결할  있는 라고 말하려는 찰나,



아버지가 나와서 '조용히나 하고 밥이나 먹자!'  마디에 나의 스토리텔링과 어머니의 경청은 좌절됐다.





* 도커는 서버의 환경에 의존하는 문제를 해결할 수 있고 이 환경 차이 문제를 피하려면 **멱등성(Idempotency)이 확보돼야 한다.

** 멱등성이란, 언제든 몇 번을 실행해 같은 결과가 보장되는 성질을 말한다. 하지만 형상관리(provisioning) 툴은 항상 이것을 실현하지 못하기 때문에 도커를 통해 이 '멱등성 확보'가 가능하다.

매거진의 이전글 전쟁을 일으킨 블록체인 기술의 양면성
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari