📚 학습 목표

초보자부터 상급자까지 체계적으로 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 협업
  • 프로젝트 구현
  • 코드 리뷰
  • 발표 및 피드백

📝 학습 방법론

일일 학습 루틴

  1. 이론 학습 (30분): 개념 이해
  2. 실습 (60-90분): 직접 코딩
  3. 복습 (30분): 당일 내용 정리

주간 활동

  • 주중: 이론과 실습
  • 주말: 과제 완성 및 복습
  • 스터디 모임: 코드 리뷰 및 토론

추천 리소스

  • 공식 문서: Python.org
  • 온라인 플랫폼: 백준, 프로그래머스 (코딩 테스트)
  • : "파이썬 코딩의 기술", "Effective Python"
  • 커뮤니티: Stack Overflow, Python Korea Facebook 그룹

체크리스트

각 주차 완료 시:

  • 모든 실습 코드 작성 완료
  • 과제 제출
  • 개념 정리 노트 작성
  • 다음 주 예습

🎓 평가 기준

초급 통과 조건

  • 기본 문법 숙지
  • 간단한 프로그램 작성 가능

중급 통과 조건

  • OOP 이해 및 적용
  • 실제 문제 해결 가능

상급 도달 목표

  • 복잡한 프로젝트 설계 및 구현
  • 최신 기술 스택 활용
  • 협업 프로젝트 경험

 

1. Vue 3 + Vite + Bootstrap 개발 환경 구축

  • Node.js 설치 확인 (node -v, npm -v)
  • Vite 기반 Vue 3 프로젝트 생성 (npm create vite@latest)
  • Bootstrap 설치 및 적용 (npm install bootstrap)
  • IntelliJ에서 Vite 실행 가능하도록 설정 (npm run dev)

2. Vue 컴포넌트 기본 구조 이해

  • SFC (Single File Component) 구조
    • <template>: 화면 UI 정의
    • <script setup>: 로직 및 상태 관리
    • <style scoped>: 해당 컴포넌트 전용 스타일
  • HelloWorld 컴포넌트 작성 및 사용

3. Bootstrap 기반 레이아웃 구성

  • AppHeader, AppFooter, AppContainer 컴포넌트 생성
  • Bootstrap 레이아웃 클래스 적용 (container, row, col, navbar 등)
  • 전체 페이지 기본 틀 완성

4. Axios 설정 및 백엔드(Spring Boot) 연동 테스트

  • Axios 설치 (npm install axios)
  • 기본 API 호출 예제 작성
  • Spring Boot에서 CORS 설정
  • /api/hello 호출로 연동 확인

5. Vue Router 설정 (다중 페이지 구조)

  • vue-router 설치 (npm install vue-router)
  • Home / About 페이지 생성
  • Header 메뉴에서 페이지 이동 가능하게 구현

6. Vue 상태관리 (Pinia)

  • Pinia 설치 (npm install pinia)
  • 전역 상태 관리 스토어 생성
  • 간단한 카운터 예제 구현
  • 라우터에 상태값 적용

7. JWT 기반 인증 시스템 구현

  • 로그인 / 회원가입 폼 구성 (Vue)
  • Spring Boot JWT 인증 백엔드 구현 (JwtAuthFilter, SecurityConfig)
  • 로그인 후 사용자 정보 상태 저장 (Pinia + LocalStorage)
  • Axios 인터셉터로 JWT 토큰 자동 포함
  • 로그아웃 + 인증 유지 처리 (라우터 가드)

8. 사용자 정보 수정 페이지 구현

  • /me API로 기존 사용자 정보 조회
  • 이름, 비밀번호 수정 가능 (비밀번호는 선택 사항)
  • @Transactional + Dirty Checking 기반 업데이트 처리

9. 파일 업로드 및 정적 리소스 제공

  • FileController 작성
    • /api/files → 업로드 API
    • /files/** → 정적 리소스 접근 가능
  • Vue에서 파일 업로드 컴포넌트 구현 (Axios multipart/form-data)
  • 업로드 후 이미지/파일을 브라우저에서 직접 확인 가능

10. 예외 처리 및 로그 관리

  • Spring Security 인증/인가 예외 핸들링 (AuthenticationEntryPoint, AccessDeniedHandler)
  • Console WARN 제거 (UserDetailsServiceAutoConfiguration 제외)
  • application.properties → logging.level 설정으로 Security/Request 로그 관리

11. 게시판 기능 (진행 중)

  • Post / Comment Entity 및 Repository 생성
  • 게시글 CRUD API, 댓글 작성 API 작성
  • Vue에서 목록/작성/상세/댓글 UI 구현 예정

+ Recent posts