본문 바로가기
강의

바이브코딩 강의 2편 — 까만 화면이 무섭지 않게: 터미널·명령어·경로·파일시스템

버튼 하나 없는 까만 화면(터미널)이 무서운 건 어려워서가 아니라 낯설어서다. AI에게 일을 시키기 전에 알아야 할 최소한의 개념 — 터미널·명령어·경로·파일시스템 — 을 일상 비유로 풀고, 명령어 4개면 시작이 충분하다는 걸 보여준다.

까만 화면이 무서운 건 어려워서가 아니라 낯설어서다. 클릭할 버튼이 없을 뿐, 하는 일은 폴더 열기·파일 만들기·위치 확인처럼 평범하다.

이 글 3줄 요약

  • 터미널은 컴퓨터에게 글자로 심부름 시키는 문자 대화창이고, 명령어는 그 심부름의 정해진 말투다. pwd·cd·ls·mkdir 네 개면 시작은 충분하다.
  • 경로(path)는 파일이 사는 주소다. 절대경로는 전체주소라 어디서든 안전하고, 상대경로는 현재 위치 기준이라 편하지만 위치가 바뀌면 달라진다.
  • 실체는 하나인데 주소는 여럿일 수 있다. 같은 폴더에 이름표 두 개가 붙거나, 바로가기(심볼릭 링크)로 연결된 경우다. 주소가 둘이라고 파일이 둘인 게 아니다.

이 글은 AI 바이브코딩 강의 12부작 시리즈의 2편이다. 코드를 한 줄도 몰라도 AI에게 일을 시켜 프로그램을 만드는 법을 다룬다. 아직 1편을 안 봤다면 먼저 보고 오는 걸 권한다. 이번 편의 목표는 단 하나다. 처음 개발 도구를 켰을 때 마주치는 그 까만 화면을, 더는 무서워하지 않게 만드는 것이다.

오늘 답할 질문 — 까만 화면에 뭘 치라는 거야

AI로 뭔가 만들어보려고 개발 도구를 처음 켜면, 대개 이런 화면을 만난다. 버튼도 없고, 메뉴도 없고, 그냥 까만 바탕에 글자만 깜빡인다. 여기서 대부분 멈춘다. "도대체 여기다 뭘 어떻게 치라는 거야?"

먼저 안심시키고 시작하자. 이 화면이 무서운 건 어려워서가 아니라 낯설어서다. 우리가 평소 쓰는 프로그램은 클릭할 버튼이 화면에 그려져 있다. 이 까만 화면은 그 버튼이 없을 뿐, 하는 일은 똑같이 평범하다. 폴더를 열고, 파일을 만들고, 지금 내 위치를 확인하는 정도다. 이 글이 끝나면 이 화면이 "글자로 심부름 시키는 창구"로 보이게 된다.

터미널은 창구, 셸은 통역사

가장 먼저 정체를 밝힐 게 그 까만 화면 자체다. 이걸 **터미널(terminal)**이라고 부른다. 터미널은 컴퓨터와의 문자 대화창이다. 마우스로 버튼을 클릭하는 대신, 글자로 명령을 적어 시키는 창구라고 보면 된다. 카운터에 서서 직원에게 "이거 해줘"라고 말로 시키는 것과 같다. 말(글자)만 정확하면 바로 실행된다.

그런데 내가 한국어 감각으로 적은 명령을 컴퓨터가 곧바로 알아듣는 건 아니다. 그 사이에서 통역하는 존재가 있다. 이걸 **셸(shell)**이라고 부른다. 셸은 터미널 창 안에서 내 말을 알아듣고 컴퓨터가 이해하는 형태로 옮겨 전달하는 통역사다. 가끔 들리는 bash나 zsh 같은 단어는 겁먹을 것 없이, 그냥 통역사의 이름일 뿐이다.

정리하면 이렇다. 터미널은 대화가 오가는 "창"이고, 셸은 그 안에서 통역하는 "귀와 입"이다. 실제로는 이 둘을 합쳐서 그냥 "터미널"이라고 뭉뚱그려 부르는 경우가 많다. 지금은 "까만 화면에 글자로 심부름을 시키면, 안에서 통역해서 실행해준다" 정도만 감을 잡으면 충분하다.

명령어는 정해진 말투의 심부름

터미널에 적는 그 글자 하나하나가 **명령어(command)**다. 명령어는 정해진 말투로 시키는 심부름이라고 보면 된다. 택시 기사에게 목적지를 말하는 것과 비슷하다. 대충 말하면 못 알아듣지만, 정해진 말투로 정확히 말하면 100% 실행된다. 처음 알아둘 명령어는 딱 네 개다.

