ㅇ 일 자 : 2026년 5월 14일(목)
ㅇ 주 제 : 가상환경 (우분투 파이썬, Qt Creator) 설정 및 실습
ㅇ 내 용
1. 우분투 파이썬 "가상환경"이 필요한 이유
1.1. 버전 충돌 방지 및 의존성 관리
가. 프로젝트 A (Django 3), 프로젝트 B (Django 4)가 필요할 때, 하나의 환경에 설치하면 충돌이 발생한다
나. 가상환경 사용 : 프로젝트마다 필요한 패키지와 버전을 개별적으로 설치하여 관리 가능하다
다. 파이썬 가상환경을 만들어서 project를 시행하고, 파이썬 버젼을 확인한 후 작업한다
1.2. 시스템 파이썬 보호
가. 우분투는 자체 시스템 도구들이 apt를 통해 설치된 파이썬 라이브러리에 의존 한다.
나. sudo pip 등을 이용해 시스템 영역에 패키지를 설치하다가 실수로 시스템 패키지를 덮어쓰면 우분투 시스템이 망가질 우려,
가상환경 내에서만 라이브러리를 설치하는 것이 안전하다.
1.3. 독립적 환경 구성
가. 프로젝트마다 파이썬 버전이나 패키지를 다르게 설정해도 다른 프로젝트에 전혀 영향을 미치지 않는 "독립적인 환경" 제공
1.4. 간편한 환경 재현
가. requirements.txt 파일을 사용해 다른 컴퓨터나 서버에서도 동일한 가상환경을 쉽게 재현할 수 있다.
나. 우분투에서 python3 -m venv <가상환경명> 명령어를 통해 쉽게 가상환경을 생성하고, 활성화하여 사용할 수 있다.
다. 우분투(디렉토리), 윈도우(파일탐색기) 의미, 그러나 파이썬은 모두 파일로 인식한다.
라. Thunar(파일관리자) 설치하기 : sudo apt install thunar -y
마. 시스템과 가상환경에서 Python, pip, 패키지 예시
- 시스템 파일 : home / ......
- 가상 환경 : home / project.. / 폴더경로_venv(가상환경) / bin(파이썬실행파일, pip 실행파일) / lib(가상환경패키지)
2. 파이썬 가상환경 설정 이해
2.1. 파이썬 가상환경 설치 및 활성화 (터미널 입력창에서 설정)
가. 가상환경을 만들고 활성화
:~$ python3 -m venv test_venv
나. 다른 버젼의 가상환경 만들고 활성화
:~$ python3.11 -m venv test_venv2 # 버젼을 달리하여 설정할 수 있다.
다. (.venv 가상환경 괄호표시 ) 위치에서 나가기
~(.venv ) : deactivate
※ 가상 환경?
새로운 Python을 다시 설치하는 것이 아니라, 기본 Python을 기반으로 Python 작업에 필요한 환경을 복사해서
별도의 작업공간을 생성하는 방식이다.
이때 프로젝트에서 사용하는 Python 실행파일, pip, 패키지 설치 공간이 준비된다.
라. 어떤 작업을 하다가 ( 괄호) 가상환경이 풀리는 경우가 있다. 그러면 가상환경을 다시 설정해 준다.
마. 파이썬 실행 파일 : 시스템 실행파일, 가상환경 실행파일은 작업환경을 다르게 한다.
바. 시스템 환경을 그대로 복사해서 가상환경에서 개발 작업을 한다. 시스템 파일은 보호한다.
사. 가상환경 설정 확인하기
(1) 우분투 가상환경 구현 터미널 창 : 가상디렉토리를 test로 만들어(mkdir) 실행하며 위치가 (test_venv) 바뀐다.
가상환경 설정할 때 (괄호)가 없으면 가상환경에서 벗어난 것이다.
(가상환경폴더명_venv) 사용자 경로명 : ~$ mkdir -p ~/Dev/python
(가상환경폴더명_venv) 사용자 경로명 : ~$ cd ~/Dev/python
(가상환경폴더명_venv) 사용자 경로명: ~/Dev/pyton$ python3 -m venv 가상환경폴더명_venv
(가상환경폴더명_venv) 사용자 경로명: ~/Dev/pyton$ source 가상환경폴더명_venv/bin/activate
(가상환경폴더명_venv) 사용자 경로명: ~/Dev/pyton$ deactivate
(가상환경폴더명_venv) 사용자 경로명: ~/Dev/pyton$ which python3
(가상환경폴더명_venv) 사용자 경로명: ~/Dev/pyton$ which pip3
(가상환경폴더명_venv) 사용자 경로명: ~/Dev/pyton$ /usr/bin/python3
>>> /usr/bin/pip3
(2) .py 파일 생성후 로직 구현 예시 (touch)
touch test_study
(3) 가상환경 및 패키지 : 가상환경(venv), 패키지 파일(.py)
home / project.. / 폴더경로_venv(가상환경) / bin(파이썬실행파일, pip 실행파일) / lib(가상환경패키지)
(4) 가상환경 활성화 전.후 파이썬 실행 차이
활성화 전 /usr/bin/python3
활성화 후 ~/Dev/Python/test_venv/bin/python

