본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다. (https://fastcampus.info/4oKQD6b)
학습 후기
오늘은 Chapter Part.2 머신러닝 상품화 내용에서 컨테이너 이론에 대해서 공부하였습니다. 이 내용은 전반적으로 컨테이너 기술의 이록적인 배경과 핵심 작동 원리에 대해서 인지했습니다. 컨테이너 개념과 먼저 가상화 부분에 대해서 짚고 넘어가는 것이 중요하다고 생각했습니다. 가상화는 일반적으로 하드웨어 레벨의 가상화 입니다. 하이퍼바이저 위의 각 가상머신마다 운영체제를 별도로 설치를 해야해서 무겁고 부팅 속도가 느리다고 합니다.
그 문제점을 해결하기 위해서 사용되는게 컨테이너 입니다. 컨테이너는 운영체제 레벨의 가상화 인데요, 커널 형태로 사용하면서 프로세스를 격리하는 방식으로 사용된다고 합니다. 부팅이 빠르며, 다른 환경에서도 설치가 용이해서 이식성이 매우 뛰어나다고 합니다. 컨테이너 개념에서 주로 사용되는것이 도커이며, 주로 이제 이미지와 컨테이너를 구축하기 위해 사용되며, 뭔가 붕어빵 틀? 같다는 느낌이 들었습니다. 서로간의 관계가 있다고 생각했습니다.
이제, 이미지와 컨테이너에 대해서 각각 설명해보면, 이미지는 이제 어플의 실행에 필요한 코드, 라이브러러, 설정파일들을 저장한 읽기 전용 파일입니다. 여러개의 레이어로 구성이 되며, 빌드 시점에 주로 생성이 됩니다. 그리고 컨테이너는 이미지를 실행한 상태입니다. 이미지 위에 여러 읽기, 쓰기 레이어를 쌓아 실제 프로세스가 구동되는 형태로 사용된다고 합니다.
여기서 가장 신기했던 점은, 게스트 OS의 유무가 성능의 차이를 많이 만든다는 점이였습니다. 기존의 가상머신을 사용할대는 단순한 파이썬 스크립트를 하나 돌리려고 해도, 여러 GB OS와 기기를 설치해야 했는데, 컨테이너는 커널을 공유한다는 아이디어 하나로 이 중복을 제거하여, 속도와 자원 효율성을 획기적으로 높였다는 점이 매우 인상 깊었습니다. 이제 이러한 점을 인지에서 회사에서 일할때 컨테이너의 개념을 잘 인지하고 잘 활용해야 겠다는 생각이 들었습니다.



