5-0. 강의 목차

전체 파트 구성 (10 Parts · 60강)
| 파트 | 회차 | 강의 수 | 핵심 내용 | 최종 산출물 |
| Part 1~2 |
1~8강 | 8강 | 네트워크 입문 + 1:1 소켓 통신 | 터미널 1:1 채팅 |
| Part 3~4 |
9~18.5강 | 10강 | 다중 접속 + 메시지 프로토콜 | 다중 접속 채팅 서버 |
| Part 5~7 |
19~35.5강 | 17강 | PySide6 GUI + 귓속말 + 파일 전송 | GUI 채팅 프로그램 |
| Part 8 |
36~47강 | 12강 | 최종 통합 + FastAPI 채팅 시스템 (WS·로그인·관리·MySQL) + 발표 |
완성된 채팅 앱 + FastAPI 시스템 |
| Part 9 |
48~57강 | 10강 | Docker + AWS EC2 배포 | 외부 접속 가능한 서버 |
| Part 10 |
58~60강 | 3강 | 현실 비교 + 플랫폼 비교 + 로드맵 | 학습 방향 확립 |
전체 커리큘럼 (60강)
| 파트 | 회차 | 강의명 | 유형 | 핵심 |
| Part 1~2 네트워크 입문 1:1 소켓 통신 |
1강 | 네트워크 프로그래밍이란? | 개념 | 서버-클라이언트 |
| 2강 | IP, 포트, TCP 쉽게 이해하기 | 개념 | 통신 주소 | |
| 3강 | 소켓의 역할과 동작 흐름 | 개념 | 소켓 개념 | |
| 4강 | 첫 번째 서버 만들기 | 구현 | 서버 소켓 | |
| 5강 | 첫 번째 클라이언트 만들기 | 구현 | 클라이언트 | |
| 6강 | 문자열 인코딩과 메시지 송수신 | 구현 | send/recv | |
| 7강 | 반복 송수신과 종료 처리 | 구현 | 소켓 관리 | |
| 8강 | 1:1 터미널 채팅 만들기 | 구현 | 기본 채팅 | |
| Part 3~4 다중 접속과 브로드캐스팅 메시지 프로토콜 |
9강 | 여러 클라이언트 접속 구조 | 개념 | 다중 접속 |
| 10강 | 스레드 개념과 기초 사용법 | 개념 | threading 준비 | |
| 11강 | 스레드로 클라이언트 처리하기 | 구현 | 동시 처리 | |
| 12강 | 접속자 목록 관리 | 구현 | 클라이언트 관리 | |
| 13강 | 전체 채팅 브로드캐스팅 구현 | 구현 | 전체 전달 | |
| 14강 | 왜 메시지 규칙이 필요한가? | 개념 | 프로토콜 개념 | |
| 15강 | JSON 기반 메시지 타입 설계 | 구현 | 메시지 타입 | |
| 16강 | 패킷 경계란 무엇인가 | 개념 | 버퍼 문제 | |
| 17강 | 패킷 경계와 메시지 구분 처리 | 구현 | 안정적 수신 | |
| 18강 | 시스템 메시지와 오류 메시지 처리 | 구현 | 메시지 분기 | |
| 18.5강 [체크포인트 1] | P1~P4 코드 점검 [체크포인트] | 점검 | 중간 점검 | |
| Part 5~7 PySide6 GUI 채팅 사용자 목록과 귓속말 파일 송수신 |
19강 | 클래스로 코드 구조화하기 | 개념 | 클래스 설계 |
| 20강 | 터미널 채팅에서 GUI로 — 코드 연결 방식 | 개념 | 브리지 | |
| 21강 | PySide6 기본 창과 위젯 구성 | 구현 | GUI 기초 | |
| 22강 | 채팅 화면 레이아웃 만들기 | UI | 채팅 UI | |
| 23강 | GUI에서 서버 접속하기 | 구현 | GUI 연결 | |
| 24강 | GUI에서 메시지 보내기 | 구현 | GUI 송신 | |
| 25강 | GUI에서 실시간 메시지 받기 | 구현 | 수신 스레드 | |
| 26강(최소) | GUI 상태 관리와 연결 종료 처리 | 구현 | GUI 안정화 | |
| 27강 | 사용자 목록 동기화 | 구현 | 접속자 표시 | |
| 28강 | 상대 선택 UI 만들기 | UI | 대상 선택 | |
| 29강 | 귓속말 메시지 전송 구현 | 구현 | 대상 지정 | |
| 30강(기본) | 귓속말 오류 처리와 표시 방식 | 구현 | 오류 처리 | |
| 31강 | 텍스트와 바이너리 데이터의 차이 | 개념 | 바이너리 개념 | |
| 32강 | 파일 전송 개념과 메타데이터 설계 | 개념 | 파일 메타 | |
| 33강 | 파일을 조각으로 나누어 보내기 | 구현 | 파일 chunk | |
| 34강 | 파일 수신과 저장 처리 | 구현 | 파일 저장 | |
| 35강(확장) | GUI 파일 선택과 전송 상태 표시 | UI | GUI 파일 | |
| 35.5강 [체크포인트 2] | P5~P7 통합 점검 | 점검 | 중간 점검 | |
| Part 8 최종 프로젝트와 FastAPI 채팅 시스템 |
36강 | 최종 프로젝트 통합 — 기능 연결과 구조 정리 | 구현 | 기능 통합 |
| 37강 | 예외 처리와 안정화 — 테스트와 버그 수정 | 구현 | 안정화 | |
| 38강 | FastAPI와 WebSocket 소개 — async/await 포함 | 개념 | FastAPI 개념 | |
| 39강 | FastAPI WebSocket 채팅 서버 만들기 | 구현 | WS 서버 | |
| 40강 | JSON 프로토콜과 닉네임 입장 처리 | 구현 | JSON·닉네임 | |
| 41강 | 사용자 목록 동기화 | 구현 | user_list | |
| 42강 | 귓속말 구현 | 구현 | whisper | |
| 43강 | PySide6 앱을 WebSocket으로 연결 | 구현 | 앱 WS 연결 | |
| 44강 | 앱 로그인 + 서버 인증 처리 | 구현 | 로그인·인증 | |
| 45강 | 웹 관리창 만들기 | 구현 | 관리 페이지 | |
| 46강 | 데이터 저장: 메모리에서 MySQL로 | 리팩토링 | DB 연동 | |
| 47강 | 최종 발표 — README 작성과 시연 | 구현 | 결과물 완성 | |
| Part 9 Docker와 AWS EC2로 채팅 서버 배포하기 |
48강 | 로컬 실행과 서버 배포의 차이 이해하기 | 개념 | 배포 개념 |
| 49강 | Docker 이미지·컨테이너 실습 | 구현 | 이미지·컨테이너 | |
| 50강 | Dockerfile 작성하기 | 구현 | Dockerfile | |
| 51강 | 이미지 빌드와 로컬 실행 | 구현 | 빌드·실행 | |
| 52강 | Docker Compose로 배포 표준화 | 구현 | Compose | |
| 53강 | 다른 환경에서 서버 실행하기 | 구현 | 환경 배포 | |
| 54강 | AWS EC2 인스턴스 생성과 SSH 접속 | 구현 | EC2·SSH | |
| 55강 | 보안 그룹과 포트 설정 | 구현 | 보안그룹·포트 | |
| 56강 | EC2에서 Docker 컨테이너 실행하기 | 구현 | EC2 배포 | |
| 57강 [체크포인트 3] | 외부 클라이언트 접속 테스트와 오류 해결 | 점검 | 접속 테스트 | |
| Part 10 현실과 비교하며 마무리하기 |
58강 | 내가 만든 것과 실무의 차이 | 개념 | 현실 비교 |
| 59강 | GUI 클라이언트 플랫폼 비교 | 개념 | 플랫폼 비교 | |
| 60강 | 다음 단계 로드맵 | 개념 | 학습 로드맵 | |
관련 학습 영상