패스트캠퍼스 데브캠프

김민태의 데브캠프 2기 - 실시간 강의 (01/09)

vitamin3000 2025. 1. 9. 19:51

 

오늘 실시간 강의는 DevOps에 대한 내용이다.

 

Devlop + Operation의 합성어로, 개발 운영으로, 시스템에 장애에 따라 설계 자체가 달라질 수 있음을 알고 알맞게 운영하는 것

 

이를 위해 IDC를 생각 해볼 수 있는데, 이는 해킹, 전력 부족 등의 위험 요소에 대비하는 것이다.

 

이를 웹 서비스에 접목하려고 한다고 가정해보자.

 

홈페이지 서비스에서 api 등의 요청을 DNS에게 보낸다. 그다음 WebCloudeFront에서, 각 서버에게 분할하여 처리하도록 하는 것이다.

 

이 개념을 알기 위해서는 애뮬레이션에 대해 이해가 필요한데,

 SW는 CPU가 읽어 실행시키는데 만약 Linux 환경에서 제작된 SW를 윈도우 환경에서 실행을 해본다고 가정해보자

실행이될까?

아니, 되지 않는다. 왜냐하면 물리적인 CPU가 다르기 때문에 해석할 수 가 없다.

이를 해결하기 위해 예를 들어 윈도우 고사양 컴퓨터에 Linux CPU를 "가상화" 방식으로 추가하여 Linux 환경에서 제작된 SW를 실행하도록 한다면 해결 할 수 있을 것이다.

하지만, 근본적으로 SW를 통한 가상화 방식이기에 속도가 하드웨어에 비해 매우 느리다.

 

이러한 개념을 적용하여, 컨테이너 기술을 개발하였다.

컨테이너란 ?

애플리케이션을 구동하는 환경을 격리한 공간을 의미한다.

운영체제를 제외하고 애플리케이션 실행에 필요한 모든 파일만을 패키징한 형태로, 기존의 가상 머신에 비해 가벼고 빠르게 동작이 가능하다.

 

 

다음으로, 동일한 운영체제 환경(둘 다 윈도우)의 서버에서  Web App을 배포하는데, 이때 node.js 등의 버젼 불일치 문제가 발생한다고 가정해보자

여기서 문제를 찾아 해결하기엔 매우 어렵다

이러한 문제를 해결하기 위해 Docker가 등장했다.

 

Docek란 ?

 

아까 컨테이너 기술을 통해 얻은 Image를 다양한, 여러개 저장하여 쉽게 다운 받을 수 있게 하였다

예를 들어 node 버젼이 달라도 쉽게 다운 받아 이미지를 실행 가능하게 하였다

 

하드웨어까지 묘사 하지는 못해 Linux의 SW를 Window에서 실행하지는 못하지만,

애뮬레이션에 비해 속도가 매우 빠르다.