1강. 개발환경 이해

0. 학습 목표
→ 문법 학습만으로 프로그램이 완성되지 않는 이유를 확인하고, 개발 환경이라는 개념을 세웁니다.
이번 학습에서는 취업 준비의 출발점을 다시 생각해 보고,
이론 학습보다 실제로 동작하는 프로그램을 만들어 보는 경험이 왜 중요한지 확인합니다.
프로그램이 코드만으로 실행되는 것이 아니라 실행되는 환경과 함께 준비되어야 한다는 점을 Chrome 브라우저 예시로 확인하고, 개발 환경을 이루는 요소 중 이 시리즈가 다룰 범위가 어디인지 정리합니다.
1. 문법만으로는 프로그램이 완성되지 않는다
→ 프로그램을 직접 만들 때 비로소 등장하는 질문들을 통해, 문법 밖의 영역을 확인합니다.
1.1. 취업 준비의 출발점
1.1. 취업 준비의 출발점
1. 취업 준비의 출발점더보기우리의 목표는 "성공적인 취업" 입니다. 이를 준비하기 위해 간단한 질문 하나로 출발해 보겠습니다. QUESTION"소프트웨어 개발자가 되려면가장 먼저 무엇부터 해야 하
basiclike.tistory.com
처음으로 돌아가서, 다시 한번 생각해 봅시다.
“회사는 어떤 사람을 신입 개발자로 뽑고 싶어 할까?”
우리는 이 질문을 통해 취업 준비의 방향을 다시 생각해 보았습니다.
결과로, 개발자로 취업하기 위해 필요한 것은 단순히 문법을 많이 외우는 것이 아니라,
회사에서 필요한 "실제 동작하는 프로그램"을 만들 수 있는 사람이 되는 것임을 납득했습니다.
그렇다면
"실제로 동작하는 프로그램"을 만들기 위해
필요한 것은 무엇일까요?
1.2. 문법만으로는 프로그램이 완성되지 않는다
많은 초급자들처럼 Python 문법, Java 문법, C 문법 같은 프로그래밍 언어의 이론과 문법만 중요시 했다면,
위 질문을 답하지 못합니다.
실제 프로그램을 만들어 본 경험이 부족한 사람은 다음과 같은 문제를 깊게 고민할 일이 적기 때문입니다.
| 질문 | 의미 |
| 코드를 어디에서 작성하는가? | IDE, 에디터, 터미널 등 개발 도구와 관련된 문제 |
| 어떤 Python 버전에서 실행하는가? | 언어 버전과 실행 환경의 호환성 문제 |
| 필요한 라이브러리는 어떻게 설치하는가? | 패키지 관리와 의존성 관리 문제 |
| 다른 사람의 컴퓨터에서도 같은 방식으로 실행되는가? | 환경 재현성과 협업 가능성 문제 |
프로그래밍 언어 문법을 많이 안다고 해서 실제로 동작하는 프로그램을 바로 만들 수 있는 것이 아닙니다.
프로그램을 만들기 위해서는 코드를 작성하고, 실행하고, 테스트하고, 배포하기 위한 여러 요소들이 함께 준비되어야 합니다.
실제 개발에서는 이런 요소들이 매우 중요합니다. 그리고 이론 학습만으로 절대 배울 수 없는 부분입니다.
1.3. 그래서 프로그램을 만들어야 한다
그렇기 때문에 우리는 이론 학습만 중시하는 방식에서 벗어나 실제로 동작하는 결과물을 만들 수 있어야 합니다.
1.3.1. 프로그램을 만들면 보이는 것들
프로그램을 직접 만들기 시작하면 문법 공부만 할 때는 보이지 않던 문제들이 보이기 시작합니다.
- “이 코드는 어디에 저장해야 하지?”
- “실행은 어떤 Python으로 하고 있지?”
- “필요한 라이브러리는 어떻게 설치하지?”
- “다른 사람 컴퓨터에서도 실행되게 하려면 어떻게 해야 하지?”
- “파일을 나누면 어떤 구조로 정리해야 하지?”
이 질문들이 바로 실제 개발 업무에서 마주치는 질문입니다. 문법 공부만으로 배울 수 없는 것들입니다.
1.3.2. 처음부터 거창할 필요는 없다
처음부터 거창한 프로그램을 만들 필요는 없습니다.
작은 계산기, 간단한 메뉴 프로그램, 파일 정리 프로그램, 간단한 GUI 프로그램처럼 작게 시작해도 괜찮습니다.
| 작은 프로그램 예시 | 학습할 수 있는 내용 |
| 계산기 프로그램 | 입력, 연산, 조건문, 함수 |
| 메뉴 선택 프로그램 | 조건문, 반복문, 사용자 입력 처리 |
| 파일 정리 프로그램 | 파일 경로, OS 환경, 파일 처리 |
| 데이터 분석 예제 | 외부 라이브러리, 패키지 설치, 데이터 처리 |
| 간단한 GUI 프로그램 | 화면 구성, 이벤트 처리, 실행 환경 |
중요한 것은 문법을 배울 때마다 반드시 작은 프로그램으로 연결해 보는 것입니다.
1.3.3. 프로그램을 만들어야 개발 환경이 이해된다
이 과정을 반복해야 개발 환경의 필요성도 자연스럽게 이해할 수 있습니다.
개발 환경은 이론으로만 이해하기 어렵기에, 직접 프로그램을 만들고 실행해 보아야 왜 필요한지 체감할 수 있습니다.
Python 문법을 사용해서 실제 프로그램을 만들고,
그 프로그램이 어떤 환경에서 실행되는지 확인하고,
필요한 라이브러리와 가상환경을 관리하는 방법까지 함께 학습해야 합니다.
📌핵심 정리
이것이 우리가 문법 학습 이후에 개발 환경과 호환성을 함께 다루는 이유입니다.
프로그램을 직접 만들어야 개발 환경의 필요성을 이해할 수 있고,
개발 환경을 이해해야 프로그램을 안정적으로 실행하고 관리할 수 있습니다.
2. Chrome 브라우저로 이해하는 개발 환경
→ 같은 프로그램을 사용자와 개발자가 얼마나 다르게 바라보는지 확인합니다.
2.1 사용자 관점 — "설치하면 실행된다"
간단하게 Chrome 브라우저를 예로 들어봅시다.


