# Part 1: AI 개발 환경 완벽 구축 가이드
**⬅️ 이전 시간: [Part 0: 시작하며](part_0_introduction.md)**
---
지난 시간에는 12주간의 학습 로드맵을 통해 우리가 무엇을, 어떻게 배울지 전체적인 그림을 그려보았습니다.
이번 시간에는 그 첫걸음으로, 성공적인 AI 개발을 위해 안정적이고 효율적인 개발 환경을 직접 구축해보겠습니다. 어떤 도구를 선택하느냐에 따라 개발 생산성과 경험이 크게 달라질 수 있습니다.
성공적인 AI 개발의 첫걸음은 안정적이고 효율적인 개발 환경을 구축하는 것입니다. 어떤 도구를 선택하느냐에 따라 개발 생산성과 경험이 크게 달라질 수 있습니다. 이번 주에는 현재 업계에서 널리 사용되는 대표적인 AI 개발 도구들을 살펴보고, 우리 과정의 표준 개발 환경을 직접 구축해보겠습니다.
---
## 1일차: 가상환경과 데이터 분석 IDE
### 🎯 오늘의 목표
- 가상환경(`venv`)의 필요성을 이해하고 직접 다룰 수 있게 됩니다.
- 데이터 분석에 특화된 IDE인 Spyder와 JupyterLab의 특징을 파악합니다.
---
### 1. 프로젝트의 독립성을 지켜주는 "가상환경"
**🤔 왜 가상환경이 꼭 필요할까요?**
컴퓨터에 파이썬을 처음 설치하면, 모든 라이브러리는 '공용 도구함'에 설치됩니다. A 프로젝트를 위해 `pandas 1.5.3` 버전을 설치했다가, B 프로젝트를 위해 `pandas 2.1.0` 버전으로 업그레이드하면 어떻게 될까요? A 프로젝트는 갑자기 바뀐 도구(라이브러리) 때문에 더 이상 작동하지 않을 수 있습니다! 이것이 바로 **'버전 충돌'**이며, 여러 프로젝트를 동시에 진행할 때 개발자를 매우 괴롭히는 골칫거리가 됩니다.
가상환경은 이처럼 프로젝트별로 독립된 "격리된 공간"을 만들어주어 버전 충돌을 원천적으로 방지하는 **필수 도구**입니다.
#### 💡 쉽게 이해하기: 가상환경은 나만의 '프로젝트용 필통'입니다
> 여러분, 학창 시절을 떠올려볼까요? 수학 시간에는 자와 컴퍼스를, 미술 시간에는 물감과 붓을 필통에 넣어 다녔습니다. 만약 모든 학용품을 하나의 거대한 가방에 쏟아부었다면 어땠을까요? 필요한 도구를 찾기도 어렵고, 흑연 가루가 물감에 섞이는 등 엉망이 되었을 겁니다.
>
> **가상환경이 바로 이 '프로젝트용 필통'과 같습니다.** A라는 AI 프로젝트에 필요한 도구(라이브러리)들과 B라는 데이터 분석 프로젝트에 필요한 도구들을 각각의 독립된 필통(`.venv`)에 담아두는 것이죠. 이렇게 하면 각 프로젝트의 도구들이 서로 섞이지 않아 '버전 충돌'이라는 문제를 깔끔하게 해결할 수 있습니다. 즉, A 프로젝트의 'pandas 1.5.3' 버전과 B 프로젝트의 'pandas 2.1.0' 버전이 각자의 필통 안에서 평화롭게 공존하게 됩니다.
#### 가상환경 실습 (`venv`)
Python 3.3부터 기본 내장된 `venv`를 사용해봅시다. 코드를 직접 입력하며 따라 해보세요. 처음 보는 명령어들이 낯설게 느껴질 수 있지만, 각 단계가 어떤 의미인지 이해하면 금방 익숙해질 거예요.
- `mkdir my-first-ai-project`: `mkdir`는 'make directory'의 줄임말로, **새 폴더를 만드는 명령어**입니다.
- `cd my-first-ai-project`: `cd`는 'change directory'의 줄임말로, 방금 **만든 폴더 안으로 이동하는 명령어**입니다.
- `python -m venv .venv`: 현재 폴더 안에 `.venv`라는 이름의 **파이썬 가상환경을 만들라는 명령어**입니다.
**1. 가상환경 생성하기**
프로젝트 폴더(`my-first-ai-project`)를 만들고, 해당 폴더 내에서 터미널을 열어 아래 명령어를 실행합니다. `.venv`라는 이름의 가상환경 폴더가 생성됩니다.
```bash
# 1. 프로젝트 폴더 생성
mkdir my-first-ai-project
cd my-first-ai-project
# 2. .venv 이름으로 가상환경 생성 (python 또는 python3)
python -m venv .venv
```
**2. 가상환경 활성화하기**
생성된 가상환경을 사용하려면 반드시 '활성화'해야 합니다. 운영체제에 맞는 명령어를 입력하세요.
```bash
# Windows (PowerShell)
.venv\\Scripts\\Activate.ps1
# macOS / Linux (bash)
source .venv/bin/activate
```
활성화되면 터미널 프롬프트(명령어를 입력하는 곳) 앞에 `(.venv)`와 같은 표시가 나타납니다.
**3. 패키지 설치 및 관리 (`pip`)**
가상환경이 활성화된 상태에서 `pip`으로 필요한 라이브러리를 설치합니다. 이제 설치되는 패키지는 시스템이 아닌 `.venv` 폴더 내에만 저장됩니다.
```bash
# numpy와 pandas 설치
pip install numpy pandas
# 설치된 패키지 목록 확인
pip list
# 설치된 패키지 목록을 파일로 저장 (협업에 필수!)
# 이 파일은 나중에 다른 환경에서 동일한 라이브러리를 한번에 설치하는 데 사용됩니다.
# (예: pip install -r requirements.txt)
pip freeze > requirements.txt
```
**4. 가상환경 비활성화하기**
작업이 끝나면 `deactivate` 명령어로 가상환경을 빠져나올 수 있습니다.
```bash
deactivate
```
> 💡 **`.gitignore` 설정**: `.venv` 폴더는 용량이 크고 사용자마다 환경이 다를 수 있어 Git으로 관리하지 않습니다. 프로젝트의 `.gitignore` 파일에 `.venv`를 반드시 추가해주세요.
---
### 2. 데이터 분석가를 위한 IDE: Spyder & JupyterLab
#### 1) Spyder (스파이더)
- **개요**: 과학/공학 계산, 데이터 분석에 특화된 IDE. MATLAB과 유사한 인터페이스가 특징입니다.
- **핵심 기능**: **변수 탐색기(Variable Explorer)**. 코드 실행 중인 모든 변수, 데이터프레임을 GUI로 직접 확인할 수 있어 데이터의 변화를 추적하는 데 매우 강력합니다.
- **권장 사용자**: 데이터의 구조와 내용을 시각적으로 확인하며 탐색적 데이터 분석(EDA)을 주로 수행하는 데이터 분석가, 파이썬으로 데이터 과학에 입문하는 학생.
#### 2) JupyterLab (주피터랩)
- **개요**: 웹 브라우저에서 실행되는 차세대 대화형 개발 환경. 코드, 실행 결과, 시각화, 설명을 '노트북(.ipynb)' 파일 하나에 통합 관리합니다.
- **핵심 기능**: **셀(Cell) 단위 실행**. 전체 코드를 실행할 필요 없이, 코드 블록(셀) 단위로 실행하고 결과를 즉시 확인하여 빠른 실험과 디버깅이 가능합니다.
- **권장 사용자**: 빠른 아이디어 검증과 데이터 시각화가 중요한 모든 AI/ML 연구원, 분석 과정을 단계별로 기록하고 공유해야 하는 데이터 분석가.
#### 💡 쉽게 이해하기: IDE는 나의 '디지털 작업실'입니다
> IDE(통합 개발 환경)는 코딩 작업을 위한 '작업실' 또는 '공방'에 비유할 수 있습니다. 어떤 가구를 만들지에 따라 목공소의 도구 배치가 달라지듯, 어떤 종류의 개발을 하느냐에 따라 적합한 IDE가 다릅니다.
>
> - **Spyder: '정밀 데이터 분석실'**
> - Spyder는 마치 현미경과 계측 장비가 잘 갖춰진 실험실과 같습니다. 특히 '변수 탐색기'는 실행 중인 모든 데이터의 속을 돋보기로 들여다보듯 생생하게 보여줍니다. 데이터의 속을 하나하나 뜯어보며 분석하는 작업에 최적화된 '데이터 과학자'의 공간입니다.
>
> - **JupyterLab: '아이디어 스케치북'**
> - JupyterLab은 코드, 설명, 그래프, 실행 결과를 한 페이지에 차곡차곡 기록하는 똑똑한 '실험 노트'나 '스케치북'입니다. 아이디어가 떠오를 때마다 코드 조각(셀)을 바로 실행해보고 결과를 눈으로 확인하는 과정이 매우 빠르고 직관적입니다. 탐색하고, 발견하고, 이야기하는 과정에 매우 강력한 도구입니다.
>
> - **VSCode: '만능 조립식 공방'**
> - VSCode는 레고 블록처럼 필요한 기능을 마음대로 조립해서 만드는 '만능 공방'입니다. 처음에는 텅 빈 작업대(가벼운 텍스트 에디터) 같지만, '확장 프로그램'이라는 부품을 하나씩 붙여서 파이썬 개발, 웹 개발, AI 모델링까지 못하는 게 없는 궁극의 작업 공간으로 변신시킬 수 있습니다. 이것이 바로 우리가 VSCode를 주력 개발 환경으로 선택한 이유입니다. 하나의 공방에서 모든 것을 해결할 수 있으니까요!
---
## 2일차: 통합 개발 환경(IDE)과 최종 선택
### 🎯 오늘의 목표
- 범용 IDE인 VSCode와 클라우드 환경인 Colab, Kaggle을 이해합니다.
- 각 도구의 장단점을 비교하고 우리 과정에서 사용할 최종 도구를 결정합니다.
---
### 1. 모든 개발을 하나로: VSCode
- **개요**: 가볍고 빠르면서도 강력한 기능을 자랑하는 Microsoft의 범용 코드 편집기. 풍부한 **확장 기능**을 통해 AI 모델 개발, API 서버, 웹 개발까지 하나의 툴에서 해결 가능한 'All-in-One' 솔루션입니다.
- **핵심 기능**: 마켓플레이스를 통한 **무한한 확장성**. Python, Jupyter, Docker, 원격 접속 등 원하는 모든 기능을 추가하여 자신만의 완벽한 IDE를 만들 수 있습니다.
- **권장 사용자**: AI 모델과 서비스를 함께 개발해야 하는 개발자, 원격 서버나 Docker 환경에서 자주 작업하는 개발자, 하나의 도구로 모든 개발을 통일하고 싶은 사용자.
### 2. 설치 없이 바로 시작하는 클라우드 환경: Colab & Kaggle
#### 1) Google Colab (구글 코랩)
- **개요**: Google에서 제공하는 클라우드 기반 무료 Jupyter 노트북 환경. 설치 없이 웹 브라우저만 있으면 즉시 사용 가능하며, **무료로 고성능 GPU/TPU를 제공**하는 것이 가장 큰 장점입니다.
- **권장 사용자**: 로컬 PC 사양이 낮거나 환경 구축이 부담스러운 입문자, 딥러닝 모델 학습 등 고사양 GPU가 필요한 학생 및 연구자.
#### 2) Kaggle (캐글)
- **개요**: 세계 최대의 데이터 과학 커뮤니티 및 대회 플랫폼. Colab처럼 무료 Jupyter 환경(Kaggle Notebooks)을 제공하며, **실제 기업의 문제와 데이터셋**으로 실력을 겨루고 배울 수 있는 곳입니다.
- **권장 사용자**: 데이터 과학 포트폴리오를 만들고 싶은 취준생, 실제 데이터를 다루며 실력을 검증하고 싶은 개발자.
### 3. 최종 결정: 우리 과정의 개발 환경
| 도구 | 주요 용도 | 장점 | 단점 | 우리 과정에서의 역할 |
|---|---|---|---|---|
| **VSCode** | **범용 개발 (AI, 웹, 서버)** | **높은 확장성, 통합 터미널, Git 연동, 가벼움** | 초기 설정이 필요함 | **주력 개발 환경** |
| JupyterLab | 대화형 데이터 분석 | 빠른 프로토타이핑, 결과 공유 용이 | 대규모 프로젝트 관리에는 부적합 | VSCode 확장 기능으로 사용 |
| Spyder | 탐색적 데이터 분석 | 직관적인 변수 확인 | 기능 확장이 제한적 | 사용하지 않음 |
| Colab/Kaggle | 클라우드 모델 학습 | 무료 GPU, 설치 불필요 | 런타임 제한, 커스터마이징 어려움 | **보조 환경** (GPU 필요 시) |
**결론: 우리는 VSCode를 주력 개발 환경으로 사용합니다!**
우리의 목표는 단순히 데이터를 분석하는 것을 넘어, AI 모델을 기반으로 한 완전한 '서비스'를 만드는 것입니다. VSCode는 탐색적 분석(Jupyter)부터 웹 서버 개발, 그리고 배포(Docker)까지, 서비스 개발의 전 과정을 하나의 작업실에서 매끄럽게 연결해주는 가장 강력하고 현대적인 도구입니다. 이 '만능 공방'에서 우리는 아이디어를 실제 서비스로 만들어가는 즐거움을 만끽하게 될 것입니다.
---
## 3일차: 실습 - VSCode로 나만의 개발 환경 구축하기
### 🎯 오늘의 목표
- VSCode를 설치하고 AI 개발에 필수적인 확장 프로그램을 설정합니다.
- VSCode 내에서 가상환경을 만들고 라이브러리를 설치/관리합니다.
- Jupyter 노트북을 실행하여 모든 설정이 완료되었는지 확인합니다.
---
### 1. VSCode 설치하기
[공식 홈페이지](https://code.visualstudio.com/)에 접속하여 자신의 운영체제에 맞는 'Stable' 버전을 다운로드하고 설치를 진행합니다.
### 2. 필수 확장 프로그램 설치하기
VSCode를 실행한 후, 왼쪽 사이드바에서 '확장(Extensions)' 아이콘(네모 블록 모양)을 클릭하고 다음 확장 프로그램들을 검색하여 설치합니다.
1. **Python** (ms-python.python)
- Microsoft에서 제공하는 공식 파이썬 확장입니다. 코드 자동 완성(IntelliSense), 디버깅, 린팅 등 파이썬 개발의 모든 필수 기능을 제공합니다.
2. **Jupyter** (ms-toolsai.jupyter)
- VSCode 내에서 주피터 노트북(.ipynb) 파일을 생성하고 실행할 수 있게 해줍니다. JupyterLab의 장점을 VSCode 안에서 그대로 누릴 수 있습니다.
3. **(선택) Korean Language Pack** (ms-ceintl.vscode-language-pack-ko)
- VSCode의 메뉴와 메시지를 한국어로 보고 싶다면 설치하세요.
### 3. 프로젝트 폴더 및 가상환경 설정 실습
이제 앞에서 배운 가상환경 만들기를 VSCode 안에서 직접 해보겠습니다.
1. **프로젝트 폴더 열기**: `파일 > 폴더 열기` 메뉴를 통해 `my-first-ai-project` 폴더를 엽니다.
2. **통합 터미널 열기**: `터미널 > 새 터미널` 메뉴를 클릭하거나 단축키(`` Ctrl + ` ``)를 눌러 VSCode 하단에 터미널을 엽니다.
3. **가상환경 생성 및 활성화**: 터미널에 아래 명령어를 차례로 입력합니다.
```powershell
# 1. 가상환경 생성 (이미 만들었다면 생략)
python -m venv .venv
# 2. 활성화
.venv\Scripts\Activate.ps1
```
이때 VSCode가 "새로운 환경을 발견했습니다"라는 알림을 표시하며, 해당 환경을 선택하겠냐고 물어볼 수 있습니다. **"예"**를 선택하면 됩니다.
### 4. 라이브러리 설치 및 "Hello, AI!"
1. **필수 라이브러리 설치**: 활성화된 터미널(`(.venv)` 표시 확인)에 아래 명령어를 입력하여 AI 개발에 필요한 핵심 라이브러리들을 설치합니다.
```bash
pip install numpy pandas matplotlib scikit-learn jupyterlab
```
2. **Jupyter 노트북으로 테스트**:
- VSCode 탐색기에서 **새 파일 아이콘**을 클릭하고 파일 이름을 `hello_ai.ipynb`로 만듭니다.
- `.ipynb` 파일이 열리면, 첫 번째 셀(Cell)에 아래 코드를 입력합니다.
```python
import pandas as pd
data = {'이름': ['철수', '영희', '민수'],
'나이': [25, 30, 28]}
df = pd.DataFrame(data)
print("Hello, AI! Pandas DataFrame 생성 성공!")
df
```
- 셀 왼쪽의 **실행 버튼(▶)**을 누르거나 `Shift + Enter` 키를 누릅니다.
- **[중요!]** 처음 코드를 실행할 때, VSCode가 오른쪽 상단에서 **"커널(Kernel) 선택"**을 요청할 수 있습니다.
- **💡 커널이 뭔가요?** '커널'은 우리가 작성한 파이썬 코드를 실제로 해석하고 실행하는 '엔진'이라고 생각하면 쉽습니다. 우리는 여러 개의 파이썬 엔진(전역 파이썬, 가상환경 파이썬 등) 중, 이 프로젝트만을 위한 전용 엔진, 즉 **`.venv` 가상환경의 파이썬을 선택해야 합니다.**
- "커널 선택"을 클릭한 뒤, **"Python Environments"** 목록에서 `.venv`라는 글자가 포함된 파이썬 인터프리터를 선택해주세요.
- 코드 아래에 "Hello, AI!..." 메시지와 함께 표 형태의 데이터프레임이 나타나면, 개발 환경 구축이 성공적으로 완료된 것입니다! 🥳
---
## 📝 1주차 요약
이번 주차에는 성공적인 AI 서비스 개발을 위한 초석, 즉 개발 환경을 구축했습니다.
- **가상환경의 이해**: '프로젝트용 필통'이라는 비유를 통해, 왜 프로젝트별로 독립된 개발 환경이 필요한지 이해하고 `venv`를 이용해 직접 가상환경을 만들고 활성화하는 방법을 배웠습니다.
- **다양한 IDE 탐색**: 데이터 분석에 특화된 `Spyder`와 `JupyterLab`, 그리고 만능 공방과도 같은 `VSCode`의 특징과 장단점을 비교 분석했습니다.
- **표준 개발 환경 확정**: 우리는 AI 모델 개발부터 API 서버 구축까지 전 과정을 아우를 수 있는 VSCode를 주력 개발 환경으로, GPU가 필요할 때는 Google Colab을 보조 환경으로 사용하기로 결정했습니다.
- **VSCode 설정 완료**: VSCode에 Python, Jupyter 등 핵심 확장 프로그램을 설치하고, 터미널에서 가상환경을 연동하여 `hello_ai.ipynb` 파일을 성공적으로 실행했습니다.
## ✅ 1주차 환경 설정 체크리스트
모든 설정을 잘 마쳤는지 스스로 확인해보세요.
- [ ] Python이 내 컴퓨터에 설치되어 있다.
- [ ] VSCode가 설치되어 있고, Python 및 Jupyter 확장 프로그램이 설치되어 있다.
- [ ] `my-first-ai-project` 라는 이름의 프로젝트 폴더를 만들었다.
- [ ] VSCode의 통합 터미널에서 `.venv` 가상환경을 만들고 활성화할 수 있다. (`(.venv)` 표시 확인)
- [ ] 활성화된 가상환경에 `pip`로 `pandas` 등의 라이브러리를 설치했다.
- [ ] `hello_ai.ipynb` 노트북 파일을 만들고, `.venv` 가상환경을 커널로 선택하여 코드를 실행할 수 있다.
---
축하합니다! 이제 여러분은 AI 서비스 개발을 위한 전문적인 환경을 모두 갖추었습니다.
이 강력한 개발 환경 위에서, 다음 시간에는 파이썬의 핵심 문법들을 본격적으로 탐험하며 실제 코딩의 세계로 들어가 보겠습니다.
**➡️ 다음 시간: [Part 2: 파이썬 핵심 문법](part_2_python_core_syntax.md)**