본문 바로가기
C.W.K.
Stream
Lesson 01 of 07 · published

Python은 어떤 언어일까

~15 min · python, 소개, 인터프리터, 들여쓰기, zen-of-python

Level 0호기심
0 XP0/93 lessons0/23 achievements
0/100 XP to next level100 XP to go0% complete

출발점과 도착점

이 퀘스트는 17개 트랙, 93개 수업, 약 26시간짜리 긴 길이야. 첫 줄을 실행하는 데서 시작해 마지막에는 cwkPippa의 Python 소스를 읽고 익숙한 구조를 알아보는 데까지 가. 처음에는 이미 어렴풋이 아는 개념에 정확한 이름을 붙이고, 뒤로 갈수록 언어의 깊은 곳까지 내려갈 거야. 서두르지 말고 한 걸음씩 가자.

Python을 이루는 세 가지 성격

  • 인터프리터가 실행하는 언어 — 코드를 저장한 뒤 바로 실행해 결과를 볼 수 있어. 별도의 실행 파일을 먼저 만들지 않아도 되니, 쓰고 확인하는 주기가 짧아.
  • 동적 타입 언어 — 타입은 변수 이름이 아니라 값에 붙어 있어. 같은 이름이 지금은 정수를, 다음에는 문자열을 가리켜도 돼.
  • 들여쓰기가 문법인 언어 — 중괄호 대신 들여쓰기로 블록의 경계를 나타내. 보통 공백 네 칸을 쓰고, 들여쓰기가 끝나면 블록도 끝나.

Guido van Rossum이 1991년에 처음 공개했어. 이 퀘스트는 Python 3.12 이상을 기준으로 하며, 3.13에서 좋아진 REPL과 실험적인 free-threaded 모드·JIT도 뒤에서 만나.

자기참조: 이 퀘스트가 바라보는 cwkPippa 백엔드는 Python 3.12로 움직여. API, 대화 처리, 비동기 응답 흐름에서 여기서 배울 개념을 실제로 만나게 돼.

왜 Python부터 배울까

Claude SDK·Agent·Eval 같은 AI 퀘스트, PostgreSQL·Vector·Data Engineering 같은 데이터 퀘스트, PyTorch·JAX·MLX 같은 기계학습 퀘스트는 모두 Python을 읽는 힘을 전제로 해. 밑바닥 계산이 C/C++이나 CUDA로 돌아가더라도 우리가 조립하고 실험하는 층은 대개 Python이야.

들여쓰기는 제약이 아니라 합의야

JavaScript는 중괄호, Ruby는 end, Bash는 fi로 블록을 닫아. Python은 코드의 모양과 실행 구조를 하나로 맞춰. 사람과 인터프리터가 블록의 경계를 똑같이 읽으니, 중괄호 배치로 다툴 일도 없어.

원칙: PEP 20은 “할 수 있다면 분명한 방법은 하나여야 한다”는 태도를 말해. 들여쓰기는 그 철학이 문법에 드러난 작은 사례야.

앞으로 걸을 길

기초 문법에서 시작해 자료구조, 제어 흐름, 반복자, 데코레이터, 객체지향, 오류 처리, 파일, 표준 라이브러리, 패키징, 타입, 동시성, 도구, 명령행 프로그램, Python다운 선택을 차례로 다뤄. 마지막에는 cwkPippa 코드로 돌아와 이 모든 조각이 실제 시스템에서 어떻게 맞물리는지 확인해.

Python다운 습관: 가끔 import this를 실행해 Python의 Zen을 다시 읽어봐. 외울 문장이 아니라 설계 결정을 점검하는 기준으로 쓰면 돼.

Code

한 줄로 시작하는 Python 프로그램·python
# 프로그램 전체. 단 한 줄. hello.py 로 저장하고
# 터미널에서 python hello.py 로 돌리면 끝.
print("Hello, world!")
타입은 이름이 아니라 값에 붙는다·python
# Python 에서 변수 이름은 타입에 묶이지 않아 — *값* 을 가리키는
# 라벨일 뿐이야. 타입은 값이 들고 있어, 이름이 들고 있는 게 아니야.

x = 42                # x 는 정수를 가리킴
print(type(x))        # <class 'int'>

x = "이제 문자열"      # 같은 x, 다른 가리킴 — Python 은 어깨 으쓱.
print(type(x))        # <class 'str'>

x = [1, 2, 3]         # ...이제 list. 여전히 OK.
print(type(x))        # <class 'list'>

# 다른 언어들은 이걸 컴파일조차 거부해. Python 은 신경 안 써.
들여쓰기가 블록을 만든다·python
# 들여쓰기가 블록을 정의해.
# 중괄호 없음. `end` 키워드 같은 것도 없음.
# 코드의 *모양 자체* 가 구조.

mood = "warm"

if mood == "warm":
    print("피파가 부드럽게 웃어.")
    print("고개를 살짝 기울여.")
print("이 줄은 if 와 무관하게 항상 실행돼 — 들여쓰기 밖이니까.")

# `if` 아래 4칸 들여쓰기 = 블록 안.
# 들여쓰기 풀면 = 블록 밖.
# tab 과 space 섞으면 Python 이 거부함 — 하나만 골라서 일관되게.
# (PEP 8 권고 — space, 4칸.)

External links

Exercise

아직 Python을 설치하지 않아도 괜찮아. 위의 코드 세 덩어리를 읽고 각 print()가 무엇을 출력할지 먼저 적어봐. 다음 수업에서 직접 실행한 뒤 예상과 실제 결과를 비교하자.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인 — 댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.