98. 중급 용어 보강

이 부록은 중급편에 등장한 중급 수준의 기술 용어를 한자리에 모아 풀이합니다. 본문 첫 등장 자리에서 이미 설명했지만, 헷갈릴 때 빠르게 찾아볼 수 있도록 정리했습니다.
📌 초급편의 98 기초 용어 사전(JSON·IDE·venv 등 범용 용어)과 99 부록 용어집(초급 학습 개념)도 함께 참고하세요. 이 사전은 그 위층, 중급 개념을 다룹니다.

🏗️ 객체 지향 (OOP)

용어한 줄 풀이처음 등장
OOPObject-Oriented Programming. 관련 데이터와 동작을 객체로 묶는 프로그래밍 방식.11장
클래스(class)객체를 찍어내는 설계도(붕어빵 틀).11장
객체/인스턴스클래스로 만든 실체(찍어낸 붕어빵).11장
self메서드를 호출한 객체 자신. obj.method()objself로 들어감.11장
속성(attribute)객체가 가진 데이터(self.name). 인스턴스 변수라고도 함.11장
메서드(method)클래스 안에 정의된, 객체의 동작을 나타내는 함수.11장
__init__객체 생성 시 자동 호출되는 초기화 메서드.11장
클래스 변수모든 객체가 공유하는 변수(클래스 본문에 직접 정의).11장
상속(inheritance)부모 클래스의 기능을 자식이 물려받는 것.12장
오버라이드(override)자식이 부모와 같은 이름의 메서드를 다시 정의하는 것.12장
super()부모 클래스를 가리키는 말. 부모 메서드를 재사용할 때.12장
매직/던더 메서드__str__·__eq__처럼 밑줄 둘로 감싸인, Python이 자동 호출하는 특별 메서드.11·12장
캡슐화(encapsulation)데이터를 메서드 뒤로 감싸 안전하게 다루는 것. _이름은 "내부용" 신호.12장
@classmethod객체가 아닌 클래스 자체와 관련된 메서드. 첫 인자로 cls(클래스)를 받음.20장

🔁 컴프리헨션과 이터레이션

용어한 줄 풀이처음 등장
컴프리헨션반복+생성을 한 줄로 쓰는 표현([식 for x in 반복]).13장
이터러블(iterable)for로 돌 수 있는 것(리스트·문자열·딕셔너리 등).14장
이터레이터(iterator)값을 하나씩 꺼내주는 장치. next()로 다음 값을 얻음.14장
StopIteration이터레이터에 더 꺼낼 값이 없을 때 나는 예외(반복의 끝 신호).14장
제너레이터(generator)yield로 값을 하나씩 만들어내는 함수. 메모리 효율적.14장
yield값을 내놓고 그 자리에서 멈췄다 다음 호출 때 이어 달리는 키워드.14장
지연 평가(lazy)값을 미리 다 만들지 않고 필요할 때 하나씩 만드는 방식.14장

🧩 함수와 타입

용어한 줄 풀이처음 등장
일급 함수함수를 값처럼 다루는 성질(변수에 담고·넘기고·반환).17장
콜백(callback)다른 함수에 인자로 넘겨, 나중에 호출되게 하는 함수.17장
클로저(closure)안쪽 함수가 바깥 변수를 기억한 채 반환되는 현상.17장
nonlocal클로저 안에서 바깥 함수의 변수를 수정하겠다는 선언.17장
데코레이터(decorator)함수를 감싸 원래 코드를 건드리지 않고 기능을 더하는 도구. @로 적용.17장
functools.wraps데코레이터가 원래 함수의 이름·문서를 보존하게 해주는 도구.17장
타입 힌트인자: 타입, -> 반환타입으로 타입을 표시하는 것. 강제는 아님.18장
동적 타이핑변수 타입을 실행 중에 그때그때 정하는 Python의 방식.18장
점진적 타이핑원하는 곳에만 타입 힌트를 붙일 수 있는 방식.18장

📦 모듈·파일·도구

용어한 줄 풀이처음 등장
모듈(module)함수·클래스를 담은 하나의 .py 파일.15장
패키지(package)모듈들을 담은 폴더(__init__.py로 표시).15장
네임스페이스이름이 사는 공간. 모듈.이름으로 충돌을 피함.15장
if __name__ == "__main__"파일을 직접 실행할 때만 도는 코드를 구분하는 관용구.15장
with 구문파일 등 자원을 자동으로 닫아주는 구문.16장
영속성(persistence)프로그램이 꺼져도 데이터가 파일에 남는 성질.16장
가상환경프로젝트별 격리된 Python·라이브러리 공간(venv).19장
uvvenv·pip를 통합한 빠른 현대 패키지·환경 도구(2026).19장
포매터(formatter)코드를 스타일 규칙에 맞게 자동 정리하는 도구(Ruff 등).19장
린터(linter)코드의 문제·스타일 위반을 찾아주는 도구.19장
Ruff포매팅·린팅을 한 번에 하는 빠른 도구(2026 표준).19장
테스트(test)코드가 의도대로 동작하는지 자동 검증하는 코드.19장
pytest가장 널리 쓰이는 테스트 도구. test_ 함수를 자동 실행.19장

⚠️ 중급 단골 실수 모음

실수올바른 방법
메서드 정의에서 self 빠뜨림모든 메서드 첫 인자는 self
객체 속성을 self. 없이 접근항상 self.name처럼
if의 두 위치 혼동(컴프리헨션)거르기는 뒤 if, 변환은 앞 if...else
제너레이터를 두 번 순회일회용! 다시 쓰려면 list()로 받기
데코레이터에서 결과 return 누락wrapperfunc() 결과를 반환
@functools.wraps 누락원래 함수 이름 보존 위해 붙이기
타입 힌트가 강제될 거라 기대힌트는 표시일 뿐, 검사는 도구가
CSV 쓸 때 newline="" 누락빈 줄 방지 위해 꼭 넣기
파일 with 없이 열고 안 닫음항상 with open(...) as f:
새 프로젝트에 가상환경 안 만듦시작 시 venv/uv부터
🏠 목차로 돌아가기 | ▶️ 99. 중급 치트시트와 다음 단계