사용자 입장에서는 Windows PC에서 실행되는 Chrome, Mac에서 실행되는 Chrome, 스마트폰에서 실행되는 Chrome이 모두 같은 Chrome처럼 보입니다.
사용자 관점
“Chrome 설치 파일을 다운로드해서 실행하면 되는 것 아닌가?”
2.2 개발자 관점 — "어떤 환경에서 실행되는가"
하지만 개발자 입장에서는 이야기가 달라집니다.
여러분이 Windows에서 실행되는 Chrome 브라우저 프로그램을 개발하는 개발자라고 가정해 봅시다.
Windows 환경에서 기능을 만들고, 테스트까지 완료했습니다.
이 기능이 macOS, Linux, 스마트폰 환경에서도 똑같이 동작할까요?
반드시 그렇지는 않습니다.
운영체제가 다르면 프로그램이 실행되는 방식과 주변 환경이 달라질 수 있기 때문입니다.
- 프로그램이 실행되는 방식
- 파일을 저장하는 위치
- 권한을 처리하는 방식
- 화면을 보여주는 방식
- 설치 파일을 배포하는 방식
이런 요소들은 운영체제마다 서로 다를 수 있습니다.
따라서 개발자는 단순히 “Windows에서 잘 실행된다”에서 끝나면 안 됩니다.
내가 만든 기능이 실제 사용자의 환경에서도 안정적으로 동작할 수 있는지 함께 생각해야 합니다.
개발자 관점
“이 기능이 어떤 환경에서 실행되는가?”
“다른 사람의 컴퓨터에서도 같은 방식으로 동작하는가?”
“배포 후에도 안정적으로 실행되는가?”
3. 개발 환경의 범위와 이 시리즈의 목표
→ 개발 환경을 이루는 요소 전체를 조망하고, 그중 가장 먼저 배울 것을 정합니다.
3.1 초급과 중급을 가르는 기준
신입 개발자일 때는 코드 하나하나의 기능 중심으로 생각하는 것은 초급 단계에서 자연스러운 과정입니다.
하지만 개발자가 된다는 것은 단순히 내 컴퓨터에서 코드가 실행되는 것만을 의미하지 않습니다.
실제 개발에서는 내가 만든 코드가 다른 사람의 컴퓨터에서도 실행되어야 하고,
팀 프로젝트 안에서도 문제없이 동작해야 하며,
배포 환경에서도 안정적으로 유지되어야 합니다.
따라서 개발자는 단순히 “기능을 만들었다”에서 끝나면 안 됩니다.
| 구분 | 주요 관점 |
| 초급 개발자 | 코드가 실행되는지에 집중합니다 |
| 중급 개발자 | 코드가 안정적으로 실행될 환경까지 함께 관리합니다 |
코드를 넘어 환경을 관리하는 관점을 가져야 합니다.
3.2 개발 환경을 이루는 요소들
개발 환경 설정은 여러 분야로 나뉩니다. 전체 지도를 한 번 보겠습니다.
지금 이 표를 외울 필요는 전혀 없습니다. "환경이라는 것이 이렇게 넓구나" 정도만 확인하면 됩니다.
| 구분 | 내용 |
| 프로그래밍 언어 / 런타임 | Python, Java, C#, Node.js 등 코드 실행 환경 |
| 패키지 관리 | pip, npm, NuGet, Maven 등 외부 라이브러리 설치 도구 |
| 가상환경 | 프로젝트별 독립 실행 환경 |
| IDE / 에디터 | PyCharm, VS Code, IntelliJ 등 코드 작성 도구 |
| 프로젝트 구조 | 폴더 구성, 파일 분리, 모듈 구조 |
| Git 버전 관리 | 코드 변경 이력 관리 및 협업 |
| 배포 환경 | 서버, 클라우드, 실행 파일, 패키징 |
| 환경 변수·보안 | API Key, DB 비밀번호, 경로 설정 |
| OS 설정 | Windows, macOS, Linux별 차이 |
| 문서화 / 협업 | README, 사용법, 협업 규칙, 이슈 관리 |
처음부터 이 모든 요소를 완벽하게 이해할 필요는 없습니다.
이 중에서 Python 개발을 시작할 때 가장 먼저 필요한 세 가지
- 가상환경(venv),
- 패키지 관리(pip),
- 환경 재현(requirements.txt) — 에 집중합니다.
표의 나머지 요소들은 프로그램을 만들어 가면서 필요한 순서대로 자연스럽게 만나게 됩니다.
- 프로그램 = 코드 + 실행 환경. 코드만으로는 완성되지 않는다
- 개발자는 "실행되는가"가 아니라 "어떤 환경에서 실행되는가"를 묻는다
- 개발 환경의 넓은 지도 중, 이 시리즈는 가상환경 → pip → requirements.txt를 다룬다
→ 다음 강의 (2강): "어떤 환경에서 실행되는가"라는 질문을 Ubuntu의 Python에 그대로 적용합니다. 내 컴퓨터에는 이미 여러 Python이 존재할 수 있다는 사실에서 출발해, 시스템·전역·가상환경 Python의 3단 구분을 세웁니다.