콘텐츠로 이동

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

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

1. 컴퓨터의 3대 요소

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

부품 이름 주방 비유 역할 속도
CPU 요리사 👨‍🍳 실제 계산과 처리를 담당 (칼질, 볶기) 매우 빠름
RAM (메모리) 도마/조리대 🔪 현재 작업 중인 재료를 펼쳐놓는 곳 빠름
Disk (하드/SSD) 창고/냉장고 🧊 재료(파일)를 영구 보관하는 곳 느림

🛑 중요한 사실

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

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

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

  • 자원 관리: 어떤 요리사(CPU)에게 일을 시킬지, 도마(RAM) 공간을 얼마나 줄지 결정합니다.
  • 파일 시스템: 창고(Disk) 정리를 담당합니다. (파일, 폴더 관리)
  • 보호: 한 손님이 다른 손님의 요리를 망치지 않게 칸막이를 칩니다.

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

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

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

  • 절대 경로 (Absolute Path): "서울시 강남구..." 처럼 처음부터 끝까지 다 적는 주소
    • 예) C:\Users\User\Desktop\project\main.py
    • 예) /Users/ideabong/project/main.py
  • 상대 경로 (Relative Path): "현재 위치에서 오른쪽 방" 처럼 기준점(현재 위치)에서 설명하는 주소
    • 예) ./data/input.txt (내 위치의 data 폴더 안)
    • 예) ../images/logo.png (상위 폴더의 images 폴더 안)

작업 디렉토리 (Working Directory)

여러분이 터미널을 켰을 때, 혹은 파이썬을 실행시켰을 때 "현재 내가 서 있는 위치"가 어디인지가 정말 중요합니다. 나중에 lspwd 명령어로 자주 확인하게 될 것입니다.