새소식

반응형
IT skill/툴

데이터 사이언스 관점에서 도커(docker)를 사용하는 이유

  • -
반응형

내 컴퓨터에서는 되는데, 네 컴퓨터에서는 왜 안되지?

 

Intro

  컴퓨터공학 전공을 하지 않은 상태에서 Vision AI 연구, 엔지니어링을 해오면서 알고리즘 연구를 코딩으로 많이 해 보았었다. 하지만 환경상 실제 서비스에 적용하는 경험을 많이 해보지 못하면서 적용에 대한 고민을 자연스럽게 많이 못 해보게 되었다. 서비스보다는 자연스럽게 연구에 대한 고민을 많이 했었던 환경이었던 것 같다. 내 자신을 아는게 정말 쉽지 않다고 생각하는 나였는데, 실제 서비스에 적용을 하지 못하고 문제 해결을 하려고 고민 했었던 지난 경험을 되돌아보니 나는 내가 만든 것을 다른 사람이 쓰고 만족하는 것을 보고 싶어한다라는 것을 깨달았다. 새로운 환경에 가고 싶었고, 새로운 환경에서 열심히 서비스까지에 대한 고민을 하고 있다. 어떻게 보면 딥러닝과 같이 결과론적으로 생각하고 글을 쓰고 있는 중을지도 모르겠다.😅 사람이라는게 하루하루 생각이 다르지만, 30대에서의 체크포인트를 이런 생각이라고 그냥 말하고 있는 거라고 생각하면 마음이 편하지 않을까 싶다.😶

 

도커를 몰랐던 삶

  이전에는 IT가 주력인 업체에서 일을 하지 않았어서 그런지, 아니면 아주 부끄럽게도 내가 최신 테크 기술에 관심을 두지 않았어서 그런지 도커라는걸 아예 모르고 있었다! 도커라는걸 2022년 말에 알고나니 신세계가 보이는 느낌이었다. 내가 알고 있던 가상환경은 아나콘다와 pycharm IDE의 가상환경밖에 없었다. 고객사는 보안이슈로 인터넷이 안되는 곳이었고, 프로그램 설치조차도 쉽게 되는 곳이 아니었기 때문에 real-world에서 실험을 하기전에 꼭 내가 만든 알고리즘을 수없이 내 자리에서 테스트하고 패키징하곤 했다. 2~3년전까지는 파이썬에는 모듈이 많은데 버전에 대한 관리가 엄청 중요한지를 인지를 못하고 있었다. 모듈의 버전끼리 충돌이 나고, 버전이 다르면 결과도 약간 달라져 재현의 문제가 또 생기고... 이런 문제들을 가상환경을 알게 됐을 때, 혁명이라는 생각을 했었는데 그래도 뭔가는 찜찜한... 그런 기분으로 사용을 했었다. 아나콘다나 pycharm의 초고수라면 당연히 잘 할 수 있겠지만, 대부분의 사람들과 같이 나는 하나만 엄청나게 파는 그런 성격은 아닌 것 같다. 그래서 평범하기라도 하기 위해 열심히 살아가고 있는 사람 중 하나인 것이 아닐까라는 생각이 든다.

 

  이전에 고객사 가기 전에 내가 만든 알고리즘을 수없이 내 자리에서 테스트하고, 옆 사람에게 해보라고 하고 결과를 비교하고 그랬었다. 내 컴퓨터에선 되는데, 네 컴퓨터에서는 왜 안되지? 라는 문제가 발생하면 그 때는 퇴근을 정시에 하지 못했었다. 4시간씩 자고 3일동안 일한적도 있었고, 밤 샌적도 있고... 그랬었던 것 같다. 지금 생각하니 머리가 나빠 몸이 고생했던 것 같기도 하다.

 

내가 느낀, 잠깐 사용해본 도커

  도커는 한 마디로 내 컴퓨터에서는 잘 되는데, 네 컴퓨터에서는 왜 안되지? 라는 문제를 아예 없애주는 오픈소스라고 한다. 아직 필요한 것만 찾아서 써 본 상태라 제대로는 모르지만 지금까지의 경험으로는 그냥 환경을 통째로 가지고 있을 수 있게 해주는 것 같다! 2022년 말이 되어서야 이걸 안 나 자신에게 꿀밤 한 방을 먹여야겠다. 증말 부끄럽다 부끄러워...

 

  지금까지 어깨너머 배워 본 바로는 도커도 데이터와 환경을 통째로 넣고 다니는게 아니라 데이터 관리하는 툴, 환경 관리는 도커, 소스코드 관리 툴, 이렇게 다 분리해서 관리를 할 수도 있다고 한다. 목적에 따라 만들어진 관리 툴이 엄청 많았다. 대충 본 것만 해도 30개는 넘는 것 같다. 서비스 관점에서도 엄청난 세계가 있다는 것을 느꼈던 최근이었다. 

 

  데이터 사이언스를 현업으로 하고 싶다면 실험에 대한 재현이 매우 중요하다는건 모두가 아는 사실일 것이다. 코드나 환경이 완전히 똑같아도 reproduce 세팅을 해놓지 않으면 재현이 안되는데, 환경이 다르면 얼마나 달라지겠는가? 상상도 할 수 없다. 요즘 학습 실험도 관리가 잘 되게 해주는 툴이 많다. wandb, mlflow 같은 툴이 있으며, 실험과 실험에 대한 로깅도 쉽게 할 수 있는(사실 쉬운게 없다) mm시리즈나 detectron2 같은 프레임워크도 천지에 널려있다. 하지만 내가 했던 실험이 서비스에서 잘 작동하지 않는다면 의미가 없어질 수 있다. 나의 실험을 의미 있게 만들기 위해 도커도 열심히 사용해야겠다! 최신 기술의 홍수속에서 잘 살아남아야지...

 

 

본 글은 저의 경험을 바탕으로 작성된 것이며, 틀린 내용이 있을 수 있습니다.

댓글로 알려주신다면 감사드리겠습니다.

 

반응형

'IT skill > ' 카테고리의 다른 글

Docker GPG error 해결방법  (0) 2023.02.09
Docker save, load 사용법  (0) 2023.01.29
Docker commit 사용법  (2) 2023.01.28
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감과 광고 클릭 부탁드립니다~