[Week 5- Day 2] 회고

2022. 2. 15. 11:32About Me/AI Tech

# 가상화 란?

개발 시에 Servic 운영 환경(Server)에 직접 들어가 개발하지 않고, local 환경에서 개발 후에 배포를 함.

그래서 branch 전략(main, develop, staging, feature 등)이 존재하는 것임.

 

예를 들어 local 환경이 MacOS 이고, production 환경이 Linux 이라고 하자.

OS가 달라서, 라이브러리나 python 등 설치를 다르게 진행해야 한다. 이 때, 환경 변수나 usergroup, permission 등도 확인이 필요함.

이렇게 여러가지 변수를 고려하지 않으면 실행이 되지 않음. 따라서 README 등에 다양한 설정을 기록해두고, 항상 실행하도록 함.

이러한 작업들이 반복되니 귀찮으니, 셸 스크립트를 만들어둠.

근데 만약 운영하는 Server가 100대라면? 하나의 Server에서 python이 업데이트되면, 다른 Server들도 자동으로 업데이트를 해야 함.

그래서 이런 작업을 자동화하기 위해, 인프라 담당이 자동화 도구를 많이 찾고 있음. 그래서 Server 환경까지도 SW화 할 수 없을까 고민.

이런 고민을 해결하기 위해 나온 개념이 '가상화'임.

 

reseach 환경과 production 환경이 꼭 일치할 필요는 없지만, 일치할수록 생산성 향상.

따라서 두 환경에서 모두 사용하는 일종의 Template이 필요. Setting도 클릭한 번으로 할 수 있으면 수월하겠지.

이들을 만족한다면, 환경 불일치 문제를 해소 & 어느 환경에서나 같은 환경으로 프로그램 실행 & research도 동일한 환경에서 수행.

사람마다 원하는 환경 니즈가 다를텐데, dev 환경 등이 일치할수록 생산성 향상.

 

참고 : Container Registry (DockerHub, QCR, ECR 등)

 

# Docker 명령어

# Docker Container 생성 후 실행
docker run --name mysql-tutorial -e MYSQL_ROOT_PASSWORD=1234 -d -p 3306:3306 mysql:8

# Container에 진입
docker exec -it "컨테이너 이름" /bin/bash

# MySQL process 들어가기
mysql -u root -p

# 설치한 라이브러리 확인
pip freeze
pip list --not-required --format=freeze # 의존성에 따라 설치된 라이브러리는 안보임
# < 기본 명령어 정리 >
# 필요한 Image 다운로드
docker pull "이미지명:태그"

# Image기반 Container 생성
docker images # 다운로드 받은 이미지 목록 확인
docker run "이미지명:태그"

# 실행중 & 작동을 멈춘 Container 목록 확인
docker ps -a

# 실행중인 Container 중지
docker container "컨테이너ID"

# (중지된) Container 삭제
docker rm "컨테이너ID"

 

## docker run 할 때, 파일 공유하는 방법 (Volume Mount)

Docker Container 내부는 별다른 설정이 없으면, 종료하면 파일이 사라짐

만약 파일을 유지하고 싶다면, Host(내 컴퓨터)와 Container의 저장소를 공유해야 함. 이를 Volume Mount 하여 진행.

-v 옵션을 사용하여, Host_folder와 Container_folder를 연결해주면 됨.

# Host_Folder와 Container_folder 파일 공유 (-v)
docker run -it -p 8888:8888 \
               -v /some/host/folder/for/work:/home/hyun/workspace/jupyter/proj-notebook

 

# MLflow

ML모델의 실험 결과를 기록하고 관리하기 위한 도구.

# MLflow 설치
pip install mlflow

# mlruns 폴더 : 실험결과 기록을 저장
# MLProject 파일 : Project 메타정보 저장
  • 하나의 실험(Experiment)은, 진행하고 있는 ML Project 단위로 구성
  • 정해진 Metric(ex. RMSE, MSE, MAE, Acc)으로 모델 평가
  • 하나의 실험(Experiment)은 여러 번 Run(실행)을 가짐

 

 

## 피어 세션

미션 : 부캠스몰톡, 자체 팀 제안

 

zep에서 진행했는데, 게임도 하고 재미있었다.

하지만 자꾸 튕길 때부터 였을까, 상대 프로필이 검은 색으로 보이는데 테두리는 반짝이는 걸 보고 약간 의심을 했다.

사람들이 조용하고 게임을 진행하길래 다들 나랑 똑같구나 생각했는데, 알고보니 다들 이미 진행 중이었었다.

나중에 그걸 알아서 나갔다가 들어온 뒤에 다른 사람들이 말하는 걸 들을 수 있었다.

나는 왜 들어갈 때마다 검은 화면을 보여주지?한 게 알고보니 발표 중인 상태였었다.

정말 아무 생각없이 끝나버렸다.. 뭐였지?

 

나중에 부덕이 찾으라는 게 청둥오리를 찾아다녔는데, 앙증맞은 손톱만한 노란색 오리를 찾는 거였다.

그래도 게임 기능이 있어서 덜 외로웠던 것 같다.

피어세션 끝나고 진행한 거라 우리 팀 그대로 가되, 1명의 자리가 비어서 다들 흩어져서 다른 팀원을 영업해오기로 했다.

시작할 때 우리는 최고만을 고집한다. 여기 있는 팀원들은 시험에 거쳐 통과한 사람들이니 믿을 수 있다. 이런 말 해줘서 너무 좋았다.

 

 

 

 

 

 

반응형

'About Me > AI Tech' 카테고리의 다른 글

[Week 5- Day 4] 회고  (0) 2022.02.17
[Week 5- Day 3] 회고  (0) 2022.02.16
[Week 5- Day 1] 회고  (0) 2022.02.14
[Week 4- Day 5] 회고  (0) 2022.02.11
[Week 4- Day 4] 회고  (0) 2022.02.10