2.2. 특정버젼 파이썬 설치
가. 우분투 환경에서 구버젼 설치하고, 시스템 파일을 건들지 않아야 한다.
나. 프로젝트 시행간 원하는 다른 파이썬 버전이 필요할 때 설치 활용
다. 특정버젼에서 가상환경 설정 및 프로젝트 생성 (교육간 사용할 PPA 설치)
:~$ sudo apt install python3.11 python3.11-venv python3.11-dev -y
ver 3.10, 3.11, 3.12, 3.14 등 필요한 버전을 선택하여 입력 설치
* PPA 추가를 위한 필수 패키지 설치
sudo apt update
sudo apt install software-properties-common
2.3. 외부 패키지 설치하는 법
가. 프로젝트를 완료 후 동일한 버젼을 모두 넘겨줄때 "외부 패키지"를 활용한다.
python -m pip install Pyside6
나. 가상환경 공유 금지에 대한 이해
기본적인 용량이 너무 커서 가상환경 전체를 공유하지 않는다. ""소스코드 문서, 패키지 리스트 문서"", 가벼운 몇개만 공유,
프로젝트 전체 파일을 공유하는 것은 아니다.
(예시) Dev - Project - -> 가상환경 + 패키지
2.4. 패키지 공유 구현
가. 호환성을 위한 환경설정 필요성
- 라이브러리 버젼이 다른 경우, 공유된 가상환경을 별도로 설정
(예) 패키지가 다른 문건들이 있을 경우 과거 버젼 문서가 현재 신버젼에서 실행하고자 할때, 과거 버젼을 모두 다 조건에 맞게 가상환경을 설정 해 주어야 한다.
나. 프로젝트 협업 단계
시스템 파이선 가상환경 설정 --> 가상환경 구현 임의버젼 설치 확인
--> 가상환경에 외부패키지 구현
--> 타인도 공유할수 있도록 패키지 공유 구현
다. Python 프로젝트를 다른 사람과 공유할 때 일반적인 흐름
(1) (Online) GitHub 에서 프로젝트를, (Online) 작업할 pc로 가져온
뒤, Python 버젼에 맞춰 가상환경을 만들고, 패키지 목록을 저장
※ 가상환경 폴더를 직접 공유하지 않는 것, 프로젝트 소스코드는 GitHub로 공유하고 필요한 패키지 목록은 txt 파일포함
(2) 공동 개발자와 동일한 환경을 구현하고, 전달하고자 할때 TXT 파일로 패키지 버젼들을 포함 작성한다.
requirement.txt (패키지 목록 저장)
(.venv) 로컬@:~/Dev/Project $ 터미널에서 가상환경 위치에서 입력 python -m pip freeze > requirements.txt
라. 프로젝트 결과 웹사이트와 연동 구현
(1) 버젼관리에 있는 프로젝트 선택

(2) 저장소 URL 입력 : 저장소를 복제하는 단계로 URL과 디렉토리를 지정 입력한다.
(3) 터미널창에서 입력하여 실행한다. :~$ python -m pip install -r requirements.txt
(4) 외부 웹사이트와 연결하기 run.py 실행하면 http 주소링크가 보이면 연결 확인
(5) ""예시"" urn.py를 실행하면 서버가 정상 실행중이며 연결이 되었으니 웹브라우저에서 주소를 입력한다.
예시) 000.0.0.0.4500

