[42Seoul] - Inception

Joey·2022년 12월 4일
1

42 SEOUL

목록 보기
18/20



1.무엇을 하는 과제인가?

: Docker라는 도구로 독립적인 시스템을 구성하는 과제이다.
과제에서는 Nginx(Webserver) + Mariadb(DB) + Wordpress(Blog)를 구성한다.




2.과제를 하면서 참고 했던 곳들

1)Docker공부

: 간단하게 docker와 docker-compose에 대해서 공부할 수 있는 곳 들이다. 너무 설명이 잘 되있어서 무조건 이 영상들은 보는 것을 추천한다.

링크1 : https://www.youtube.com/watch?v=Ps8HDIAyPD0&list=PLuHgQVnccGMDeMJsGq2O-55Ymtx0IdKWf

링크2 : https://www.youtube.com/watch?v=0kQC19w0gTI

링크3 : https://www.youtube.com/watch?v=EK6iYRCIjYs


2)Docker File 명령어

링크 : https://www.daleseo.com/dockerfile/


#### 3)VM 초기 설정 : 몇가지는 조금 다른 것이 있으나 대체적으로 이 흐름대로 설치를 하면 된다.

링크 : https://developer-eun-diary.tistory.com/135


3.과제를 하면서 공부했던 것들

1)Docker란?


: 도커란 시스템을 독립적으로 구성할 수 있게 만들어주는 도구라고 생각한다. 도커는 컨테이너를 관리해주는데, 이 컨테이너는 각각 하나의 시스템(컴퓨터)라고 생각을 하면 된다. 독립된 시스템에서 여러개의 컴퓨터(컨테이너)가 있고 그것을 도커가 관리를 해준다고 생각을 하면 된다. 물론 이 과제내에서는 컨테이너 내에 하나의 프로그램만 가동을 시켰지만, 여러개의 프로그램을 하나의 컨테이너 내에 가동을 할 수가 있다.(하지만 도커의 이점이 사라지니 보통 이렇게는 하지 않는다.)

이 과제를 하면서 평가자에게 이렇게 설명을 해보았다. 내가 어떤 시스템의 관리자인데 버전이 바뀔때마다 프로그램을 수정을 하고 배포를 한다. 하지만 프로그램이 가동되는 환경은 천차 만별인데 이를 각각 셋팅을 하려면 업데이트를 할 때마다 밤을 새우게 된다.

이를 해결하려면 독립적인 시스템으로 셋팅을 한 다음에 그걸 그대로 다른 곳에 가져가서 환경에 상관없이 적용할 수 있게 만들면 된다.

이것을 가능하게 해주는 것이 도커이다.

간단하게 생각해보면 VM같은 가상머신에 이것저것 깔아서 그것을 배포한다고 생각하면 편하다.(물론 작동원리나 차이점은 존재한다)

2) Docker file과 Docker compose란?

docker file

: 컨테이너를 만들려면 이미지라는 것이 필요하다. 이미지는 내가 어떻게 이 시스템을 만들거야 라고 만들어 놓은 것과 같다. 흔히 cd 이미지를 떠올려보면 쉽게 이해할 수 있다고 생각한다.
컨테이너는 이미지를 바탕으로 만든다고 생각하면 된다.

Docker Compose

: 여러대의 컨테이너(독립된 컴퓨터라고 생각하면 됨)를 적절하게 연결하고 관리하는 기술

3) Virtual Machine vs Docker

:
virtual machine

: 자원을 똑 떼어내서 가상 환경에 할당해주기 때문에 쓸 수 있는 자원에 한계가 많음. 그리고 각자 독립된 os를 가지고 있기 때문에 무거움

docker

: host자원을 공유하기 때문에 컨테이너가 필요한 만큼 자원을 끌어다 쓸 수 있고 os를 host와 공유하고 있기 때문에 가벼움


4.회고

1)도커

: 말로만 들어보았던 도커를 직접 만들어 보고 시스템을 구성해보아서 좋았다. 사실 여기저기 참고를 많이 해서 과제를 하게 되었는데, 생각을 하다보니 실제 시스템 구성을 한다고 하더라도 구글링과 stack overflow는 피치못한 선택일 것 같다는 생각이 든다. 그래서 인지 이 과제는 이런 시행착오를 겪게 만들어 주는 과제라고 생각한다. 항상 난 셋팅을 하는 것 자체가 시간도 많이 소요되고 힘든일이라고 생각한다. 왜냐하면 셋팅을 하면서 수많은 시행착오를 겪게 되기 때문이다. 하지만 이 시행 착오를 넘어가게 되면 이전의 시행착오에 대한 어려움은 많이 사라지게 된다. 과제에서 여러가지를 함의하고 있겠지만, 이 또한 포함되어 있지 않나 생각해보았다.

2)과제의 활용에 대한 부분

: 약 1년 전부터 주식/코인 bot을 돌려 놓기만 하고 손을 잘 못대고 있다. 이번에 도커과제를 하면서 VM으로 되어있는 bot을 전면 도커로 수정하고 싶다는 생각이 있었다. 과제를 진행하면서 이것이 힘들다는 것을 알게 되었다. 도커는 리눅스 기반이고 내가 만들어놓은 시스템은 window 기반 api를 쓰기 떄문이다. 점점 window아닌 api도 나오는 추세이기 때문에 향후에는 가능하지 않을까 싶기도 하다.
위에서 쓴 어느 관리자의 이야기는 사실 나의 이야기이기도 하다. 시스템에 큰 문제가 있는 경우 나는 컴퓨터 7개를 직접 접속하여 수작업을 진행하고 있다.(VM) 하루 빨리 이 시스템을 개선하고 싶다는 생각을 하였다.

profile
세상을 이롭게 하는 프로그램 만들기

0개의 댓글