명령어하는 일
pwd"나 지금 어디 있어?"현재 서 있는 폴더의 주소를 알려준다. 길 잃으면 제일 먼저 치는 명령이다.
ls"여기 뭐 들었어?"현재 폴더 안의 파일·폴더 목록을 보여준다. 서랍을 열어 안을 들여다보는 것이다.
cd"저 폴더로 가"다른 폴더로 이동한다. cd 프로젝트는 "프로젝트 방으로 들어가", cd ..는 "한 칸 밖으로 나가"라는 뜻이다.
mkdir"폴더 하나 만들어"새 폴더를 만든다. make directory(디렉토리=폴더)의 줄임말이다.

이 네 개가 눈에 익으면 터미널에서 벌어지는 일의 대부분을 읽을 수 있다. 여기서 가장 중요한 이야기를 미리 해두겠다. 이 명령어들을 외울 필요가 없다. 뜻만 알면 된다. 실제로 복잡한 명령이 필요한 순간은 AI가 대신 만들어서 쳐준다. 여러분이 할 일은 그게 무슨 뜻인지 "아, 이건 폴더 만드는 거구나" 하고 읽어내는 것뿐이다.

경로는 파일이 사는 주소

명령어 다음으로 자주 마주치는 개념이 **경로(path)**다. 경로는 파일이 사는 주소다. 사람에게 집 주소가 있듯, 컴퓨터 속 모든 파일에도 주소가 있다. 그리고 이 주소를 적는 방식이 두 가지다.

첫째는 절대경로다. 도로명 전체주소라고 보면 된다. 맨 꼭대기부터 시작해 끝까지 다 적은 주소다. 예를 들어 /home/user/project/data.csv 같은 형태다. 이 주소의 장점은 내가 지금 어디에 서 있든 항상 똑같은 그 파일을 가리킨다는 것이다.

둘째는 상대경로다. "여기서 두 집 건너"처럼 지금 내가 서 있는 위치를 기준으로 삼는 주소다. ./data.csv는 "이 폴더 안의 data.csv", ../data.csv는 "한 칸 위 폴더의 data.csv"라는 뜻이다. 짧아서 편하지만, 내가 어디에 있느냐에 따라 가리키는 곳이 달라진다는 특징이 있다.

AI에게 일을 시킬 때 "그 파일"이라고만 하면 못 찾는다. 주소를 줘야 한다. 그리고 헷갈릴 때는 절대경로(전체주소)를 주는 게 언제나 안전하다. 내 위치와 상관없이 항상 같은 곳을 가리키기 때문이다.

파일시스템은 컴퓨터의 서랍장

파일에 주소가 있다면, 그 파일들이 쌓여 있는 구조 전체를 파일시스템이라고 부른다. 컴퓨터의 커다란 서랍장이라고 보면 된다. 몇 가지만 알아두면 된다.

첫째, 폴더 안에 폴더가 있고, 그 안에 또 파일이 있다. 아파트로 치면 동에서 호수로, 호수에서 방으로 내려가는 계층 구조다. 이 전체 구조가 파일시스템이다.

둘째, 이 서랍장의 맨 위를 **루트(뿌리)**라고 부른다. 모든 주소가 여기서 시작된다. 윈도우에서는 C:\, 리눅스에서는 /가 그 꼭대기다. 건물로 치면 정문 같은 곳이다.

셋째, 터미널은 항상 내가 지금 어느 폴더에 서 있는지를 기억한다. 이게 바로 상대경로("여기서 두 칸 위")가 작동하는 이유다. 기준이 되는 "여기"를 터미널이 늘 알고 있기 때문이다.

한 가지 헷갈리기 쉬운 용어를 짚고 넘어가자. 폴더(folder)와 디렉토리(directory)는 완전히 같은 말이다. 개발자들이 습관적으로 "디렉토리"라고 부를 뿐, 여러분이 아는 그 폴더가 맞다. 앞에서 mkdir이 make directory의 줄임말이라고 했는데, 결국 "폴더 만들기"라는 뜻이다.

실전 사례 — 같은 폴더인데 주소가 두 개?

여기서 실제 개발 현장 이야기를 하나 하겠다. 조금 앞서가는 내용이지만, "실체 하나에 주소 여럿"이라는 감각을 잡기에 딱 좋은 사례라 소개한다.