2. 5. 가상환경(Virtual Environment) 내부 폴더 구조
가. 파이썬(Python) 개발 프로그램(PyCharm)에서 프로젝트 할때 가상환경을 사용한다.
나. 가상환경 .venv ?

이미지에 .venv라는 폴더가 보인다. (가상환경 "예시")
내 컴퓨터 전체에 영향을 주지 않고, 이 프로젝트만을 위해 독립적으로 만든 '작은 파이썬 방'이며, 각 프로젝트마다 필요한 프로그램 버전이 다를 수 있어 방을 분리해서 관리한다.
2. 6. 폴더별 역할
📂 bin (바이너리) 폴더
현재 선택되어 있는 폴더로, 이 가상환경을 움직이는 실행 파일(명령어)들이 들어있다.
- python, python3, python3.11 : 프로젝트를 실행할 때 사용하는 파이썬 프로그램 본체 (버전은 3.11을 사용 중)
- pip, pip3 : 파이썬에서 다른 사람들이 만들어둔 유용한 기능(라이브러리)을 다운로드 설치해 주는 '앱스토어' 같은 명령어
📂 include 폴더
파이썬이 C언어 등 다른 언어와 연결될 때 사용하는 내부 설정 파일들이 담기는 곳. 초보 단계에서는 전혀 수정할 일이 없는 폴더
📂 lib (라이브러리) 폴더
프로젝트에서 사용할 모든 기능 패키지(코드 묶음)들이 저장되는 창고
- site-packages : 내가 pip 명령어로 추가 다운로드한 외부 프로그램들이 실제로 저장되는 핵심 공간. 기본적으로 설치되어 있는 pip 프로그램 자체의 소스코드가 보여진다.
💡 Tip
① "파이썬 3.11 버전으로 독립된 개발 방(.venv)을 만들었으며, 실행 도구(bin)와 기능 창고(lib)가 준비되어 있는 상태"
파이썬 개발의 표준적인 형태이므로, 이 안의 파일들을 직접 수정하거나 삭제하지 않고 그대로 둔 채로 다른 파일을 만들어서 코딩
② .venv 나 bin 폴더 안에 패키지 파일을 만들면 안 된다.
상위 폴더 우클릭 : 이미지 가장 상단에 있는 Layout 폴더(또는 프로젝트 이름)를 마우스 우클릭 해서 파일 생성
③ 외부 기능(라이브러리) 설치하기
파이썬은 전 세계 개발자들이 만든 유용한 도구 (예: 데이터 분석용 pandas, 웹 크롤링용 beautifulsoup4 등) 를 가져다 쓰기 유용한데 bin 폴더 안의 pip가 하는 역할이다.
④ PyCharm 화면 가장 아래쪽을 보면 Terminal(터미널)이라는 탭을 클릭하고, 명령어 입력 하여 설치하기
pip install [라이브러리 이름]
2.7. 호환성 문제
가. 라이브러리 외부에서 만든 기능을 많이 사용
나. 버젼 호환성 에 대한 이해
다. 워드, 파워포인트, 엑셀 파일 (2000년대) 을 2026년 신버젼으로 호환 활용
라. 특정기능이 동작하지 않을수도 있다. 100% 동작하리라는 보장이 없다.
마. 너무 오래된 문서들도 호환이 안될 수도 있다. 파이썬도 마찬가지다
바. 모든것을 고려해서 환경설정을 해 주어야 하는데 조금 복잡하다
3. 모듈, 패키지, 라이브러리에 대한 이해
모듈(파일) < 패키지(모듈 묶음) < 라이브러리(모듈과 패키지 모음)
4. 프로그램 개발자의 인식과 시대적 변화
4.1. 개발 단위의 확장 (코드에서 '기능'으로)
가. 과거에는 개발자가 작은 코드 조각(Snippet)을 작성하고 이를 직접 이어 붙이는 데 집중했다면, 이제는 AI(Claude Code,
Codex 등)를 활용해 큰 작업 단위를 처리하는 시대로 변하고 있다.
※ 기존 : 코드 작성 위주, 사람이 모든 조각을 조립.
현재 : 기능 구현, 리팩토링, 조사, 테스트까지 포함된 하나의 '완성된 단위'를 AI와 함께 수행.
4.2. 바이브코딩과 에이젠틱 엔지니어링 (Vibe Coding & Agentic Engineering)
가. 단순한 코딩을 넘어 시스템의 전체 설계와 운영을 AI 에이전트가 주도하는 흐름
나. 설계 범위 : DB 설계, 로그인, 결제, 권한 관리, 배포, 운영, 장애 복구 등 시스템 전반.
다. 에이전트의 역할 : 과거 아키텍트(사람)가 결정하던 시스템 구조를 AI가 잡기 시작함.(향후 변화와 허용범위는?)
라. 핵심 역량 : 에이전트가 도출한 결과물을 검증(Verification)하고 고도화하는 능력이 중요해짐.
4.3. 남아있는 과제 (책임과 설계의 주체)
가. 안드레 카파시(Andrej Karpathy)가 언급한 것처럼, 기술적 가능성과는 별개로 관리적 측면의 의문이 남아 있다.
나. 지침과 책임: 개발 방식의 가이드라인을 누가 줄 것이며, 결과물에 대한 책임은 누가 질 것인가?
다. 설계의 자율성: 시스템 설계라는 고도의 의사결정까지 AI에게 전적으로 맡길 것인가에 대한 문제는 여전히 논의 중인 영역
※ 개발자는 코드를 쓰는 '타이피스트'가 아니라, AI 에이전트가 설계하고, 만든 결과물을 검증하고 조율하는 '시스템 감독관'의 역할로 변모하고 있다.
5. QT 설치 및 환경설정 후 실행
(1) Qt 파일을 웹브라우저에서 다운로드 후 다운 받은 파일 위치에서 터미널에서 열기 선택후 실행하기

