📚 학습 목표
초보자부터 상급자까지 체계적으로 Python을 마스터하여 실무 프로젝트를 수행할 수 있는 능력 배양
🎯 Phase 1: 초급 (1-4주)
Week 1: Python 기초
- Python 설치 및 환경 설정 (VSCode, PyCharm)
- 변수와 데이터 타입 (int, float, string, boolean)
- 기본 연산자 (산술, 비교, 논리 연산자)
- 입출력 함수 (print, input)
- 실습 과제: 간단한 계산기 프로그램 만들기
Week 2: 제어문과 반복문
- 조건문 (if, elif, else)
- 반복문 (for, while)
- break, continue, pass
- 리스트 기초
- 실습 과제: 숫자 맞추기 게임, 구구단 출력 프로그램
Week 3: 자료구조
- 리스트 (list) 심화
- 튜플 (tuple)
- 딕셔너리 (dictionary)
- 세트 (set)
- 자료구조 메서드 활용
- 실습 과제: 학생 성적 관리 프로그램
Week 4: 함수
- 함수 정의와 호출
- 매개변수와 반환값
- 지역변수와 전역변수
- 람다 함수
- *args, **kwargs
- 실습 과제: 다양한 유틸리티 함수 모음 만들기
🚀 Phase 2: 중급 (5-10주)
Week 5: 문자열과 파일 처리
- 문자열 메서드와 포맷팅
- 정규표현식 기초
- 파일 읽기/쓰기
- with 문
- 실습 과제: 텍스트 파일 분석 프로그램
Week 6: 모듈과 패키지
- 모듈 import와 사용
- 표준 라이브러리 (os, sys, datetime, random)
- 패키지 구조
- pip와 가상환경
- 실습 과제: 자신만의 유틸리티 패키지 만들기
Week 7: 객체지향 프로그래밍 (OOP) 1
- 클래스와 객체
- 생성자와 소멸자
- 인스턴스 변수와 메서드
- 클래스 변수와 정적 메서드
- 실습 과제: 도서 관리 시스템 (클래스 설계)
Week 8: 객체지향 프로그래밍 (OOP) 2
- 상속
- 메서드 오버라이딩
- 다형성
- 캡슐화와 접근 제어
- 실습 과제: 게임 캐릭터 시스템 구현
Week 9: 예외 처리와 디버깅
- try, except, finally
- 예외 종류와 처리
- raise로 예외 발생시키기
- 사용자 정의 예외
- 디버깅 기법
- 실습 과제: 안전한 입력 처리 시스템
Week 10: 컬렉션 심화
- List Comprehension
- Dictionary Comprehension
- Generator와 Iterator
- map, filter, reduce
- collections 모듈
- 실습 과제: 데이터 변환 파이프라인 구현
💪 Phase 3: 중상급 (11-16주)
Week 11: 데이터 처리 - Numpy
- Numpy 배열 생성과 연산
- 배열 인덱싱과 슬라이싱
- 브로드캐스팅
- 수학 함수와 통계
- 실습 과제: 행렬 연산 프로그램
Week 12: 데이터 처리 - Pandas
- DataFrame과 Series
- 데이터 읽기/쓰기 (CSV, Excel)
- 데이터 선택과 필터링
- 그룹화와 집계
- 데이터 병합과 조인
- 실습 과제: 실제 데이터셋 분석
Week 13: 데이터 시각화
- Matplotlib 기초
- 다양한 차트 유형 (line, bar, scatter, pie)
- Seaborn으로 고급 시각화
- 시각화 커스터마이징
- 실습 과제: 데이터 분석 리포트 작성
Week 14: 웹 스크래핑
- requests 라이브러리
- BeautifulSoup
- HTML 파싱
- API 사용
- 크롤링 윤리와 robots.txt
- 실습 과제: 뉴스 또는 쇼핑몰 데이터 수집
Week 15: 데이터베이스
- SQLite 기초
- SQL 쿼리 (SELECT, INSERT, UPDATE, DELETE)
- Python에서 DB 연결
- ORM 개념 소개
- 실습 과제: 데이터베이스 기반 애플리케이션
Week 16: 웹 개발 기초
- Flask 소개
- 라우팅과 뷰 함수
- 템플릿 (Jinja2)
- 폼 처리
- 간단한 REST API
- 실습 과제: 블로그 또는 게시판 웹 애플리케이션
🏆 Phase 4: 상급 (17-24주)
Week 17: 비동기 프로그래밍
- 동기 vs 비동기
- asyncio 기초
- async/await
- 비동기 I/O
- 실습 과제: 비동기 웹 크롤러
Week 18: 멀티스레딩과 멀티프로세싱
- Thread와 Process
- GIL (Global Interpreter Lock)
- concurrent.futures
- 동시성 제어
- 실습 과제: 병렬 데이터 처리 시스템
Week 19: 테스트와 디버깅
- unittest 프레임워크
- pytest
- 테스트 주도 개발 (TDD)
- 코드 커버리지
- 디버거 활용
- 실습 과제: 기존 프로젝트에 테스트 코드 작성
Week 20: 디자인 패턴
- 싱글톤, 팩토리 패턴
- 옵저버, 데코레이터 패턴
- MVC 패턴
- 의존성 주입
- 실습 과제: 디자인 패턴을 적용한 애플리케이션
Week 21: 머신러닝 입문
- scikit-learn 소개
- 데이터 전처리
- 회귀와 분류
- 모델 평가
- 실습 과제: 간단한 예측 모델 구축
Week 22: 심화 웹 개발
- Django 기초
- 모델, 뷰, 템플릿 (MVT)
- Django ORM
- 인증과 권한
- 실습 과제: 완전한 웹 서비스 구현
Week 23: API 개발
- RESTful API 설계 원칙
- FastAPI
- API 문서화 (Swagger)
- 인증 (JWT)
- 실습 과제: 백엔드 API 서버 구축
Week 24: 최종 프로젝트
- 팀 프로젝트 기획
- Git/GitHub 협업
- 프로젝트 구현
- 코드 리뷰
- 발표 및 피드백
📝 학습 방법론
일일 학습 루틴
- 이론 학습 (30분): 개념 이해
- 실습 (60-90분): 직접 코딩
- 복습 (30분): 당일 내용 정리
주간 활동
- 주중: 이론과 실습
- 주말: 과제 완성 및 복습
- 스터디 모임: 코드 리뷰 및 토론
추천 리소스
- 공식 문서: Python.org
- 온라인 플랫폼: 백준, 프로그래머스 (코딩 테스트)
- 책: "파이썬 코딩의 기술", "Effective Python"
- 커뮤니티: Stack Overflow, Python Korea Facebook 그룹
체크리스트
각 주차 완료 시:
- 모든 실습 코드 작성 완료
- 과제 제출
- 개념 정리 노트 작성
- 다음 주 예습
🎓 평가 기준
초급 통과 조건
- 기본 문법 숙지
- 간단한 프로그램 작성 가능
중급 통과 조건
- OOP 이해 및 적용
- 실제 문제 해결 가능
상급 도달 목표
- 복잡한 프로젝트 설계 및 구현
- 최신 기술 스택 활용
- 협업 프로젝트 경험