나는 매일 두 세계를 오간다. 코딩과 버전 관리는 WSL(윈도우 안에 깔린 리눅스)에서 하고, 실제 프로그램 실행은 윈도우에서 한다. 개발 도구는 리눅스에서 더 잘 돌고, 만든 프로그램은 결국 윈도우 쓰는 사람이 쓰기 때문이다. 그래서 같은 폴더를 두 형식의 주소로 부르게 된다.

어디서 부르냐주소 형태
윈도우에서C:\Users\user\project
WSL(리눅스)에서/mnt/c/Users/user/project

핵심은 이거다. 이 둘은 이름만 다른 같은 폴더다. WSL이 C 드라이브를 /mnt/c라는 문으로 연결해 둔 것뿐이다. 그래서 한쪽에서 만든 파일이 다른 쪽에서 그대로 보인다. 주소가 둘이라고 파일이 둘로 복사되는 게 아니라, 이름표 두 개가 하나의 실체를 가리키는 것이다.

한 걸음 더 — 심볼릭 링크는 파일의 바로가기

앞의 이야기를 조금만 더 밀고 나가면 심볼릭 링크라는 개념에 닿는다. 어렵게 들리지만, 이미 매일 쓰고 있는 것이다. 바탕화면의 바로가기 아이콘, 그게 바로 이것이다. 그 자리에 파일이 있는 것처럼 보여도 실체는 딴 곳에 있다. 개발 세계에서는 이걸 심볼릭 링크라 부르고, 파일뿐 아니라 폴더나 설정 파일에도 걸 수 있다.

그래서 같은 파일이 두 곳에 보인다고 해서 복사본이 두 개인 게 아니다. 실체 하나에 바로가기 여럿이 붙어 있는 상태가 오히려 잘 설계된 것이다. 어느 쪽을 열어도 같은 파일이라, 두 곳을 따로 맞춰줄 필요가 없기 때문이다. 만약 진짜 위치가 궁금하면 readlink -f라는 명령 한 줄로 확인할 수 있다.

가끔 어떤 도구가 "바로가기로는 못 고친다, 실제 경로로 와라"라고 요구할 때가 있는데, 이건 고장이 아니라 안전장치다. 시키는 대로 진짜 위치로 가면 된다. 앞에서 본 WSL 연결도 같은 원리다. 설정 파일 실체는 C 드라이브 한 곳에 두고 링크로 연결해서, 복사본 두 개를 따로 관리하는 지옥을 피하는 것이다.

이 한 컷이 터미널의 90%다

지금까지의 개념을 실제 화면 하나로 묶어보자. 아래는 명령어 네 개만으로 흔히 하는 일이다.

$ pwd
/mnt/c/Users/user
$ cd project
$ ls
data.csv   README.md
$ mkdir output
$ ls
data.csv   README.md   output

한 줄씩 읽어보면 이렇다. 먼저 pwd로 "나 지금 어디야?"를 물으니 현재 위치를 답해준다. cd project로 project 폴더로 들어가고, ls로 "뭐가 들었나" 확인하니 파일 두 개가 보인다. mkdir output으로 output 폴더를 새로 만들고, 다시 ls로 확인하니 방금 만든 폴더가 목록에 추가돼 있다.

딱 네 개면 시작은 충분하다. pwd(어디), cd(이동), ls(목록), mkdir(만들기). 나머지 어려운 건 AI가 대신 쳐주고, 여러분은 "이게 무슨 뜻이구나"만 읽으면 된다.

흔한 오해 두 가지 바로잡기

까만 화면 앞에서 사람들이 겁먹는 데는 두 가지 잘못된 생각이 있다. 짚고 넘어가자.

첫째, "명령어를 다 외워야 한다"는 오해다. 수십 개 명령어를 통째로 암기하려다 대부분 첫날 포기한다. 실제로는 외울 필요가 없다. 뜻만 알면 AI가 쳐준다. pwd·cd·ls·mkdir 네 개만 눈에 익으면 충분하고, 나머지는 "이거 해줘" 하면 AI가 명령어를 만들어 준다.

둘째, "경로 하나 잘못 치면 컴퓨터가 망가진다"는 오해다. 무서워서 아무것도 못 누르고 화면만 쳐다보는 경우다. 하지만 대부분은 "그런 파일 없음"이라는 에러 한 줄로 끝난다. 주소가 틀리면 그냥 못 찾을 뿐, 다시 확인하면 그만이다. 진짜 위험한 명령은 따로 있고, 그런 건 배울 때 꼭 표시해 준다.

