파이썬 초급·중급·고급의 차이는 무엇으로 판단할까?
파이썬 초급·중급·고급의 차이는 무엇으로 판단할까?
파이썬 문법을 몇 개 아는지만으로 실력을 구분하기는 어렵습니다. 클래스나 비동기 문법을 사용했다고 자동으로 고급 개발자가 되는 것도 아닙니다. 더 현실적인 기준은 문제를 나누는 능력, 실패를 처리하는 능력, 선택의 이유를 설명하는 능력입니다.
단계별로 달라지는 질문
| 단계 | 주로 하는 질문 | 확인할 능력 |
|---|---|---|
| 초급 | 어떤 문법으로 구현할까? | 입력을 원하는 출력으로 바꾼다 |
| 중급 | 어떻게 나누고 검증할까? | 함수·모듈·테스트·예외 처리를 사용한다 |
| 고급 | 어떤 절충안이 적합할까? | 성능·운영·협업 비용을 함께 판단한다 |
초급: 작은 문제를 끝까지 해결하기
변수, 조건문, 반복문, 함수의 기본을 알고 짧은 프로그램을 혼자 완성하는 단계입니다. 정답 코드를 외우기보다 입력과 출력 예시를 직접 만들고 한 줄씩 실행 결과를 설명할 수 있어야 합니다.
scores = [72, 88, 91]
average = sum(scores) / len(scores)
print(f"평균: {average:.1f}")
빈 리스트라면 어떻게 되는지 질문해 보는 습관이 다음 단계로 이어집니다.
중급: 정상 상황 밖을 다루기
def average(scores):
if not scores:
raise ValueError("점수가 비어 있습니다.")
return sum(scores) / len(scores)
중급자는 기능을 함수와 모듈로 나누고, 잘못된 입력과 외부 서비스 실패를 처리하며, 테스트로 동작을 고정합니다. 패키지 환경과 로그, 파일 경로 같은 실행 조건도 관리합니다.
def test_average():
assert average([70, 80, 90]) == 80
고급: 정답보다 조건에 맞는 선택
고급 단계에서는 코드 한 조각보다 시스템 전체를 봅니다. 데이터가 천 개일 때와 십억 개일 때 같은 방법을 쓸 수 있는지, 장애가 나면 복구 가능한지, 팀원이 안전하게 변경할 수 있는지 판단합니다. 빠른 코드와 읽기 쉬운 코드 사이의 절충도 근거와 함께 설명합니다.
수준을 과장하는 신호
- 작은 문제에도 클래스를 억지로 사용합니다.
- 복잡한 한 줄 코드를 고급 문법이라고 생각합니다.
- 라이브러리 이름은 많이 알지만 오류 메시지를 읽지 않습니다.
- 테스트와 문서 없이 “제 컴퓨터에서는 됩니다”로 끝냅니다.
다음 단계로 가는 연습법
- 작은 프로그램을 끝까지 실행 가능한 상태로 만듭니다.
- 잘못된 입력 세 가지를 추가하고 처리합니다.
- 중복 코드를 함수로 나누고 테스트를 작성합니다.
- 다른 사람에게 코드를 보여 주고 수정하기 어려운 부분을 기록합니다.
- 같은 문제의 두 해결책을 비교해 선택 이유를 씁니다.
같은 기능을 세 단계로 개선해 보기
텍스트 파일의 숫자를 읽어 평균을 출력하는 프로그램을 예로 들 수 있습니다. 초급 단계에서는 정상 파일 하나를 처리합니다. 중급 단계에서는 파일 없음·빈 파일·숫자가 아닌 줄을 처리하고 함수와 테스트로 나눕니다. 고급 단계에서는 수백만 줄을 한꺼번에 메모리에 올리지 않는 방법, 실패 로그와 재실행 전략, 사용자가 이해할 오류 메시지까지 설계합니다.
자가 점검 과제
최근 만든 프로그램 하나를 골라 다음 질문에 답해 보십시오. 입력이 비면 어떻게 되는가, 함수 하나가 두 가지 일을 하지는 않는가, 테스트 없이도 수정이 안전한가, 다른 사람이 실행 방법을 알 수 있는가, 데이터가 백 배 커지면 무엇이 달라지는가. 답하지 못한 항목이 바로 다음 학습 주제입니다.
정리
초급·중급·고급은 문법 목록이 아니라 문제를 책임지는 범위의 차이입니다. 어려운 문법을 서둘러 배우기보다 작은 프로그램의 정확성, 실패 처리, 테스트, 설명 능력을 차례로 넓혀 가는 편이 실력을 단단하게 만듭니다.