이 저장소는 Python 학습 기록과 알고리즘 풀이를 보관하는 공간이다. 대부분의 코드는 legacy/ 아래에 있다.
legacy/algo/: Baekjoon 풀이, 정렬, 그래프, 스택, 큐, 힙, 알고리즘 교재 실습 코드.legacy/class/python/: 주차별 수업 자료, 과제, 시험 연습, PDF, GUI 예제.legacy/practicefiles/: Python 문법, 패키지, 모듈, Jump to Python 관련 연습 코드.notion/: Notion과 연동하거나 정리한 참고 자료를 둘 수 있는 공간.
새 자료는 관련 주제 폴더에 둔다. 독립 프로젝트를 추가할 때는 src/, tests/, assets/처럼 역할을 분리한다.
프로젝트 전체 빌드 시스템이나 의존성 파일은 없다. 개별 Python 파일을 직접 실행한다.
python3 path/to/script.py: 단일 예제나 풀이 실행.python3 -m pytest: pytest 테스트가 추가된 경우 전체 테스트 실행.rg --files: 저장소 파일 목록 빠르게 확인.git status --short: 의도한 변경만 있는지 확인.
__pycache__/, 임시 파일, 에디터 개인 설정은 의도적으로 공유할 때만 커밋한다.
Python 3 문법과 4칸 들여쓰기를 사용한다. 알고리즘 풀이는 입력, 처리, 출력 흐름이 명확한 작은 스크립트로 유지한다. 파일, 함수, 변수는 snake_case를 사용한다. 기존 한글 폴더명과 문제 번호는 보존하되, 새 공용 모듈은 가능하면 ASCII 이름을 사용한다.
고정된 테스트 프레임워크는 없다. 알고리즘 풀이는 원문 문제의 예제 입력과 출력으로 먼저 검증한다. 재사용 모듈을 추가한다면 tests/에 테스트를 두고, 예를 들어 test_queue_dequeues_in_fifo_order.py처럼 동작 중심으로 이름을 짓는다.
기존 커밋에는 update, training algo, 한글 업로드 메시지가 섞여 있다. 앞으로는 Add heap practice solution처럼 명령형이고 범위가 드러나는 메시지를 선호한다.
PR에는 변경 내용, 파일 위치, 검증 방법, PDF나 이미지 포함 여부를 적는다.
Notion 작업이 필요하면 프로젝트 MCP 설정의 notion 서버를 사용한다. 작업 전 Notion에서 Python Study 페이지나 데이터베이스를 검색하고, 정확히 일치하는 대상을 확인한 뒤 그 안에서만 읽기, 정리, 작성 작업을 진행한다.
Python Study가 없거나 같은 이름의 대상이 여러 개라면 새 페이지를 만들지 말고 사용자에게 확인한다. 다른 Notion 워크스페이스, 페이지, 데이터베이스에는 명시적 요청 없이 작성하지 않는다. 인증이 불명확하면 codex mcp list로 OAuth 상태인지 확인한다.
파일을 만들거나 정리하기 전에 기존 파일을 확인한다. 학습 노트, PDF, 이미지, 이전 풀이 시도는 사용자가 명시적으로 요청하지 않는 한 덮어쓰거나 삭제하지 않는다.