흔한 오해실제
명령어를 다 외워야 한다뜻만 알면 된다. 나머지는 AI가 쳐준다.
경로 잘못 치면 컴퓨터가 망가진다대부분 "파일 없음" 에러로 끝난다. 다시 치면 그만이다.

딱 세 줄만 가져가기

모듈 1에서 기억할 건 세 줄이면 된다.

첫째, 터미널은 문자 대화창이고, 명령어는 정해진 말투의 심부름이다. pwd·cd·ls·mkdir 네 개면 시작은 충분하고, 나머지는 AI가 쳐준다.

둘째, 경로는 파일의 주소다. 절대경로는 전체주소라 어디서든 안전하고, 상대경로는 "여기서 몇 칸"이라 편하다. 헷갈리면 절대경로를 쓰면 된다.

셋째, 실체는 하나인데 주소는 여럿일 수 있다. C:\.../mnt/c/...가 같은 폴더의 두 이름인 것처럼, 바로가기(심볼릭 링크)도 같은 원리다.

숙제는 없다. 단, 터미널을 한 번 켜서 pwd, ls, cd 세 개만 직접 쳐보면 오늘은 성공이다. 다음 편에서는 "실수해도 어제로 되돌릴 수 있다"는 자신감의 정체, 개발자의 안전벨트인 Git을 다룬다.

다음 편 — 바이브코딩 강의 3편

자주 묻는 질문

명령어를 다 외워야 하나요? 수십 개는 되어 보이던데요.

외울 필요 없습니다. 뜻만 알면 됩니다. 실제로 처음 필요한 건 네 개뿐이에요. pwd(나 어디), cd(이동), ls(목록), mkdir(폴더 만들기)입니다. 이 네 개가 눈에 익으면 터미널에서 벌어지는 일의 대부분을 읽을 수 있습니다. 나머지 복잡한 명령어는 AI가 대신 만들어 쳐줍니다. 여러분은 그게 무슨 뜻인지 알아보기만 하면 됩니다. 명령어 암기는 목표가 아니라 함정입니다.

경로 하나 잘못 치면 컴퓨터가 망가지지 않나요?

대부분은 그냥 '그런 파일 없음'이라는 에러 한 줄로 끝납니다. 주소를 틀리면 컴퓨터가 못 찾을 뿐, 무언가가 부서지지는 않습니다. 다시 확인해서 제대로 치면 그만입니다. 물론 진짜로 위험한 명령이 따로 있긴 합니다. 그런 건 배울 때 꼭 따로 표시해 드리니, 표시 안 된 기본 명령은 마음 편히 쳐보셔도 됩니다.

절대경로와 상대경로, 뭘 써야 하는지 헷갈립니다.

헷갈리면 절대경로(전체주소)를 쓰세요. 언제나 안전합니다. 절대경로는 맨 꼭대기부터 끝까지 다 적은 주소라, 내가 지금 어디에 서 있든 항상 같은 파일을 가리킵니다. 상대경로는 '여기서 두 칸 위'처럼 현재 위치 기준이라 편하지만, 내 위치가 바뀌면 가리키는 곳도 바뀝니다. 특히 AI에게 파일을 알려줄 때는 절대경로로 주는 편이 실수가 적습니다.

같은 폴더인데 주소가 두 개라는 게 무슨 말인가요?

하나의 실제 폴더에 이름표가 두 개 붙어 있는 상황입니다. 예를 들어 윈도우에서는 그 폴더를 C 드라이브 주소로 부르고, 윈도우 안에 깔린 리눅스(WSL)에서는 같은 폴더를 다른 형식의 주소로 부릅니다. 주소가 둘이라고 파일이 둘로 복사되는 게 아닙니다. 한쪽에서 만든 파일이 다른 쪽에서 그대로 보입니다. 바탕화면 바로가기 아이콘이 원본은 하나인 것과 똑같은 원리입니다.

이걸 다 익혀야 AI로 뭔가 만들 수 있나요?

다 익힐 필요는 없습니다. 이 글에 나온 개념들을 '완벽히 다룬다'가 아니라 '까만 화면이 무슨 창인지 안다' 수준이면 시작에 충분합니다. 터미널이 문자로 심부름 시키는 창구라는 것, 경로가 파일의 주소라는 것, 이 두 가지 감만 있으면 AI와 대화하며 나머지를 채워갈 수 있습니다. 완벽한 준비보다 일단 터미널을 한 번 켜보는 게 훨씬 빠른 길입니다.

관련 글