콘텐츠로 이동

01. 컴퓨터의 정체 (주방에 비유하기)

"코딩은 컴퓨터라는 주방을 빌려서 요리를 하는 과정입니다."

1. 컴퓨터의 3대 요소

우리가 작성한 파이썬 코드가 실행되려면, 컴퓨터의 3가지 핵심 부품이 일해야 합니다.
가장 쉬운 비유인 주방으로 이해해 봅시다.

부품 이름 주방 비유 역할 특징
CPU 요리사 👨‍🍳 실제 계산과 처리를 담당 (칼질, 볶기) 엄청나게 빠름
RAM (메모리) 도마/조리대 🔪 현재 작업 중인 재료를 펼쳐놓는 곳 빠름, 전원 끄면 사라짐
Disk (하드/SSD) 창고/냉장고 🧊 재료(파일)를 영구 보관하는 곳 느림, 전원 꺼도 남음
graph LR
    Disk["🧊 창고 (Disk)<br>파이썬 파일(.py)"] 
    RAM["🔪 도마 (RAM)<br>변수 (a=10)"]
    CPU["👨‍🍳 요리사 (CPU)<br>실행 (Run)"]

    Disk -->|"1. 불러오기 (Load)"| RAM
    RAM -->|"2. 처리 요청"| CPU
    CPU -->|"3. 결과 반환"| RAM
    RAM -.->|"4. 저장 필요 (Save)"| Disk

    style Disk fill:#e1f5fe,stroke:#01579b
    style RAM fill:#fff9c4,stroke:#fbc02d
    style CPU fill:#f3e5f5,stroke:#4a148c

🛑 중요한 사실

  • 요리사(CPU)창고(Disk)에 있는 재료를 직접 요리할 수 없습니다.
  • 반드시 도마(RAM)로 재료를 가져와야(Load) 요리가 가능합니다.
  • 우리가 프로그램을 "실행"한다는 건, 창고에 있는 코드를 도마 위로 올리는 행위입니다.

2. 파이썬 코드로 보면?

이 비유를 실제 코딩 상황에 대입해보면 다음과 같습니다.

  • .py 파일: 아직 요리되지 않은 레시피 북 (창고에 있음)
  • 변수 (price = 3000): 도마 위에 썰어 둔 양파 조각 (RAM에 있음)
  • 에러 (Memory Error): 도마 위에 재료가 너무 많아서 더 이상 올릴 곳이 없을 때

3. OS (운영체제)의 역할

그렇다면 OS(Operating System, 윈도우/맥/리눅스)는 무엇일까요? 바로 주방을 총괄하는 지배인(Manager)입니다.

  • 자원 관리: 어떤 요리사(CPU)에게 일을 시킬지, 도마(RAM) 공간을 얼마나 줄지 결정합니다.
  • 파일 시스템: 창고(Disk) 정리를 담당합니다. (파일, 폴더 관리)

4. 파일 시스템과 경로 (Path)

컴퓨터 안의 모든 데이터는 파일(File)이고, 이 파일들이 담긴 상자가 폴더(Directory)입니다. 우리가 코딩할 때 가장 많이 겪는 에러는 "그 파일 못 찾겠는데요?" (FileNotFoundError) 입니다.

이것은 지배인(OS)에게 주소(Path)를 잘못 알려줬기 때문입니다.

  • 절대 경로 (Absolute Path): 처음부터 끝까지 다 적는 주소 ("서울시 강남구...")
  • C:\Users\User\Desktop\project\main.py

  • 상대 경로 (Relative Path): "현재 위치"를 기준으로 설명하는 주소 ("여기서 오른쪽 방")

    • . (점): 현재 폴더
    • .. (점점): 상위 폴더
    • ./data/input.txt (내 위치의 data 폴더 안)
    • ../images/logo.png (상위 폴더의 images 폴더 안)

AI와 협업할 때의 팁

AI에게 코드를 짜달라고 할 때, 내 컴퓨터의 절대 경로를 알려주면 AI가 짠 코드는 다른 사람 컴퓨터에서 작동하지 않습니다. 항상 "현재 프로젝트 폴더 기준의 상대 경로"를 사용하는 습관을 들이세요. AI에게도 "데이터는 ./data 폴더에 있어"라고 말하는 것이 좋습니다.

작업 디렉토리 (Working Directory)

터미널에서 명령어를 칠 때 "내가 현재 어느 폴더에 서 있는지"가 가장 중요합니다. 엉뚱한 방에 서서 "냉장고 열어줘"라고 하면 OS는 못 알아듣습니다. 다음 강의에서 ls, pwd 명령어로 이를 확인하는 법을 배웁니다.