
독하게 시작하는 C 프로그래밍
널널한 개발자
취미가 아닌 전문 개발자의 길을 가려는 분들을 위한 C언어 프로그래밍 강의입니다. 쓰고 독하게 배워서 달달한 길로 가고 싶은 분들에게 권합니다!
초급
C, 컴퓨터 구조, assembly-language
Docker를 쓰는 사람은 많습니다. 하지만 원리를 아는 사람은 드뭅니다. 원리를 모르면 문제가 터졌을 때 검색에 의존할 뿐, 스스로 해결할 수 없습니다. Docker의 본질은 운영체제에 있습니다. 이 강의는 명령어 몇 개를 외우는 겉핥기가 아니라, Docker를 이루는 운영체제의 내면을 파고듭니다. 내부 구조가 보이기 시작하면, Docker는 더 이상 어렵지 않습니다.
8명 이 수강하고 있어요.
난이도 초급
수강기한 무제한


운영체제 기술의 핵심인 '가상 메모리' 작동원리를 이해할 수 있습니다.
파일 시스템이 파일을 관리하는 것에 관해 깊이 이해함으로써 파일의 삭제와 복원이 어떻게 가능한 것인지 알 수 있습니다.
Linux 컨테이너 기술이 어떤 원리고 구현되는 지 이해할 수 있습니다.
Process와 Thread가 무엇이며 어떤 차이가 있는지 알 수 있습니다.
Docker 기본 원리를 꿰뚫는 핵심 운영체제 이론, 이제는 확실히 이해할 수 있습니다
많은 개발자가 Docker를 사용합니다. 하지만 동작 원리를 제대로 이해하지 못하면 문제가 생겼을 때 스스로 해결하기 어렵습니다. Docker의 핵심은 사실 운영체제 그 자체에 있습니다. 그래서 이 강의는 겉으로 드러난 사용법이 아니라 Docker를 떠받치고 있는 운영체제의 내부를 다룹니다.
이 강의에서 Docker는 열한 개 섹션 중 열 번째 섹션에 이르러서야 본격적으로 등장합니다. 그 앞의 아홉 개 섹션은 전부 CPU, 메모리, 프로세스, 파일 시스템, 네트워크. 즉 운영체제 이야기입니다.
이유는 단순합니다. 컨테이너는 어느 날 갑자기 나타난 신기술이 아니라 리눅스가 원래 갖고 있던 기능들(Namespace, cgroups, Overlay 파일 시스템, netfilter)을 잘 묶어 놓은 것이기 때문입니다. 운영체제를 순서대로 따라 올라가면, Docker를 "새로 배우는" 것이 아니라 이미 아는 것들이 조립되는 과정을 확인하게 됩니다.
이 강의에서는 Docker를 설치하기도 전에 Docker 없이 컨테이너를 직접 실행해 봅니다. 이 경험을 하고 나면 Docker 명령어는 외울 대상이 아니라 당연한 결과가 됩니다.
운영체제 핵심 이론을 완벽히 이해하고 Docker의 기본 원리를 파악하게 됩니다.
수강 전에는 Docker가 "외워서 쓰는 도구"였다면, 수강 후에는 "동작이 눈에 보이는 시스템"이 됩니다. 컨테이너가 뜨지 않을 때, 볼륨 데이터가 사라진 것처럼 보일 때, 컨테이너끼리 통신이 안 될 때 검색 결과를 복사해 붙이는 것이 아니라 운영체제 수준에서 원인을 추론하고 스스로 해결할 수 있게 됩니다. 그리고 이 지식은 Docker에 국한되지 않습니다. Kubernetes든, 그다음에 등장할 어떤 기술이든, 결국 같은 운영체제 위에서 움직이기 때문입니다.
운영체제의 핵심인 가상 메모리 시스템부터 Linux 컨테이너 기술의 원리, netfilter 기반 Linux 커널 내부 구조까지, Docker를 제대로 이해하기 위해 반드시 알아야 할 필수 이론들을 쉽고 명확하게 설명해 드립니다.
※ Linux 커널 IP프로토콜 구현체에 통합되어 있는 netfilter에 대해서도 학습. 이를 바탕으로 iptables 명령을 제대로 활용할 수 있음
공부한 이론을 바탕으로 Docker 없이 컨테이너를 실행해봅니다. 이런 과정을 통해 컨테이너 기술의 핵심을 파악할 수 있으며 사실 Docker가 단순 포장에 불과하다는 사실을 알 수 있습니다.
PC방이나 컴퓨터를 사용하는 실습실 PC들을 쉽게 초기화 하는 방법이나 악성코드로부터 시스템을 보호하기 위한 기술의 원리가 가상화 기술의 원리와 같다는 것을 이해하면 본질을 알 수 있습니다.
Docker compose나 k8s가 필요한 이유를 머리로 아는 것이 아니라 경험으로 이해한 것처럼 체득할 수 있습니다. 원리를 이해하고 내것처럼 다루고 영역을 확대하는 과정을 경험하면 스스로 그 필요성을 느낄 수 있습니다. 그리고 필요라는 절박함은 강력한 학습 동기가 되어 줍니다.
1단계 — 출발점 맞추기 (섹션 1)
본격적인 수업에 앞서 알고 있다고 가정하는 내용과 이해가 아니라 암기하면 되는 것을 명확히 구분해 드립니다. 어디까지 알아야 따라올 수 있는지 미리 확인할 수 있습니다.
2단계 — 컴퓨터라는 기계의 본질 (섹션 2)
컴퓨터의 정체성을 결정하는 CPU, 그리고 Register부터 Cache, RAM, SSD로 이어지는 메모리 계층을 다룹니다. 모든 이야기의 물리적 토대입니다.
3단계 — 실행의 주체, 프로세스 (섹션 3)
컴퓨터 세상 속 행위의 주체와 대상을 구분하는 관점을 세우고, C와 Java 코드의 작동 원리 차이(그리고 JVM), 스케줄링과 스위칭, 프로세스 간 관계와 권한까지 '실행'의 실체를 파악합니다.
4단계 — 파일 시스템 (섹션 4)
파일이 실제로 어디에 어떻게 저장되는지, 삭제하면 내부에서 무슨 일이 일어나는지(백신 실시간 감시 엔진의 원리까지), Windows와 Linux의 디렉토리 구조 비교, 프로그램 "설치"의 실체, 그리고 리눅스 파일 관리 명령까지 다룹니다.
5단계 — 가상 메모리, 격리의 시작 (섹션 5)
프로세스 메모리 격리(흔한 게임 해킹 기법이 왜 통하는지도 함께), 메모리 스왑, Copy on Write, 프로세스 간 통신(IPC), 파일 주소 공간과 RAM 드라이브까지. 컨테이너 "격리"를 이해하는 데 필요한 핵심 개념이 모두 여기서 나옵니다.
6단계 — 컨테이너를 이루는 조각들 (섹션 6~7)
PC방 HDD 복구 원리에서 출발해 Overlay 파일 시스템 구조를 이해하고, 리눅스 Namespace와 Control groups(cgroups)를 배웁니다. 사실상 이 조각들이 곧 컨테이너입니다.
7단계 — 컨테이너의 실체 (섹션 8)
컨테이너 기술 개요와 컨테이너 이미지 표준(OCI, Docker도 이 표준을 따릅니다)을 살펴본 뒤, Docker 없이 컨테이너를 실행합니다.
8단계 — 네트워크, 마지막 퍼즐 (섹션 9)
누구나 쓰는 공유기의 작동 원리(NAT)에서 출발해 netfilter와 Chain, iptables, 리눅스 네트워크 시스템의 내부 흐름과 관리 명령까지. Docker 네트워크가 "마법"이 아니라는 것을 알게 됩니다.
9단계 — 이제, Docker (섹션 10)
드디어 Docker입니다. 이미지와 컨테이너, Windows 11 설치, 컨테이너 라이프 사이클과 주요 명령어를 다룹니다. 여기까지 온 수강생에게 이 섹션은 복습에 가깝습니다.
10단계 — 실전 프로젝트 (섹션 11)
Next.js 프론트엔드, Spring Boot API 서버, PostgreSQL 데이터베이스로 구성된 3-tier 서비스를 직접 컨테이너로 만듭니다. 이미지 생성, 도커 볼륨, 컨테이너 네트워크 설정까지 실무 흐름 그대로 마무리합니다.
실습 환경
Windows 11 기반 WSL
Docker Desktop
학습 자료
강의자료 PDF 파일
실습에 사용할 도커 이미지 2개 (Frontend, Backend)
학습 대상은
누구일까요?
Docker 명령어는 쓸 줄 알지만, 문제가 생기면 검색부터 하게 되는 분
이미지, 컨테이너, 볼륨, 가상 네트워크의 '실체'가 무엇인지 궁금했던 분
운영체제 이론을 배웠지만 실무와 연결되지 않아 답답했던 분
백엔드, 인프라, DevOps 방향으로 성장하려는 주니어 개발자
선수 지식,
필요할까요?
운영체제에서 IP주소를 설정해본 경험 (TCP/IP에 관한 상식)
Windows 운영체제 Program files, Windows 폴더의 역할 이해
C언어 프로그래밍 경험이 있으면 매우 유용
인프런인증
51,884
명
수강생
3,129
개
수강평
1,212
개
답변
4.9
점
강의 평점
32
개
강의
전체
44개 ∙ (11시간 14분)
해당 강의에서 제공:
지식공유자님의 다른 강의를 만나보세요!
같은 분야의 다른 강의를 만나보세요!
얼리버드 할인 중
₩61,600
30%
₩88,000