12강 개념 중심 ⏱ 약 15분

 

0. 학습 목표

→ 프로젝트가 다른 컴퓨터에서 실행되기까지의 전체 흐름과 GitHub 중심 협업 구조를 정리합니다.

더보기

이번 글은 개념 중심 강의입니다.

 

11강에서 requirements.txt를 cp 명령으로 옆 폴더에 전달했습니다.

하지만 실제 협업에서 소스 코드와 requirements.txt는 GitHub 클라우드 저장소를 통해 오갑니다.

 

이번 강의는 직접 명령어를 입력하는 실습이 아니라, 그 전체 그림을 정리하는 이론 학습입니다.

지금까지 배운 조각들 — 가상환경, 패키지 설치, requirements.txt — 이 협업 구조 안에서 각각 어느 자리에 들어가는지 확인합니다.

 

여기서 정리하는 흐름은 다음 강의(13강)에서 실제로 한 번 통과하게 되므로,

이번 강의는 13강의 설계도라고 생각하면 됩니다.

구분 내용
이해할 것 프로젝트를 받아서 실행하기까지의 5단계 표준 흐름
정리할 것 GitHub 클라우드 저장소가 협업의 기준점 역할을 하는 구조
확인할 것 GitHub에 올라간 최신 작업물이 각 개발자 컴퓨터에 자동 반영되지 않는다는 사실

 

1. 프로젝트를 받아서 실행하기까지 — 표준 5단계

→ 다른 사람의 Python 프로젝트를 내 컴퓨터에서 실행하는 일반적인 흐름을 정리합니다.

더보기

Python 프로젝트를 공유받아 실행하는 가장 일반적인 흐름은 다음 5단계입니다. GitHub(온라인)에서 프로젝트를 내 PC(오프라인)로 가져온 뒤, Python 버전에 맞춰 가상환경을 만들고, requirements.txt 기준으로 패키지를 설치하고, 실행합니다.

[GitHub 저장소]
        │
        ▼  1. git clone <저장소_주소>          (프로젝트 가져오기)
        
[내 컴퓨터: 프로젝트 폴더]
        │
        ▼  2. python3.13 -m venv .venv         (가상환경 새로 생성)
        
[독립된 가상환경]
        │
        ▼  3. source .venv/bin/activate        (가상환경 활성화)
        
[가상환경 활성화 완료]
        │
        ▼  4. python -m pip install -r requirements.txt   (패키지 복원)
        
[패키지 설치 완료]
        │
        ▼  5. python main.py                   (실행)
        
[프로젝트 실행]                                 ← 이 흐름 전체가 13강의 실습

 

새로운 것은 1단계의 git clone뿐입니다.

GitHub 저장소의 내용을 내 컴퓨터로 통째로 내려받는 명령으로,

11강의 cp가 하던 "전달" 역할을 인터넷 너머로 확장한 것이라고 이해하면 됩니다.

2~5단계는 11강에서 Project_New를 만들며 이미 직접 해본 절차 그대로입니다.

 

 

이 흐름에서 중요한 점은 순서입니다. 프로젝트를 받은 뒤 바로 python main.py를 실행하는 것이 아니라, 먼저 가상환경을 새로 만들고 패키지를 복원한 다음 실행합니다.

 

왜 이 순서여야 하는지는 이미 배웠습니다 — 10강에서 본 대로 저장소에는 .venv가 없기 때문입니다.

가상환경 폴더는 공유 대상이 아니므로, 받는 쪽이 자기 컴퓨터에서 새로 만드는 것입니다.

단계 하는 일 배운 강의
1. clone 저장소를 내 컴퓨터로 가져오기 이번 강의 (실습은 13강)
2. venv 생성 프로젝트 전용 가상환경 만들기 4강 (기본) · 6강 (버전 지정)
3. 활성화 터미널을 가상환경 모드로 전환 4강
4. 패키지 복원 requirements.txt 기준 일괄 설치 10강 (원리) · 11강 (실습)
5. 실행 프로그램 실행

