0. 학습 목표

더보기

이번 단계에서는 Python 프로젝트를 다른 사람과 공유하고 실행할 때 필요한 전체 흐름을 학습합니다.

 

이 단계는 직접 명령어를 입력하며 따라 하는 실습이 아니라,
Python 프로젝트가 다른 컴퓨터에서 정상적으로 실행되기 위해

어떤 요소들이 함께 준비되어야 하는지 큰 흐름을 이해하는 이론 학습입니다.

 

또한 여러 개발자가 함께 작업할 때는 각자 컴퓨터의 작업물을 직접 주고받는 것이 아니라,
GitHub 클라우드 저장소를 기준으로 소스코드를 공유하고 갱신하는 구조를 이해합니다.

1. 일반적인 Python 프로젝트 공유 흐름

더보기

1. 요약

Python 프로젝트를 다른 사람과 공유할 때 가장 일반적인 흐름은 

  1. (Online) GitHub 에서 프로젝트를
  2. (Offline) 작업 할 PC 로 가져온 뒤,
  3. Python 버전에 맞춰 가상환경을 만들고, 
  4. requirements.txt를 기준으로 패키지를 설치하는 방식입니다.

여기서 중요한 점은 가상환경 폴더를 직접 공유하지 않는 것입니다.

프로젝트 소스코드는 GitHub로 공유하고, 필요한 패키지 목록은 requirements.txt로 공유합니다.

 

 

 

 

2. 기본 흐름

전체 흐름을 단계별로 정리하면 다음과 같습니다.

[GitHub 저장소]
       │
       ▼  1. git clone <저장소_주소>

[내 컴퓨터: 프로젝트 폴더]
       │
       ▼  2. python -m venv .venv

[독립된 가상환경]
       │
       ▼  3. source .venv/bin/activate

[가상환경 활성화 완료]
       │
       ▼  4. python -m pip install -r requirements.txt

[패키지 설치 완료]
       │
       ▼  5. python main.py

[프로젝트 실행]

즉, 프로젝트를 복사한 뒤 바로 실행하는 것이 아니라, 먼저 프로젝트 전용 가상환경을 새로 만들고, 그 안에 필요한 패키지를 다시 설치한 다음 실행합니다.

2. S/W 프로젝트 협업 구조

더보기

2.1 구조

S/W 프로젝트는 보통 한 사람이 혼자 작업하는 것이 아니라, 여러 개발자가 함께 작업합니다.

 

이때 각 개발자의 컴퓨터에 있는 작업물을 서로 직접 주고받는 방식은 관리가 어렵습니다.

그래서 중간에 GitHub 클라우드 저장소를 두고 작업물을 공유합니다.

 

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

A 개발자 작업

A 개발자 컴퓨터의 작업물

GitHub 클라우드

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

B 개발자 작업

B 개발자 컴퓨터의 작업물

 

 

2.2 흐름 

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에 새로운 변경사항이 있는지 확인해야 합니다.

중요한 점
GitHub에 새로운 작업물이 올라갔다고 해서 모든 개발자 컴퓨터가 자동으로 바뀌는 것은 아닙니다.