본문 바로가기

SK네트웍스 Family AI캠프 10기/Weekly 회고

[플레이데이터 SK네트웍스 Family AI 캠프 10기] 15주차 회고

15주 차 학습

 
 

1. Docker

 
Docker

  • 컨테이너 기반의 애플리케이션을 빠르게 구축, 테스트, 배포할 수 있는 플랫폼

 
Docker 구성 요소

  • Docker Client
    • 사용자 명령 입력
    • ex. Windows PowerShell
  • Docker Host
    • Docker 데몬이 실행되는 환경
    • ex. Docker Desktop
  • Registry(Docker Hub)
    • 이미지 저장소
    • 이미지 Pull/Push

 
Docker 명령어

docker search <image_name>					# Docker Hub에서 이미지 검색
docker pull <image_name>:<tag>					# 이미지 다운로드

docker images							# 이미지 목록 확인

docker run -it --name <container_name> <image_name> /bin/bash	# 컨테이너 생성 및 bash 진입

docker ps							# 실행 중인 컨테이너 목록 확인
docker stop <container_name>					# 컨테이너 중지
docker start <container_name>					# 컨테이너 시작
docker restart <container_name>					# 컨테이너 재시작
docker attach <container_name>					# 실행 중인 컨테이너에 접속

docker rm <container_name>					# 컨테이너 삭제
docker rmi <image_name>:<tag>					# 이미지 삭제

 
Dockerfile

  • 컨테이너 환경을 정의하는 설정 파일
docker build -t <image_name>:<version> <path>	# Dockerfile로 이미지 빌드

 
Docker Network

  • bridge
    • 기본 네트워크
    • 동일 호스트 내 컨테이너 간 통신
  • host
    • 컨테이너가 호스트 네트워크를 그대로 사용
  • overlay
    • 다중 호스트 간 가상 네트워크 구성
docker network ls						# 네트워크 목록 확인
docker network create <network_name>				# 네트워크 생성
docker network inspect <network_name>				# 네트워크 상세 정보 조회
docker network connect <network_name> <container_name>		# 네트워크에 컨테이너 연결
docker network disconnect <network_name> <container_name>	# 네트워크에서 컨테이너 분리
docker network rm <network_name>				# 네트워크 삭제
docker network prune						# 사용하지 않는 네트워크 정리

 
Docker Compose

  • 여러 컨테이너를 하나의 서비스처럼 정의하고 관리하는 도구
  • docker-compose.yml 파일로 전체 시스템을 한 번에 실행, 중지, 삭제 가능

 
 

2. Linux

 
Linux

  • 리눅스 커널 기반의 오픈소스 유닉스 계열 운영체제

 
Linux 구조

  • Application
    • 사용자 프로그램
    • ex. 브라우저, 편집기
  • Shell
    • 명령어 인터페이스
    • ex. Bash
  • Kernel
    • OS의 핵심
    • 하드웨어 제어
  • Hardware
    • ex. CPU, RAM

 
Linux 명령어

# Account
whoami					# 현재 로그인한 사용자 확인
sudo passwd <username>			# 사용자 비밀번호 변경
sudo adduser <username>			# 새 사용자 생성
su - <username>				# 사용자 전환

# Package
apt-get update				# 패키지 목록 갱신
apt-get upgrade				# 설치된 패키지 업그레이드
apt-get dist-upgrade			# 의존성 포함한 전체 업그레이드
apt-get install -y <package_name>	# 패키지 설치

# File & Directory
pwd					# 현재 디렉토리 경로 출력
ls					# 디렉토리 목록 출력
cd <directory>				# 디렉토리 이동
clear					# 터미널 화면 정리

cat <file_name>				# 파일 내용 출력
touch <file_name>			# 빈 파일 생성
mkdir [-p] <directory_name>		# 디렉토리 생성
mv <source> <destination>		# 파일 이동 또는 이름 변경
cp [-r] <source> <destination>		# 파일 또는 디렉토리 복사
rm <file_name>				# 파일 삭제
rm -r <directory_name>			# 디렉토리 삭제

# Permission
chmod <permission> <file_or_directory>	# 파일 또는 디렉토리 권한 설정

 
 


15주 차 회고

 
 

Keep

 

  • 단위 프로젝트가 끝났고, 새로운 단위에 들어갔는데 기본적인 내용들을 배워서 어렵지 않게 따라갈 수 있었다.
  • 주말에 AWS 특강이 있었는데 시험이 잡혀서 참여하지 못했다. 그래서 월요일에 강의자료를 보고 따라 해 볼 생각이다.

 
 

Problem

 

  • 이번 단위 프로젝트에 많이 기여하지 못한 것 같아서 아쉽다. 다음 단위 프로젝트에는 좀 더 적극적으로 참여해야 할 것 같다.
  • 코딩 실력이 많이 부족한 것 같아서 좀 더 많이 공부해야 할 것 같다.

 
 

Try

 

  • 이제 급한 일들이 모두 끝난 것 같아서 남는 시간 동안 무엇을 할지 고민해봐야 할 것 같다.
  • PyTorch, TensorFlow, 코딩테스트, 데이터 분석 등 해야 할 것은 많은데 우선순위를 정해야 할 것 같다.