14강 / 20강

배포 — 코드를 서버에 올리기

git clone · 가상환경 · pip, 그리고 순서의 중요성

배포 — 코드를 서버에 올리기
내 노트북의 코드가 서버에서 돌아가기까지의 네 단계.

내 노트북에서는 쇼핑몰이 잘 돌아갑니다. 이제 서버에 올릴 차례예요. "파일을 복사하면 되는 거 아닌가요?" 거의 맞지만, 세 가지 함정이 있습니다.

①코드는 어떻게 옮기나USB? 이메일? → git
②라이브러리는?Flask 가 서버엔 없다 → pip
③다른 앱과 충돌하면?Flask 버전이 서로 다르다 → 가상환경

1단계 · 코드 가져오기

git clone 은 저장소의 코드를 통째로 내려받습니다. USB로 옮기는 것과 달리, 나중에 git pull 한 줄로 업데이트할 수 있어요.

코드를 서버로 가져옵니다
bash 내 가상 Ubuntu 서버에서 실행

2단계 · 가상환경 만들기

서버 한 대에 앱이 여러 개 돌 수 있습니다. A앱은 Flask 2.0, B앱은 Flask 3.1이 필요하다면? 서버 전체에 하나만 깔면 싸움이 납니다.

가상환경(virtual environment)은 프로젝트마다 자기만의 라이브러리 창고를 갖게 해 줍니다. 7강에서 배운 폴더 하나가 통째로 그 창고예요.

.venv 폴더 안에 이 프로젝트 전용 파이썬이 생깁니다
bash 내 가상 Ubuntu 서버에서 실행

3단계 · 라이브러리 설치

requirements.txt 는 필요한 라이브러리 목록입니다. 이 파일 하나로 어느 서버에서든 똑같은 환경을 다시 만들 수 있어요.

목록을 보고 한꺼번에 설치
bash 내 가상 Ubuntu 서버에서 실행

🎮 배포 실험실

배포 단계를 순서를 바꿔서 해 보세요. 순서가 틀리면 어디서 무엇이 깨지는지 알려 줍니다.

배포 실험실 — 순서를 틀리면 어떻게 되는지
불러오는 중…

4단계 · 자리 잡기

앱이 놓일 자리와 권한을 정해야 합니다. 여기서 7강의 지식이 쓰입니다.

코드644실행할 필요 없음. 읽기만
폴더755들어가려면 x 가 필요합니다
스크립트755실행 권한 필요
비밀 파일600DB 비밀번호·API 키
우리 쇼핑몰의 권한 상태 점검
bash 내 가상 Ubuntu 서버에서 실행

진짜로 돌려 보기 전 마지막 확인

배포한 앱이 진짜 도는지 보려면? 직접 실행해 봅니다.

healthz 는 '살아 있니?'를 묻는 관례적인 주소입니다
bash 내 가상 Ubuntu 서버에서 실행
🤔 확인 문제
파이썬 프로젝트마다 가상환경(.venv)을 따로 만드는 이유는?
🤔 확인 문제
requirements.txt 가 하는 일은?
🤔 확인 문제
웹 앱을 root 계정으로 실행하면 안 되는 이유는?