[SK네트웍스 Family 엔코아AI캠퍼스] AI 오케스트레이션 캠프 3기_9월 3주차 회고

이번 주에 배운 것

이번 주에는 Python 3.12 가상환경 구성부터 기본 문법, 객체 지향 프로그래밍, 예외 처리까지 단계적으로 학습했다. 먼저 uv로 Python과 .venv를 설정하며 프로젝트마다 실행 환경과 패키지를 분리하는 이유를 이해했다. 이후 리스트·튜플·딕셔너리·집합의 특성과 선택 기준, 조건문과 반복문, 함수·모듈·패키지의 역할을 다시 정리했다.

객체 지향 프로그래밍에서는 클래스와 인스턴스, 클래스 속성과 인스턴스 속성의 차이를 살펴봤다. 상속과 메서드 오버라이딩을 통한 다형성, 반복 코드를 줄여 주는 dataclass도 배웠다. 예외 처리에서는 try, except, else, raise의 역할과 처리되지 않은 예외가 호출자에게 전파되는 흐름을 코드로 확인했다. 제너레이터의 소모성, zip()의 종료 기준, 패킹과 언패킹 같은 고급 문법도 함께 익혔다.

마지막으로 Git과 GitHub를 사용해 Fork, Clone, 브랜치 생성, 커밋, Push, Pull Request, 리뷰, Merge로 이어지는 협업 흐름을 실습했다. 같은 라인을 수정해 발생한 충돌을 해결하면서 병합 전 현재 코드와 변경 내용을 비교해야 한다는 점도 배웠다.

지식이 연결된 순간

첫날에는 컬렉션의 사용법을 알고 있어도 각 자료형을 언제 선택해야 하는지 명확하게 설명하기 어려웠다. 다음 학습에서 리스트는 순서와 수정이 필요한 데이터, 튜플은 변경되지 않아야 하는 값, 딕셔너리는 키 기반 조회, 집합은 중복 제거와 비교에 적합하다고 정리하면서 기존 지식에 선택 기준이 더해졌다.

기본 문법은 이후의 객체 지향 실습과도 연결됐다. 함수의 입력과 반환 흐름은 객체의 메서드 호출로 확장됐고, 조건문과 타입 변환은 사용자 입력을 검증하는 예외 처리로 이어졌다. 특히 예외의 발생 위치, 처리 위치, 반환값을 구분해 보면서 프로그램의 실행 흐름을 더 구체적으로 이해할 수 있었다.

AI 활용과 Git 협업에서도 공통점을 발견했다. AI에게 상황, 요청 형식, 요청 내용을 빠짐없이 간략하게 전달할수록 비교적 정확한 답을 얻을 수 있었다. 그러나 AI의 답을 그대로 믿지 않고 코드를 실행해 정상·경계·실패 입력을 확인해야 했다. Git의 PR과 코드 리뷰 역시 변경 내용을 공유한 뒤 검토하고 반영한다는 점에서 같은 검증 태도와 연결됐다.

느낀 점과 어려웠던 점

파이썬 기본 문법을 이미 알고 있었지만, 다시 배우면서 놓치기 쉬운 이론과 주의점을 체계적으로 정리할 수 있었다. 단순히 문법을 사용할 수 있는 것과 동작 원리나 선택 이유를 설명할 수 있는 것은 다르다는 점을 느꼈다.

이번 주 학습에서 특별히 크게 힘들었던 점은 없었다. 다만 클래스 속성과 인스턴스 속성의 차이, 중첩된 예외 처리의 전파 경로, PR의 base·compare 브랜치처럼 정확한 흐름을 설명하려면 추가 정리가 필요한 부분은 있었다. 앞으로도 결과만 확인하지 않고 각 단계에서 어떤 값과 대상이 바뀌는지 추적해야겠다.

다음 주에 이어갈 것

파이썬 문법과 알고리즘을 더 깊고 정확하게 이해하기 위해 매일 코딩 테스트 문제를 풀 계획이다. 문제를 해결하는 데서 끝내지 않고 사용한 자료구조와 문법을 선택한 이유, 예외와 경계 조건까지 함께 점검하겠다.

객체 지향의 추상화·캡슐화·상속·다형성을 실제 클래스 설계에 적용하고 SOLID 원칙과의 관계도 살펴보고 싶다. Git에서는 PR의 base·compare 브랜치를 단계마다 확인하고, 병합 후 작업 브랜치를 정리하는 과정까지 포함해 전체 협업 흐름을 반복해서 연습하겠다. AI를 활용할 때도 요구사항과 검증 기준을 명확히 제시하고, 받은 답을 비판적으로 검토하는 습관을 이어갈 것이다.