∟Framework/∟Django

Django 개발 환경 구성

최 수빈 2025. 1. 2. 13:25

 

 

가상환경 생성 > 가상환경 활성화 > 패키지 설치 > 설치된 의존성 목록 저장

 

 

 

 

 

1. 가상환경 생성

 

python -m venv 가상환경이름

 

python 가상환경 생성

 

 

 

2. 가상환경 활성화(macOS)

 

source 가상환경이름/bin/activate

 

conda로 가상환경 관리를 안해주면 내가 가상환경폴더관리 다 해줘야하고 'conda activate 가상환경이름'에 비해서 활성화 명령이 매우 귀찮.. 근데 어쩐지 anaconda에 의존하기 싫어서 독립적으로 만들어줌

 

 

 

3. 필요한 패키지 설치

 

pip install django==4.2

 

pip install 패키지이름==버전

이 과정에서 해당 패키지가 의존하는 다른 라이브러리도 자동으로 설치됨

 

 

 

4. 설치된 의존성 목록 저장

 

pip freeze > requirements.txt

 

현재 가상환경에 설치된 모든 패키지와 버전을 requirements.txt파일로 저장

 

 

pip list

Package  Version
-------- -------
asgiref  3.8.1
Django   4.2
pip      24.2
sqlparse 0.5.3

 

pip list 보면 이런식으로 나옴

 

 

pip install -r requirements.txt

 

나중에 다른 환경에서 동일한 패키지를 설치

 

 

 

5. 팀 프로젝트에서 누군가 작성한 코드를 실행하려면 동일한 의존성이 필요

 

git clone https://github.com/example/project.git
cd project
pip install -r requirements.txt

 

팀원이 프로젝트를 클론한 후 requirements.txt를 사용해서 의존성을 설치

 

 

💡

프로젝트 의존성을 기록 및 공유

동일한 환경을 설정

서버 환경을 개발 환경과 동일하게 유지

환경을 재현 가능하게 설정

 

 


 

개발자들은 다양한 사용자 환경을 지원하기 위해서는 다양한 환경에서 개발해야하는거 아닌가?

왜 굳이 개발단계가 아닌 테스트단계에서 다양한 환경을 테스트하지?

개발단계부터 하면 되잖아.라는 의문이 생김

 

 

1. 의문의 핵심

 

내가 이해한 상황:

개발자들은 보통 동일한 개발 환경(Python 버전, 운영체제 등)을 공유하며 작업

그런데 사용자들은 매우 다양한 환경(다른 OS, Python 버전 등)을 가지고 있음

 

의문: 이렇게 개발자들이 동일한 환경에서만 작업하면, 다양한 사용자 환경에 맞출 수 없지 않을까?

 

 

 

2. 의문에 대한 답

 

A. 왜 개발자들은 동일한 환경에서 작업할까?

 

협업과 일관성:

팀 내에서 동일한 환경을 사용해야, 코드가 서로 다른 환경에서 깨지는 문제를 방지하고 효율적으로 작업가능

이를 위해 가상환경(venv)이나 의존성 관리 파일(requirements.txt)을 사용

효율적인 개발 리소스 사용:

다양한 환경에서 개발하려면 리소스가 많이 필요하므로, 먼저 표준화된 주요 환경에서 개발하는 것이 합리적

 

 

B. 다양한 사용자 환경은 어떻게 지원할까?

 

테스트 환경의 다양화:

개발 환경은 표준화하되, 사용자 환경을 반영한 다양한 테스트 환경(운영체제, Python 버전 등)을 설정

테스트 자동화 도구 사용:

CI/CD를 통해 여러 환경에서 테스트를 실행함으로써 사용자 환경에서의 호환성을 확보

피드백 기반 확장:

먼저 주요 환경에서 서비스를 출시한 후, 사용자 피드백을 통해 점진적으로 특수한 환경을 지원

 

 

 

3. 정리된 의문의 해결점

 

1. 개발자는 왜 동일한 환경을 사용하는가?

효율성: 동일한 환경에서 작업하면 팀 간 협업과 코드의 일관성을 유지할 수 있음

표준화: 가상환경과 requirements.txt로 표준 개발 환경을 공유

 

2. 그럼 어떻게 다양한 사용자 환경에 대응하는가?

다양한 테스트 환경을 설정해, 주요 환경부터 특수한 환경까지 점진적으로 지원

사용자 피드백을 받아, 실제로 필요한 환경에 리소스를 집중

 

3. 결론적으로 왜 이것이 합리적인가?

모든 환경을 처음부터 지원하려는 시도는 비효율적이며, 리소스 낭비가 크기 때문

대신 주요 환경부터 완벽히 지원하고, 특수 환경으로 점진적으로 확장하면, 서비스 품질을 유지하면서 더 많은 사용자 요구를 충족할 수 있음

 

 

4. 이해하기 쉽게 비유

 

개발 환경 표준화:

“개발자들은 같은 운동장을 사용해 축구를 연습한다.”

이 운동장은 표준화된 환경이고, 여기서 잘 훈련된 코드가 만들어짐

 

다양한 사용자 환경 테스트:

“하지만 경기는 다양한 도시에서 열린다.”

경기가 열리는 환경(운동장)은 사용자 환경을 뜻함

축구팀은 테스트를 통해 다른 도시의 운동장(사용자 환경)에서도 경기할 수 있도록 준비

 

점진적 확장:

“먼저 주요 도시에서 경기를 하고, 이후 필요에 따라 더 많은 도시로 경기를 확장한다.”

초기에는 주요 환경(다수가 사용하는 환경)을 중심으로 작업

이후 피드백을 통해 특수한 환경으로 지원을 늘려감

 

 

 

5. 결론

“같은 조건에서 시작하되, 더 다양한 환경으로 나아가는 전략”이 합리적

'∟Framework > ∟Django' 카테고리의 다른 글

Django - App  (0) 2025.01.06
Django - 프로젝트  (2) 2025.01.03
Django  (6) 2024.12.30