WEB & WEBAPP
DevOps (Docker)
“내 컴퓨터에서는 되는데”가 왜 일어나는지, 그리고 그 문제를 컨테이너로 어떻게 없애는지 서비스가 실제로 돌아가는 환경을 직접 구성하는 훈련입니다. 명령어를 외우는 것이 아니라 “이 설정이 무엇을 격리하고 있는가”를 설명할 수 있게 되는 것이 목표입니다.
전체 12건
1. OT
"내 컴퓨터에선 되는데" 문제가 왜 생기는지 원인을 짚고 12주 로드맵을 확인합니다
각자 다른 OS·라이브러리 버전·환경변수 위에서 코드가 실행되는 개발 환경과, 실제 사용자가 접속하는 배포 환경 사이의 간극이 어디서 생기는지 사례로 확인합니다. 앞으로 12주 동안 이 간극을 컨테이너로 없애가는 순서를 미리 그려봅니다.
2. 리눅스·터미널 기초
서버를 다루기 위한 최소한의 커맨드라인 조작과 파일 시스템 구조를 익힙니다
대부분의 서버가 GUI 없이 리눅스로 운영된다는 전제 아래, 파일 탐색·권한·프로세스 확인 같은 최소한의 명령어를 직접 실습합니다. 파이프(|)와 리다이렉션으로 명령어를 조합하는 감각도 함께 기릅니다.
3. Docker 컨테이너 개념
가상머신과의 차이, 그리고 이미지와 컨테이너의 관계를 이해합니다
OS 전체를 통째로 가상화하는 VM과 달리, 커널을 공유하면서 프로세스만 격리하는 컨테이너의 가벼움이 어디서 오는지 구조도로 비교합니다. 이미지(설계도)와 컨테이너(실행된 인스턴스)의 관계를 클래스-인스턴스 비유로 정리합니다.
4. Dockerfile 작성과 이미지 빌드
애플리케이션을 레이어 단위로 이미지로 패키징하는 흐름을 직접 작성합니다
FROM/COPY/RUN/CMD 같은 Dockerfile 명령어가 각각 하나의 레이어를 쌓는다는 것을 이해하고, 레이어 캐시를 활용해 빌드 속도를 높이는 명령어 순서까지 직접 실험하며 이미지를 빌드합니다.
5. Docker Compose로 다중 컨테이너 구성
앱·DB·캐시를 하나의 파일로 묶어 함께 띄우는 흐름을 익힙니다
여러 컨테이너를 매번 개별 명령어로 띄우는 대신 docker-compose.yml 한 파일로 서비스·네트워크·볼륨을 함께 선언하고 `up` 한 번으로 전체 환경을 재현하는 흐름을 실습합니다.
6. 네트워킹과 볼륨
컨테이너 간 통신 방식과, 컨테이너가 사라져도 데이터를 남기는 볼륨을 다룹니다
같은 네트워크에 속한 컨테이너끼리 서비스 이름만으로 서로를 찾아 통신하는 구조를 확인하고, 컨테이너를 지웠다 다시 만들어도 DB 데이터가 사라지지 않도록 볼륨에 상태를 분리 보관하는 이유를 실습으로 체감합니다.
7. 클라우드 서버 기초 (AWS 등)
인스턴스를 직접 띄우고 접속해 실제 서버를 다루는 감각을 익힙니다
클라우드 콘솔에서 가상 서버(인스턴스)를 생성하고 SSH로 접속하는 전체 과정을 직접 따라가며, 보안 그룹으로 어떤 포트만 외부에 열어둘지 결정하는 최소 권한 원칙을 적용합니다.
8. Nginx와 리버스 프록시
외부 요청을 올바른 내부 서비스로 라우팅하는 리버스 프록시의 원리를 다룹니다
80/443 포트로 들어온 요청을 Nginx가 받아 내부의 여러 서비스(프론트/백엔드)로 나눠 보내는 흐름을 설정 파일로 직접 구성하고, HTTPS 인증서를 적용해 암호화된 통신까지 다룹니다.
9. 환경변수와 시크릿 관리
민감 정보를 코드에서 분리해 안전하게 관리하는 방법을 익힙니다
DB 비밀번호·API 키를 코드에 직접 적으면 안 되는 이유를 사고 사례로 확인하고, .env 파일과 환경변수로 설정값을 분리한 뒤 저장소에는 예시 파일만 커밋하는 관례를 실습합니다.
10. 모니터링과 로깅
서비스가 죽었을 때 원인을 빠르게 추적하는 흐름을 구성합니다
애플리케이션 로그를 구조화된 형식으로 남기고 한곳에 모아 검색하는 흐름을 구성하며, CPU·메모리 같은 지표를 주기적으로 수집해 이상 징후를 미리 발견하는 모니터링의 기본 개념을 다룹니다.
11. 컨테이너 오케스트레이션 맛보기
여러 컨테이너를 자동으로 관리하는 오케스트레이션 개념을 소개합니다
컨테이너 수가 늘어나면 수동 관리가 한계에 부딪힌다는 문제를 짚고, Kubernetes 같은 오케스트레이션 도구가 컨테이너를 자동으로 재시작·확장·배치하는 개념을 다이어그램으로 소개합니다(직접 구축은 다음 단계).
12. 미니 프로젝트
직접 만든 앱을 Docker로 패키징해 실제 서버에 배포합니다
12주 동안 배운 Dockerfile·Compose·Nginx·환경변수 관리를 하나로 엮어, 직접 만든 웹 애플리케이션을 컨테이너로 패키징하고 클라우드 서버에 실제로 배포해 도메인으로 접속되는 것까지 확인합니다.