내 컴퓨터를 끄면 내가 만든 프로그램도 같이 꺼질까? 정답은 경우에 따라 다르다. 그리고 그 경우를 내가 정할 수 있다.
이 글 3줄 요약
- 코드가 실제로 돌아가는 곳은 셋이다. 로컬(내 PC), 서버(24시간 켜둔 컴퓨터), 클라우드(남의 서버를 빌려 쓰는 것). 고르는 질문은 단 하나, 내 PC를 꺼도 이게 살아있어야 하나이다.
- 프로그램의 비밀번호(API 키)는 코드에 박지 말고 .env라는 금고 파일에 따로 보관한다. 코드에 박아두면 공유하는 순간 유출돼 요금 폭탄을 맞는다.
- 가상환경(venv)은 프로젝트별 전용 공구함이다. 프로젝트끼리 부품이 섞여 서로 망가지지 않게 나눠 둔다. AI가 알아서 챙겨주니 개념만 알면 된다.
이 글은 AI 바이브코딩 강의 12부작 시리즈의 4편이다. 바이브코딩(내가 코드를 직접 치는 대신 AI에게 말로 시켜서 프로그램을 만드는 방식)이 처음이라면 1편부터 보면 흐름이 잡힌다. 이번 편은 개발 지식이 전혀 없어도 따라올 수 있게, AI가 만들어준 프로그램이 대체 어디서 돌아가는지를 다룬다.
오늘의 질문 — 내 컴퓨터를 끄면 프로그램도 꺼지나
AI에게 시켜서 프로그램 하나를 만들었다고 하자. 그 프로그램은 지금 어딘가에서 실제로 돌아가고 있다. 그런데 그 어딘가가 정확히 어디인지 아는 사람은 의외로 적다.
그래서 던지는 질문이 이거다. 내 컴퓨터를 끄면, 내가 만든 프로그램도 같이 꺼질까?
정답은 경우에 따라 다르다. 내 PC 안에 둔 프로그램은 PC를 끄는 순간 같이 멈춘다. 반대로 남의 컴퓨터(클라우드)에 올려둔 프로그램은 내 PC를 꺼도 계속 돈다. 중요한 건 이 경우를 내가 정할 수 있다는 사실이다. 오늘은 어디에 둬야 하는지 판단하는 감각과, 프로그램이 숨겨야 할 비밀번호를 안전하게 다루는 법을 배운다.
코드가 도는 세 장소 — 주방·무인매장·세 든 가게
같은 코드라도 어디서 도느냐에 따라 성격이 완전히 달라진다. 코드가 살 수 있는 곳은 크게 셋이다.
| 장소 | 한 줄 정의 | 비유 |
|---|---|---|
| 로컬 | 내 컴퓨터 안에서 돌아가는 것 | 우리 집 주방 — 내가 끄면 꺼진다 |
| 서버 | 계속 켜두라고 둔 전용 컴퓨터 | 24시간 무인 매장 — 불을 안 끈다 |
| 클라우드 | 남의 서버를 빌려 쓰는 것 | 세 든 가게 — 관리는 건물주가 |
로컬(우리 집 주방)은 내 손이 닿는 내 컴퓨터다. 공짜고 빠르지만, 내가 자리를 비우면, 즉 PC를 끄면 멈춘다. 혼자 쓰는 도구, 개발하고 테스트하는 중인 것, 내 PC를 계속 켜둘 수 있는 일에 어울린다.
서버(24시간 무인 매장)는 사람이 없어도 불을 켜둔 채 돌아가는 컴퓨터다. 여기서 짚어둘 게 있다. 서버라는 건 특별한 기계가 아니라, 24시간 켜두는 컴퓨터를 부르는 이름일 뿐이다. 내 PC를 안 끄고 계속 두면 그것도 서버가 된다. 밤새 알림을 보내는 봇, 남들이 아무 때나 접속하는 서비스처럼 항상 켜져 있어야 하는 일에 쓴다.
클라우드(남의 건물에 세 든 매장)는 서버를 직접 사지 않고 빌려 쓰는 방식이다. 전기·고장·백업 같은 관리는 건물주(회사)가 대신 해준다. 내 PC를 꺼도 살아있어야 하는 홈페이지, 관리에서 손을 떼고 싶을 때 쓴다. 대표적인 클라우드 이름으로 홈페이지를 올리는 Vercel(버셀)·Netlify(넷리파이), 큰 회사용인 AWS(아마존 웹 서비스) 등이 있다. 이름은 몰라도 된다. 남의 컴퓨터를 빌린다는 것만 기억하면 된다.
실전 사례 — 봇은 내 PC에, 홈페이지는 클라우드에
말로만 들으면 감이 잘 안 온다. 강사가 실제로 어떻게 나눠 쓰는지를 보면 단번에 이해된다. 핵심은 하나를 고르는 게 아니라, 성격에 따라 둘을 나눠 쓴다는 것이다.
매일 정해진 시각에 도는 자동화 봇은 내 PC에서 돌린다. 어차피 PC는 늘 켜두니 서버비가 0원이고, 나만 쓰는 도구라 남이 접속할 일도 없다. 여기에 굳이 클라우드를 쓸 이유가 없다.
반면 신청을 받는 홈페이지는 사정이 다르다. 손님이 새벽에도 들어온다. 내 PC가 꺼졌다고 사이트가 죽으면 안 되니, 클라우드(Vercel)에 올려서 내 PC와 무관하게 24시간 살아있게 했다. 이렇게 나누면 꼭 필요한 곳에만 돈을 쓰게 되어 월 서버비가 최소로 줄어든다.
판단 기준은 하나다. 내 PC가 꺼져도 살아있어야 하나? 예면 클라우드, 아니면 로컬. 이 질문 하나면 대부분 정리된다.
| 로컬(내 PC)로 충분한 경우 | 클라우드로 올려야 하는 경우 |
|---|---|
| 나 혼자 쓰는 도구 | 남들이 아무 때나 접속하는 것 |
| 개발·테스트 중인 것 | 홈페이지·쇼핑몰·예약 사이트 |
| 정해진 시각에만 도는 자동화 | 내 PC를 꺼도 살아있어야 하는 것 |
| 내 PC를 계속 켜둘 수 있을 때 | 관리에서 손 떼고 싶을 때 |
| 장점: 서버비 0원, 설정 간단 | 장점: 24시간 생존, 관리는 회사가 |
| 대가: PC 꺼지면 같이 멈춤 | 대가: 무료 구간 넘으면 사용료 |
AI에게 만들라고 할 때 이 답을 같이 알려주면 알아서 맞게 세팅해 준다. "이건 나 혼자 쓸 거야"라고 하면 로컬로, "손님이 접속할 사이트야"라고 하면 클라우드로 준비해 준다.
프로그램의 비밀번호 — 환경변수와 .env 금고
장소를 정했으면 두 번째 주제로 넘어간다. 프로그램도 비밀번호를 갖고 있다.
프로그램이 남의 서비스(AI·지도·결제 같은 것)를 쓰려면 출입증이 필요하다. 이 출입증을 API 키(에이피아이 키 — 프로그램이 남의 서비스에 들어갈 때 내미는 비밀번호 같은 것)라고 부른다. 문제는 이 비밀번호를 코드에 그대로 적으면, 코드를 남과 공유하는 순간 비밀번호가 온 세상에 노출된다는 점이다. 레시피 원가표를 가게 벽에 붙여두지 않는 것과 같다. 붙여두면 손님이 다 본다.
그래서 비밀번호만 따로 .env(닷-이엔브이)라는 금고 파일에 적어둔다. 코드는 "금고에서 꺼내 써"라고만 시키고, 이 금고 파일은 남에게 공유하지 않는다. 코드를 인터넷(Git)에 올릴 때도 이 파일만 쏙 빼고 올린다.
여기서 환경변수(코드 바깥에 따로 보관하는 값)라는 말이 나온다. 환경변수는 금고 안에 든 비밀 쪽지 한 장 한 장이라고 보면 된다. 비밀번호, 접속 주소처럼 코드에 직접 박고 싶지 않은 값들을 코드 밖에 따로 빼둔 것이 환경변수이고, 그 쪽지들을 모아둔 금고 파일이 .env다.
이걸 안 지키면 어떤 일이 벌어지나. 바이브코딩 초보가 가장 많이 겪는 사고 1위가 바로 이거다. API 키를 코드에 박은 채로 GitHub(코드를 올려두고 공유하는 곳)에 올렸다가, 몇 분 만에 도둑이 그 키를 훔쳐 쓰고 요금 폭탄이 날아온다. 그래서 비밀은 예외 없이 .env로 뺀다. 이건 취향이 아니라 철칙이다. (더 자세한 보안·비용 이야기는 뒤편 강의에서 다룬다.)
프로젝트별 공구함 — 가상환경(venv)
세 번째 주제는 도구 분리다. 프로그램마다 필요한 부품의 버전이 다르다는 데서 시작한다. 여기서 부품이란 라이브러리(남이 미리 만들어둔 코드 조각으로, 내 프로그램이 가져다 쓰는 기성 부품)를 말한다.
이 부품들을 컴퓨터 한곳에 다 섞어 넣으면 사고가 난다. A 프로그램을 고치려고 부품 하나를 바꿨는데, 같은 부품을 쓰던 B 프로그램이 망가지는 식이다. 가게 여럿이 칼세트 하나를 돌려 쓰다가, 한 집이 칼을 갈아버리면 옆집이 당황하는 것과 똑같다.
그래서 나온 것이 가상환경(venv, 브이-이엔브이)이다. 가상환경은 프로젝트마다 전용 공구함을 따로 두는 것이다. A의 도구와 B의 도구가 서로 안 건드린다. 체감으로는 "이 프로젝트 폴더 안에서만 쓰는 도구 상자" 정도로 이해하면 된다.
직접 만들 일은 거의 없다. AI가 알아서 만들어 주기 때문이다. AI가 "가상환경 만들게요"라고 하면 "프로젝트 전용 공구함 챙기는구나"라고만 알아들으면 충분하다. 개념만 알면 되는 것이지, 손으로 세팅할 필요는 없다.
흔한 오해 — 여기서 자주 헷갈리는 두 가지
오해 1: 진짜 프로그램은 무조건 클라우드(서버)에 올려야 한다. 서버비가 아까워서 시작 자체를 미루는 사람이 많다. 하지만 나 혼자 쓰는 거면 내 PC, 즉 로컬로 충분하고 서버비는 0원이다. 강사도 자동화 봇은 로컬로 돌린다. 클라우드는 남이 접속해야 할 때만 필요하다. 서버비 걱정으로 시작을 미룰 이유가 없다.
오해 2: API 키를 코드에 적어두면 편하고 문제없다. 당장은 잘 돌아가니 위험을 못 느낀다. 하지만 코드를 공유하는 순간 남이 그 키를 다 본다. 비밀은 반드시 .env 금고에 넣어야 하고, 코드에 박으면 유출과 요금 폭탄으로 이어진다. 이건 예외 없는 철칙이다.
3줄 정리 — 딱 이것만 가져가자
- 코드가 도는 곳은 셋이다. 로컬(내 주방)·서버(무인매장)·클라우드(세 든 가게). 판단 기준 한 줄은 "내 PC를 꺼도 살아있어야 하나?" 예면 클라우드, 아니면 로컬이다.
- 비밀번호(API 키)는 코드에 박지 말고 .env 금고에 넣는다. 원가표를 벽에 안 붙이듯 코드에 비밀을 적지 않는다. 유출은 요금 폭탄 1위 사고다.
- 가상환경(venv)은 프로젝트별 전용 공구함이다. 프로젝트끼리 도구가 안 섞이게 나눠 둔다. AI가 알아서 챙기니 개념만 알면 된다.
오늘의 성공 기준은 이것이다. 누가 "그거 서버에 올렸어?"라고 물으면, "내 PC로 충분해, 아니면 클라우드 가야 해"를 스스로 판단할 수 있으면 된다.
다음 편에서는 API를 제대로 다룬다. 내 프로그램이 AI·지도·결제 같은 남의 서비스에 요청을 보내고 답을 받는 법, 그리고 오늘 배운 출입증(API 키)이 거기서 어떻게 진짜로 쓰이는지, 그 대화에 왜 요금이 붙는지를 풀어낸다.
다음 편 — 바이브코딩 강의 5편