본문 바로가기

전체 글

(45)
[Docker] Docker Compose 란? Docker Compose 란?여러개의 컨테이너(서비스)를 하나의 애플리케이션 스택으로 정의하고 실행, 관리하는 도커 오케스트레이션 도구이다. 하나의 docker-compose.yaml 파일에 애플리케이션을 구성하는 모든 서비스(ex. 웹서버, DB 등)를 설정하여 아래 명령어 한 줄로 쉽게 전체 환경을 실행할 수 있다.docker compose up # 전체 실행docker compose down # 전체 종료# docker-compose : 이전 버전 명령어(하위 호환 작동) Docker Compose 장점복잡한 애플리케이션을 한 번에 쉽게 실행docker-compose.yaml 설정파일 기반으로 관리하여 재사용, 유지보수 용이자동 네트워크 구성 및 배포 환경 통일실행 순서 및 의존성 제어 ..
[Docker] Docker 이미지 빌드 & Dockerfile Docker 이미지 빌드란?Dockerfile에 정의된 설정과 명령을 기반으로 Docker 이미지를 생성하는 과정을 의미한다. Docker 이미지를 직접 빌드하는 이유도커를 사용할 때, 보통 Docker Hub에서 원하는 이미지를 받아와 실행한다. 하지만 항상 서비스에 적합한 이미지가 있는 것은 아니며, 팀/서비스 배포 환경을 표준화하기 위해서는 도커 빌드 즉, 직접 이미지를 빌드하는 과정이 필요하다.Dockerfile 기반 이미지 빌드 vs 수동 환경 구성Dockerfile 없이 서버를 직접 세팅한다면 아래와 같은 단계를 거친다. 1. OS 설치2. 패키지 목록 갱신3. 시스템 종속성 설치4. Python 패키지 설치5. 소스 코드 복사6. 실행 위 과정을 서버마다 수동으로 반복하면 시간 낭비, 환경 ..
[WSL] WSL 기초와 설치 방법 WSL 란?WSL(Windows Subsystem for Linux)는 Windows 환경에서 Linux 환경을 실행할 수 있게 해주는 기능이다. Hyper-V 기반 경량 VM 위에서 리눅스 커널을 구동하며 윈도우 환경과 통합되어 있어 개발 환경에서 리눅스 전용 프로그램(Docker, Airflow 등) 실행에 많이 사용된다. 반면, VMware, VirtualBox는 완전 독립적인 PC환경을 제공하며 실제 서버 환경과 유사한 독립성을 갖기 때문에 서버에 사용된다. WSL 설치방법1. WSL 기능 활성화dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestartPowershell 을 관리자 권..
[Docker] Docker 개념 및 설치 방법 Docker 란?도커는 다양한 사용자가 OS, 라이브버리 의존성에 구애받지 않고 애플리케이션을 실행할 수 있도록 환경을 제공하는 플랫폼이다. Docker는 Hypervisor 엔진(가상화 관리 프로그램)을 사용하지 않고 호스트의 운영체제를 공유하여, 가상머신보다 빠른 속도를 보장하고 실행 성능도 뛰어나다. Docker 설치 (Winodws)1. WSL2 설치https://kind-door.tistory.com/50 [WSL] WSL 기초와 설치 방법WSL 란?WSL(Windows Subsystem for Linux)는 Windows 환경에서 Linux 환경을 실행할 수 있게 해주는 기능이다. Hyper-V 기반 경량 VM 위에서 리눅스 커널을 구동하며 윈도우 환경과 통합되어 있어 개발 환경에서kind..
[Docker] Docker 구조 및 명령어 1. 컨테이너(Container) 컨테이너란 Docker 이미지를 실행한 결과물로, 애플리케이션과 실행에 필요한 환경을 프로세스 형태로 실행하는 단위이다. 컨테이너는 호스트 OS의 커널을 공유하면서도 파일 시스템, 프로세스 공간이 분리되어 가볍고 빠르게 생성, 삭제할 수 있다.# 실행 중인 컨테이너 목록 확인docker ps# 모든 컨테이너(중지 포함) 목록 확인docker ps -a# 컨테이너 실행docker run # 컨테이너 백그라운드 모드 실행docker run -d # interactive 모드 실행 (터미널과 상호작용)docker run -it # 컨테이너 중지docker stop # 컨테이너 삭제docker rm # 컨테이너 로그 확인docker logs # 컨테이너 내부 접속dock..
[Git] Git 개념과 기초 명령어 정리 Git 이란?소스 코드의 버전 이력을 관리하고, 협업을 효과적으로 돕는 분산형 버전 관리 소프트웨어 Git 장점1. 개발 히스토리 관리 - 언제, 누가, 어떤 변경을 했는지 추적2. 버전 롤백 - 이전 버전으로 코드를 되돌릴 수 있다.3. 효율적인 협업 - 브랜치를 통한 독립 작업, 병합을 통한 협업 환경 제공 gitignore 란?.gitignore 파일은 Git이 버전관리에 제외할 파일이나 디렉토리를 지정하는 설정파일 (리소스, 빌드 파일, 환경설정 파일 등) GitHub 란?Git으로 저장된 내역들을 원격으로 저장하고 관리하는 서비스. Pull Request, Issue 관리 등 협업에 최적화 Git 기초 설정# Git 저장소 초기화git init# GitHub 와 연결하고 싶다면 이메일 연동 필..
TensorRT 란? AI 부서에서 개인 프로젝트를 하던 도중 회사 선배님으로부터 TensorRT 라는 것을 듣게 되었다. TensorRT 를 적용하면 추론, 서비스 단계에서 기존 프레임워크보다 월등히 빠르다는 말을 듣고 알아보게 되었다. 1.TensorRT란?TensorRT는 NVIDIA 에서 제공하는 딥러닝 추론 가속화 라이브러리이다. 학습된 딥러닝 모델을 NVIDIA GPU 연산을 최적화하여 수배 ~ 수십배 빠른 추론 속도를 제공한다. (개인 테스트 결과는 그렇지 못하다...)2.TensorRT 특징1.TensorFlow, PyTorch 등 주요 딥러닝 프레임워크에서 학습한 모델을 지원한다. (TensorFlow, PyTorch, PaddlePaddle...)2. GPU가 지원하는 활용 가능한 최적의 연산 자원을 자동으..
비동기 vs 멀티 스레드 vs 멀티 프로세스 (feat. Python) IntroPython으로 팀 프로젝트를 하던 도중 병렬 처리가 필요한 상황이 생겼다. 그 과정에서 Python 병렬 처리 방식이 비동기, 멀티 스레드, 멀티 프로세스 3가지로 나뉘고 어떤 상황에서 어떤 방법을 사용해야 할지 헷갈렸다. 또한, 현재 업무에서 멀티 프로세스가 쓰인다고 하여 공부하는 과정에서 멀티 프로세스도 종류가 나뉜다는 것을 알게 되었고 이번 기회에 정리해보고자 한다. 하지만 멀티쓰레드, 프로세싱의 차이를 이해하기 위해 CPU 작업, I/O 작업에 대해 이해해야 한다. 1. CPU 작업 vs I/O 작업 CPU 바운드 작업은 주로 CPU 처리 능력에 크게 의존하는 작업으로, 대기 시간이 거의 없고 CPU가 끊임없이 연산을 수행해야 한다. 따라서 처리 속도는 CPU의 성능에 의해 좌우된다. ..