표에서 보이듯 5단계 중 4단계는 이미 손에 익은 절차입니다. 시리즈 전체가 사실 이 표준 흐름을 한 단계씩 준비해 온 과정이었던 것입니다.

 

2. GitHub를 기준점으로 하는 협업 구조

→ 여러 개발자가 클라우드 저장소를 사이에 두고 작업물을 주고받는 구조를 이해합니다.

더보기

2.1 왜 중간에 저장소를 두는가

S/W 프로젝트는 보통 여러 개발자가 함께 작업합니다.

 

이때 각자의 컴퓨터에 있는 작업물을 서로 직접 주고받으면 — A가 B에게 보내고, B가 C에게 보내고, 그 사이 A가 또 수정하면 — 누구의 것이 최신인지 금방 알 수 없게 됩니다.

 

그래서 중간에 GitHub 클라우드 저장소를 두고, 모든 작업물은 저장소를 거쳐 오가게 합니다.


전체 구조는 크게 다음 세 부분으로 나누어 이해할 수 있습니다.

A 개발자 작업

A 개발자 컴퓨터의 작업물

GitHub 클라우드

공동 작업물을 보관하는 저장소

(소스 코드 + requirements.txt)

B 개발자 작업

B 개발자 컴퓨터의 작업물 

여기서 10강의 공유 기준이 그대로 적용됩니다.

저장소에 올라가는 것은 소스 코드와 requirements.txt이고, .venv는 각 개발자가 자기 컴퓨터에서 만듭니다.

 

A는 Ubuntu, B는 Windows를 쓰더라도 문제없는 이유가 바로 이것입니다 — 각자 자기 OS에 맞는 가상환경을 새로 만들고, 같은 requirements.txt로 같은 조합을 복원하기 때문입니다.

 

 

 

 

2.2 시간 흐름으로 보는 주고받기

저장소를 사이에 둔 하루의 작업 흐름을 시간순으로 따라가 보겠습니다.

올리는 방향(개발자 → GitHub)과 가져오는 방향(GitHub → 개발자)이 계속 교차합니다.

시간흐름설명
09:00 A 개발자 → GitHub  B 개발자 A 개발자가 자신의 작업물을 GitHub 클라우드에 올립니다.
10:00 A 개발자 → GitHub  B 개발자 B 개발자가 GitHub 클라우드에서 작업물을 가져옵니다.
11:00 A 개발자 → GitHub  B 개발자  A 개발자가 수정한 작업물을 다시 GitHub 클라우드에 올립니다.
12:00 A 개발자 → GitHub  B 개발자  B 개발자는 자신의 작업물을 갱신 전 GitHub의 최신 변경사항을 확인합니다.

예를 들어, 11:00에 A 개발자가 수정한 작업물을 GitHub에 올리면 GitHub 클라우드는 최신 상태가 됩니다.

하지만 B 개발자의 컴퓨터는 아직 이전 상태일 수 있습니다.

그래서 12:00 B 개발자는 자신의 작업물을 올리기 전에 먼저 GitHub에 새로운 변경사항이 있는지 확인해야 합니다.

- 프로젝트 실행의 표준 흐름: clone → venv 생성 → 활성화 → 패키지 복원 → 실행
- 협업은 개발자끼리 직접 주고받지 않고 GitHub 저장소를 기준점으로 오간다
- 저장소에는 소스 코드 + requirements.txt만 — .venv는 각자 자기 컴퓨터에서 생성
- 저장소가 갱신되어도 내 컴퓨터는 자동으로 바뀌지 않는다 — 올리기 전에 먼저 가져온다

→ 다음 강의 (13강): 이번 강의에서 정리한 표준 5단계를 실제로 통과합니다.

 

11강에서 만든 Project를 "공유받은 프로젝트"로 삼아, clone(또는 폴더 이동 시뮬레이션)

→ venv 생성

→ 패키지 복원

python main.py 실행까지 — 0강에서 약속한 시리즈 전체의 성공 기준을 직접 확인하며 마무리합니다.