(2) 환경설정 : 실행할 .py를 "위젯"으로 할지 "메인"으로 할지 사용자 환경에 맞게 설정

(3) main.py 분리하기 화면 : .uI 파일이 .py 파일로 변환 되었다. (변환시 Qt창에서 메세지옆 install 을 눌러서 버전 3.12를 실행해 준다)
(4) 파일 변환후 xml 을 확인 하는 화면 : 예시) form.ui 파일을 실행후 Edit 클리후 xml 내용을 확인할 수 있다.
(5) xml의 들여쓰기 개념 이해 : "들여쓰기"는 디렉토리 한묶음을 의미, 들여쓰기로 문법 구문을 분리하여 이해한다.
5.3. Qt 실행 실습
(1) 디자이너 적용 구조 이해
Qt6 디자이너에서 디자인을 하여 ui로 저장을 하고, 위젯에서 main.py로 파일을 분리해서 패키지로 통합한 후 파이썬으로 실행하면 최종 파이썬앱이 실행된다,

※ 안드레 카파시(Andrej Karpathy)
안드레이 카르파티는 슬로바키아계 캐나다인 AI 연구자로, 테슬라 에서 인공지능과 오토파일럿 비전의 책임자로 일했다.
오픈AI에서 공동 창립자이자 이전에 일했으며, 그곳에서 딥 러닝과 컴퓨터 비전을 전문으로 했다.
2025년 2월 Karpathy는 AI 도구가 취미 활동가들이 프롬프트를 입력하기만 하면 앱과 웹사이트를 구축할 수 있도록 하는 방식을 설명하기 위해 "vibe coding"이라는 용어를 만들었다.
'환경 설정' 카테고리의 다른 글
| D+34 [SQL] 프로그램 설치 및 환경 설정 가이드 (0) | 2026.05.26 |
|---|---|
| D+26 [아두이노] Arduino 환경설정 및 보드 실습 (0) | 2026.05.13 |
| D+23 [ GUI ] 환경 설정 이해 (0) | 2026.05.08 |
| D+22 [ LXD, Docker, Flask 앱] 이해 & 실습 (0) | 2026.05.07 |
| D+4 [Linux] 리눅스 기초 입문 & Ubuntu 개발 환경 구축 (0) | 2026.04.08 |