- 주제
- 내 컴퓨터에서 서버 환경까지, 중단 없는 워크플로우 형성하기
- 내용 구성
- 현대적인 개발 및 데이터 엔지니어링의 표준 인프라 환경 구축’을 목표로 하는 실무 지향적인 구성
- 단순히 개별 도구의 사용법을 넘어, 개발 환경의 격리와 배포의 자동화를 이해하는 핵심 과정
- 내용
- 윈도우 환경(WSL2)에서 리눅스의 강력한 제어력 확보
- 이를 다시 도커(Docker)라는 컨테이너 기술로 규격화
- 어떤 환경에서도 동일하게 작동하는 애플리케이션 실행 환경을 구축하는 능력 배양
1. 커리큘럼의 핵심 목적
1.1 운영체제의 장벽 제거 (WSL2 & Linux)
- 목적:
- 윈도우의 편리함과 리눅스의 강력한 서버 운영 환경을 통합
- 의의:
- 데이터 엔지니어나 개발자가 실제 서버(Cloud/On-premise)로 가기 전,
- 로컬 PC에서 실제 서버와 100% 동일한 환경을 시뮬레이션할 수 있는 기술적 토대 마련
1.2 환경의 표준화 및 격리 (Docker & Container)
- 목적:
내 컴퓨터에서는 잘 되는데 서버에서는 왜 안 되지?라는 고전적인 문제를 원천 봉쇄
- 의의:
- 라이브러리 버전 충돌, OS 설정 차이 등의 복잡한 변수를 ‘이미지’라는 단위로 박제
- 코드와 환경을 하나로 묶어 어디서든 즉시 실행 가능하게 만듦
1.3 엔지니어링 자동화 역량 확보 (Shell Script & Docker Compose)
- 목적:
- 수작업을 배제하고
- 코드로 인프라를 관리(IaC, Infrastructure as Code)하는 기초 확립
- 의의:
- 반복적인 리눅스 작업은 쉘 스크립트로,
- 복잡하게 얽힌 여러 개의 컨테이너(DB, API, Web 등)는 Docker Compose로 한 번에 실행하고 관리하는
효율성 극대화
2. 학습 단계별 연결 고리
- 리눅스 기초: 서버를 제어하는 기본 언어와 문법 습득
- 쉘 스크립트: 리눅스 명령어를 자동화하여 운영 효율성 제고
- Docker: 리눅스 환경 자체를 ‘컨테이너’라는 가벼운 패키지로 캡슐화
- Dockerfile & Compose: 단일 환경 구성을 넘어 복합적인 시스템 인프라를 코드로 설계
3. 기대 효과
- 개발자:
- 자신이 작성한 코드를 Docker 이미지로 만들어 배포팀에 전달할 수 있는
배포 가능한 개발자
- 데이터 엔지니어:
- 데이터 수집, 처리, 분석용 오픈소스 도구들을 리눅스 및 컨테이너 기반으로 자유자재로 설치하고 연결할 수 있는
인프라 장악력 확보
- 이 과정은 이후에 이어질 데이터베이스, 클라우드, 데이터 파이프라인(Airflow 등) 학습을 위한 단단한 기반(Foundation)이 될 것