Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
118 commits
Select commit Hold shift + click to select a range
ce4bf33
Merge pull request #2 from zero-ide/feature/IDE-1-auth-and-clone
ori0o0p Jan 28, 2026
64d6728
test: add failing test for AuthManager URL generation (RED)
ori0o0p Jan 28, 2026
c224c92
feat: implement getLoginURL to pass test (GREEN)
ori0o0p Jan 28, 2026
b36f21f
test: add failing test for code extraction (RED)
ori0o0p Jan 28, 2026
53c51ef
feat: implement extractCode to pass test (GREEN)
ori0o0p Jan 28, 2026
d69be38
test: add failing test for token request creation (RED)
ori0o0p Jan 28, 2026
1c3cb5b
feat: implement createTokenExchangeRequest (GREEN)
ori0o0p Jan 28, 2026
60eed8b
test: rename AuthManagerTests and add failing KeychainHelperTests (RED)
ori0o0p Jan 28, 2026
f978534
feat: implement KeychainHelper (GREEN)
ori0o0p Jan 28, 2026
45afbde
refactor: remove old test file
ori0o0p Jan 28, 2026
b09c5f0
Merge pull request #3 from zero-ide/feature/IDE-1-auth-impl
ori0o0p Jan 28, 2026
55565ee
docs: add spec for Docker integration via CLI
ori0o0p Jan 28, 2026
3d353ac
Merge pull request #4 from zero-ide/feature/IDE-2-docker-cli
ori0o0p Jan 28, 2026
c3061de
test: add failing CommandRunnerTests (RED)
ori0o0p Jan 28, 2026
c867d3c
feat: implement CommandRunner (GREEN)
ori0o0p Jan 28, 2026
e6f2fd4
test: add failing DockerServiceTests and protocol refactor (RED)
ori0o0p Jan 28, 2026
3112a29
feat: implement DockerService with CommandRunning injection (GREEN)
ori0o0p Jan 28, 2026
16ca6d3
Merge pull request #5 from zero-ide/feature/IDE-2-docker-impl
ori0o0p Jan 28, 2026
c8c712b
docs: add spec for Git clone and session management
ori0o0p Jan 28, 2026
226e9b7
Merge pull request #6 from zero-ide/feature/IDE-3-git-session-spec
ori0o0p Jan 28, 2026
de886a5
test: add failing SessionManagerTests (RED)
ori0o0p Jan 28, 2026
fd0069f
feat: implement SessionManager with persistence (GREEN)
ori0o0p Jan 28, 2026
95849c9
test: add failing DockerService.executeCommand test (RED)
ori0o0p Jan 28, 2026
ef6d3ab
feat: implement DockerService.executeCommand (GREEN)
ori0o0p Jan 28, 2026
7d09c76
test: add failing GitServiceTests (RED)
ori0o0p Jan 28, 2026
86d74aa
feat: implement GitService logic for cloning in container (GREEN)
ori0o0p Jan 28, 2026
f2e13e3
Merge pull request #7 from zero-ide/feature/IDE-3-git-session-impl
ori0o0p Jan 28, 2026
780f2cd
docs: add spec for UI integration and GitHub API
ori0o0p Jan 28, 2026
93dc849
Merge pull request #8 from zero-ide/feature/IDE-4-ui-api-spec
ori0o0p Jan 28, 2026
3201418
test: add failing GitHubServiceTests (RED)
ori0o0p Jan 28, 2026
16a272e
feat: implement Repository model and GitHubService (GREEN)
ori0o0p Jan 28, 2026
d5ee36f
feat: implement SwiftUI views for Login and RepoList
ori0o0p Jan 28, 2026
90ed4d9
Merge pull request #9 from zero-ide/feature/IDE-4-ui-api-impl
ori0o0p Jan 28, 2026
a3aa48d
docs: add spec for Editor View and Container Orchestration
ori0o0p Jan 28, 2026
b1ca6e3
Merge pull request #10 from zero-ide/feature/IDE-5-editor-spec
ori0o0p Jan 28, 2026
db279f8
test: add failing ContainerOrchestratorTests (RED)
ori0o0p Jan 28, 2026
47e71e2
feat: implement ContainerOrchestrator for session lifecycle (GREEN)
ori0o0p Jan 28, 2026
4a13a7b
feat: implement Monaco Editor, FileExplorer, and EditorView
ori0o0p Jan 28, 2026
4b03be8
Merge pull request #11 from zero-ide/feature/IDE-5-editor-impl
ori0o0p Jan 28, 2026
024fdf3
feat: integrate RepoListView with EditorView and add session management
ori0o0p Jan 28, 2026
b808fbf
Merge pull request #12 from zero-ide/feature/IDE-6-integration
ori0o0p Jan 28, 2026
f063c39
feat: implement real file I/O with Docker exec (#13)
ori0o0p Jan 28, 2026
2b942b9
fix: container keep-alive 명령어 추가 (#14)
ori0o0p Jan 28, 2026
ea9382f
fix: /workspace 경로에 repository clone (#15)
ori0o0p Jan 28, 2026
fcd6609
fix: Docker 명령어 따옴표 파싱 문제 수정 (sh -c 지원) (#16)
ori0o0p Jan 28, 2026
3359206
feat: increase sidebar width in RepoListView (#17)
ori0o0p Jan 28, 2026
b9ecc9e
fix: implement pagination for GitHub repositories (RED -> GREEN) (#18)
ori0o0p Jan 28, 2026
2863481
feat: use lightweight alpine image for containers (RED -> GREEN) (#19)
ori0o0p Jan 28, 2026
d479d12
feat: support organization repositories (RED -> GREEN) (#20)
ori0o0p Jan 28, 2026
3e3aecb
fix/IDE-9-input-focus | Native Editor(CodeEditTextView) 도입 및 Input 문제…
ori0o0p Jan 28, 2026
5278ec0
fix: move setActivationPolicy to onAppear (NSApp nil in init)
ori0o0p Jan 28, 2026
111a67c
refactor: extract constants and file icon helpers (#22)
ori0o0p Jan 29, 2026
de5e9cb
Docs: Update README with features and installation guide
ori0o0p Jan 29, 2026
e9551bb
Build: Add build scripts, entitlements, and logo
ori0o0p Jan 29, 2026
62c10e6
Fix: Material icons, Docker path detection, and crash prevention
ori0o0p Jan 29, 2026
e54d64b
Update README.md
ori0o0p Jan 29, 2026
0ae6277
feature/IDE-11-build-and-run-plan | Build & Run 계획 문서 (#23)
ori0o0p Jan 29, 2026
f011880
IDE-11: Build & Run Feature (#24)
ori0o0p Jan 29, 2026
dd38121
Docs: Add plan for IDE-12 Custom Configuration (#25)
ori0o0p Jan 29, 2026
70dd059
Update README.md
ori0o0p Jan 29, 2026
5cc5fd9
docs(IDE-9): add Java build configuration implementation plan
ori0o0p Jan 30, 2026
3cb72b9
Merge pull request #27 from zero-ide/feature/IDE-9-java-build-configu…
ori0o0p Jan 31, 2026
b2419c8
docs(IDE-9): add .context directory with development guidelines
ori0o0p Jan 31, 2026
5993534
Merge pull request #28 from zero-ide/feature/IDE-9-context-structure-…
ori0o0p Jan 31, 2026
0709eb9
test(IDE-9): add JDKConfiguration and BuildConfiguration tests
ori0o0p Jan 31, 2026
45b4dcb
feat(IDE-9): implement JDKConfiguration and BuildConfiguration models
ori0o0p Jan 31, 2026
af23325
Merge pull request #29 from zero-ide/feature/IDE-9-jdk-model
ori0o0p Jan 31, 2026
ff82157
test(IDE-9): add BuildConfigurationService tests
ori0o0p Jan 31, 2026
6ec721d
feat(IDE-9): implement BuildConfigurationService with file-based storage
ori0o0p Jan 31, 2026
22be528
Merge pull request #30 from zero-ide/feature/IDE-9-build-config-service
ori0o0p Jan 31, 2026
833da17
test(IDE-9): add BuildConfigurationView UI tests
ori0o0p Jan 31, 2026
15e89ec
feat(IDE-9): implement BuildConfigurationView UI with JDK selector
ori0o0p Jan 31, 2026
77c85dd
Merge pull request #31 from zero-ide/feature/IDE-9-build-config-ui
ori0o0p Jan 31, 2026
9e0abd7
test(IDE-9): add ExecutionService JDK integration tests
ori0o0p Jan 31, 2026
5595376
feat(IDE-9): integrate BuildConfigurationService with ExecutionService
ori0o0p Jan 31, 2026
d314199
Merge pull request #32 from zero-ide/feature/IDE-9-execution-integration
ori0o0p Jan 31, 2026
8f27e7f
feat(IDE-10): integrate BuildConfigurationView into Settings panel
ori0o0p Jan 31, 2026
58131eb
Merge pull request #33 from zero-ide/feature/IDE-10-settings-panel-in…
ori0o0p Jan 31, 2026
6b37f43
feat(IDE-11): use configured JDK image for Java projects in Container…
ori0o0p Jan 31, 2026
58e3b93
Merge pull request #34 from zero-ide/feature/IDE-11-container-jdk-image
ori0o0p Jan 31, 2026
1054300
feat(IDE-12): add Maven/Gradle auto-detection and Spring Boot support
ori0o0p Jan 31, 2026
5ba4604
Merge pull request #35 from zero-ide/feature/IDE-12-maven-gradle-support
ori0o0p Jan 31, 2026
5d9edb0
docs(IDE-13,14): add implementation plan documents
ori0o0p Jan 31, 2026
361bbc7
Merge pull request #36 from zero-ide/feature/IDE-13-14-plan-docs
ori0o0p Jan 31, 2026
7b7588c
docs: update context with IDE-9~12 completion and IDE-13,14 plans
ori0o0p Jan 31, 2026
477099f
test(IDE-13): add error handling tests for services
ori0o0p Jan 31, 2026
970b6ff
Merge pull request #37 from zero-ide/docs/update-context-ide-9-to-14
ori0o0p Jan 31, 2026
0503903
Merge pull request #38 from zero-ide/feature/IDE-13-remove-viewinspector
ori0o0p Jan 31, 2026
2b78d3f
test(IDE-13): add comprehensive AppState ViewModel tests
ori0o0p Jan 31, 2026
6058086
Merge pull request #39 from zero-ide/feature/IDE-13-viewmodel-tests
ori0o0p Jan 31, 2026
f9ab2ea
test(IDE-13): add integration tests for Docker, BuildConfiguration, S…
ori0o0p Jan 31, 2026
20d64f1
Merge pull request #40 from zero-ide/feature/IDE-13-integration-tests
ori0o0p Jan 31, 2026
15b0aac
feat(IDE-13): add ZeroError enum for standardized error handling (Pha…
ori0o0p Jan 31, 2026
7df2d48
Merge pull request #41 from zero-ide/feature/IDE-13-error-handling-im…
ori0o0p Jan 31, 2026
9deef85
feat(IDE-14): add Git basic operations - status, add, commit, branch,…
ori0o0p Feb 1, 2026
3d5bec1
Merge pull request #42 from zero-ide/feature/IDE-14-git-basic-operations
ori0o0p Feb 1, 2026
06427fd
feat(IDE-14): add Git History view (Phase 2)
ori0o0p Feb 1, 2026
ba2b53e
feat(IDE-14): add stash and merge/rebase support (Phase 3)
ori0o0p Feb 1, 2026
2f5d049
feat(IDE-14): integrate Git panel into EditorView (Phase 4)
ori0o0p Feb 1, 2026
86ab760
feat: improve GitHub login with token guide and better UX
ori0o0p Feb 1, 2026
549c3e6
Merge pull request #43 from zero-ide/feature/IDE-14-git-history
ori0o0p Feb 1, 2026
cbc720d
feat: apply app logo to LoginView UI
ori0o0p Feb 1, 2026
c95fc3d
Merge remote-tracking branch 'origin/main' into feature/IDE-14-git-hi…
ori0o0p Feb 1, 2026
d47f00e
Merge pull request #44 from zero-ide/feature/apply-logo-ui
ori0o0p Feb 1, 2026
ad6e602
feat: add release automation and app icon generation scripts
ori0o0p Feb 1, 2026
cb50d2a
Merge pull request #45 from zero-ide/feature/release-automation
ori0o0p Feb 1, 2026
1d77d5f
fix(release): improve release script with better error handling
ori0o0p Feb 1, 2026
f8dc9d3
feat(ci): add GitHub Actions workflows for CI and automated releases
ori0o0p Feb 1, 2026
3eaf04c
Merge pull request #46 from zero-ide/feature/ci-cd-workflows
ori0o0p Feb 1, 2026
8c0ee29
fix(tests): fix CI test failures - resolve MockCommandRunner conflict…
ori0o0p Feb 1, 2026
d9901ec
Merge pull request #47 from zero-ide/fix/ci-test-failures
ori0o0p Feb 1, 2026
bf8e41f
feat(lsp): add Java LSP PoC with multi-container architecture
ori0o0p Feb 1, 2026
1d2c447
Merge pull request #48 from zero-ide/feature/java-lsp-poc
ori0o0p Feb 1, 2026
044aad1
docs(lsp): add performance test results for Java LSP PoC
ori0o0p Feb 1, 2026
cf03b7f
Merge remote-tracking branch 'origin/main' into feature/java-lsp-poc
ori0o0p Feb 1, 2026
16efbee
docs(adr): add decision record for LSP container separation architecture
ori0o0p Feb 1, 2026
f042e95
docs: update conversation context with IDE-9~14, CI/CD, and LSP PoC p…
ori0o0p Feb 1, 2026
570cd5d
feat(lsp): integrate Java LSP into EditorView
ori0o0p Feb 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 56 additions & 0 deletions .context/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
# Zero 프로젝트 개발 가이드

## 핵심 원칙 (반드시 지킬 것)

### 1. 작업 시작 전 필수 체크
- [ ] `.context/` 문서 확인
- [ ] Git 브랜치 생성: `feature/IDE-{number}-{desc}`

### 2. 개발 철학
- **단순하게**: 어려운 문제를 복잡하게 풀지 말고, 단순하게 접근
- **작업 분해**: 어려운 작업은 단순한 단위까지 쪼개서 진행 (PR도 분리)
- **TDD**: Red → Green → Blue 커밋 사이클

### 3. Git 워크플로우
- **main 직접 커밋 금지** → 반드시 PR
- **브랜치명**: `feature/IDE-{number}-{desc}`
- **PR 타이틀**: `branch-name | 한글 설명`
- **머지**: Squash Merge 금지, Create a merge commit 사용

### 4. 커밋 규칙
- **Red**: 테스트만 (`test(scope): ...`)
- **Green**: 최소 구현 (`feat(scope): ...`)
- **Blue**: 리팩토링 (`refactor(scope): ...`)

### 5. PR 분리 기준
- 200줄 이상이면 분리 검토
- 리뷰어가 한 번에 이해하기 어려우면 분리

---

## 작업 유형별 가이드

| 작업 | 읽을 문서 |
|------|----------|
| **새 기능 개발** | README + `rules/development.md` |
| **커밋 작성** | README + `rules/tdd-commit.md` |
| **PR 작성** | `templates/pr.md` |
| **전체 가이드** | `SUMMARY.md` |

---

## 파일 위치

```
.context/
├── README.md # 이 파일 (핵심 규칙)
├── SUMMARY.md # 전체 인덱스
├── project-overview.md # 프로젝트 개요
├── conversation-context.md # 대화 컨텍스트
├── rules/
│ ├── development.md # 개발 가이드 (상세)
│ ├── tdd-commit.md # TDD 커밋 가이드
│ └── workflow.md # 워크플로우 체크리스트
└── templates/
└── pr.md # PR 템플릿
```
74 changes: 74 additions & 0 deletions .context/SUMMARY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
# Zero 프로젝트 문서 인덱스

## 전체 문서 목록

### 핵심 문서 (필수)
- `README.md` - 개발 핵심 원칙 (1페이지 분량)

### 프로젝트 정보
- `project-overview.md` - Zero 프로젝트 개요, 기술 스택, 구조
- `conversation-context.md` - 대화 핵심 내용, 결정사항

### 상세 가이드 (rules/)
- `rules/development.md` - 전체 개발 가이드
- Git 워크플로우 (상세)
- PR 규칙 (상세)
- 커밋 시간 조작 규칙
- 작업 분해 원칙
- 금지 사항

- `rules/tdd-commit.md` - TDD 커밋 가이드
- Red-Green-Blue 개념
- 커밋 메시지 규칙
- 예시 시나리오

- `rules/workflow.md` - 개발 워크플로우 체크리스트
- 작업 시작 전
- TDD 사이클
- PR 생성 전/후
- 커밋 메시지 검증

### 템플릿 (templates/)
- `templates/pr.md` - PR 템플릿 및 타이틀 규칙

---

## 작업 유형별 읽기 가이드

### 새 기능 개발 시
1. `README.md` - 핵심 원칙 확인
2. `rules/development.md` - 개발 가이드 (상세)
3. `.github/pull_request_template.md` - GitHub PR 템플릿

### 커밋 작성 시
1. `README.md` - 핵심 원칙 확인
2. `rules/tdd-commit.md` - TDD 커밋 가이드

### PR 작성 시
1. `templates/pr.md` - PR 타이틀 규칙
2. `.github/pull_request_template.md` - GitHub 템플릿 적용

### 전체 파악 시
- 모든 문서 순차적으로 읽기

---

## 핵심 규칙 요약

### 브랜치/PR
- 브랜치: `feature/IDE-{number}-{desc}`
- PR 타이틀: `branch-name | 한글 설명`
- main 직접 커밋 금지
- Squash Merge 금지

### TDD 커밋
- Red: 테스트만 (`test(scope): ...`)
- Green: 최소 구현 (`feat(scope): ...`)
- Blue: 리팩토링 (`refactor(scope): ...`)

### 작업 분해
- 어려운 작업은 단순한 단위까지 쪼개기
- PR도 분리 (200줄+이면 검토)

### 단순함
- 어려운 문제를 복잡하게 풀지 말고, 단순하게 접근
104 changes: 104 additions & 0 deletions .context/conversation-context.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
# 대화 컨텍스트 - 2026-01-30 ~ 2026-02-01

## 참여자
- **User**: 스ㅇ원 (javaSpring, GitHub: ori0o0p)
- **AI**: Kimi Code (Clawdbot)

## 대화 주제
1. Discord 채널 설정 (멘션 없이 응답, 특정 사용자만 대화 가능하도록 설정)
2. coffee-time 저장소 분석 및 클론
3. 개발자 성장 로드맵 (신입/취준생/초보자)
4. 후배 멘토링 로드맵 (소마고 출신, 1.5년 후 취업)
5. 클라이밍 CRM 백엔드 프로젝트 기획
6. Zero 프로젝트 이해 및 컨텍스트 저장
7. **Zero 프로젝트 IDE-9~14 완료** (Java Build Configuration + Git 통합)
8. **릴리스 자동화 및 CI/CD 설정**
9. **Java LSP PoC 완료** (멀티 컨테이너 아키텍처)

## 핵심 결정사항

### 1. Discord 설정
- `groupPolicy`: `allowlist`로 변경
- 사용자 `1434058032094122026`, `842694939083014155`만 대화 가능

### 2. 멘토링 프로젝트: 클라이밍 CRM 백엔드
- **대상**: 소마고 출신 후배 (1.5년 후 취업)
- **기간**: 3개월
- **기술 스택**: Java, Spring Boot, JPA, Docker
- **목표**: 실제 클라이밍장에서 사용 가능한 서비스 배포

### 3. AI 활용 전략
- **Month 1**: AI 금지 (기초 체득)
- **Month 2**: AI 보조 (페어 프로그래머)
- **Month 3**: AI 마스터 (10배 생산성)
- **핵심**: AI 없이도 코딩 가능한 실력을 먼저 쌓고, 그 다음 AI 활용

### 4. 문서 저장 위치
- `~/Documents/mentoring/climbing-crm-backend/` - 멘토링 문서
- `~/zero/.context/` - Zero 프로젝트 관련 컨텍스트

### 5. Zero 프로젝트 개발 완료 (2026-02-01)

#### IDE-9~12: Java Build Configuration ✅
- **IDE-9**: JDK 선택, Maven/Gradle 지원, ExecutionService 연동
- **IDE-10**: 설정 패널 UI 통합 (SettingsView, Cmd + ,)
- **IDE-11**: 컨테이너 생성 개선 (프로젝트 타입별 이미지 선택)
- **IDE-12**: Maven/Gradle 자동 감지 및 Spring Boot 지원

#### IDE-13: 테스트 및 품질 개선 ✅
- Phase 1: 에러 핸들링 테스트 추가
- Phase 2: ViewModel 단위 테스트 (AppState)
- Phase 3: 통합 테스트 (Docker, BuildConfiguration, SessionManager)
- Phase 4: ZeroError enum 정의 (표준화된 에러 타입)

#### IDE-14: Git 통합 개선 ✅
- Phase 1: Git 기본 작업 (status, add, commit, branch, push, pull)
- Phase 2: Git History (commit log, diff 보기)
- Phase 3: Stash & Merge/Rebase
- Phase 4: EditorView 통합 (Git 패널, 탭 UI)
- GitHub 로그인 UX 개선 (토큰 발급 가이드)

#### 릴리스 자동화 및 CI/CD ✅
- `scripts/release.sh`: 릴리스 자동화 (DMG 생성, 서명, 체크섬)
- `scripts/generate-icons.sh`: 앱 아이콘 생성
- `.github/workflows/ci.yml`: CI (빌드, 테스트)
- `.github/workflows/release.yml`: 자동 릴리스 (GitHub Releases 업로드)

### 6. Java LSP PoC 완료 ✅

#### 아키텍처: 멀티 컨테이너
```
Zero IDE (Monaco) ←WebSocket→ LSP Container (Eclipse JDT) ←Docker exec→ Project Container (Alpine)
```

#### 구현 내용
- **LSP Container**: `docker/lsp-java/` (Eclipse JDT + WebSocket bridge)
- **LSPContainerManager.swift**: 컨테이너 생명주기 관리
- **monaco-lsp.html**: Monaco Editor + LSP 연동

#### 성능 테스트 결과
| Metric | Expected | Actual | 평가 |
|--------|----------|--------|------|
| **이미지 크기** | 1GB+ | **496MB** | ✅ 생각보다 작음 |
| **메모리 사용** | 1GB+ | **206MB** | ✅ 훨씬 적음 |
| **시작 시간** | 10-30초 | **~5초** | ✅ 빠름 |
| **프로젝트 컨테이너** | - | **Alpine (50MB)** | ✅ 가벼움 |

#### ADR (Architecture Decision Record)
- **ADR 003**: LSP Container Separation Architecture
- **결정**: LSP 컨테이너 분리 + WebSocket 연결
- **이유**: 이미지 20x, 메모리 20x, 속도 10x 개선
- **위치**: `docs/adr/003-lsp-container-separation.md`

### 7. 개발 규칙 확정
- **TDD**: Red → Green → Blue 커밋 사이클
- **작업 분해**: 어려운 작업은 단순한 단위까지 쪼개서 진행 (PR도 분리)
- **단순하게**: 어려운 문제를 복잡하게 풀지 말고, 단순하게 접근
- **커밋 메시지**: `type(scope): description` 형식
- **ADR**: 중요한 기술적 결정은 ADR로 문서화

## 다음 작업 (예정)
- [ ] LSP UI 통합 (설정에서 활성화/비활성화)
- [ ] Python LSP 추가 (Pyright)
- [ ] v0.1.0 릴리스 (GitHub Releases)
- [ ] README 작성 (스크린샷, GIF)
81 changes: 81 additions & 0 deletions .context/project-overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# Zero 프로젝트 이해 및 컨텍스트

## 프로젝트 개요

**Zero**는 macOS용 네이티브 IDE로, Docker 기반의 격리된 개발 환경을 제공하는 애플리케이션이다.

### 핵심 철학
- **Zero Pollution**: 로컬 파일 시스템을 건드리지 않음 (무균실 개발)
- **Zero Config**: URL만 넣으면 즉시 개발 환경 세팅
- **Native Experience**: macOS Native (SwiftUI)의 쾌적함

### 기술 스택
- **언어**: Swift 5.9
- **UI 프레임워크**: SwiftUI (macOS 14+)
- **컨테이너 엔진**: Docker (Swift Client)
- **에디터**: Monaco Editor (VS Code 기반) + Highlightr

### 주요 기능
1. **Docker 환경 생성**: Alpine Linux 컨테이너 (~50MB)를 초 단위로 생성
2. **Git 통합**: GitHub 로그인, 저장소 탐색 및 클론
3. **코드 에디터**: 190+ 언어 지원, 구문 강조
4. **세션 관리**: 격리된 개발 세션 관리

### 프로젝트 구조
```
Zero/
├── Sources/Zero/
│ ├── Core/ # 핵심 로직
│ ├── Services/ # 서비스 레이어
│ │ ├── AuthManager.swift # GitHub 인증
│ │ ├── DockerService.swift # Docker 연동
│ │ ├── ContainerOrchestrator.swift # 컨테이너 오케스트레이션
│ │ ├── ExecutionService.swift # 코드 실행
│ │ ├── FileService.swift # 파일 관리
│ │ ├── GitHubService.swift # GitHub API
│ │ ├── GitService.swift # Git 연동
│ │ └── SessionManager.swift # 세션 관리
│ ├── Models/ # 데이터 모델
│ │ ├── Organization.swift
│ │ ├── Repository.swift
│ │ └── Session.swift
│ ├── Views/ # SwiftUI 뷰
│ │ ├── AppState.swift
│ │ ├── CodeEditorView.swift
│ │ ├── EditorView.swift
│ │ ├── FileExplorerView.swift
│ │ ├── LoginView.swift
│ │ ├── MonacoWebView.swift # Monaco 에디터 통합
│ │ ├── OutputView.swift
│ │ └── RepoListView.swift
│ ├── Helpers/ # 유틸리티
│ ├── Utils/ # 공통 유틸
│ └── Resources/ # 리소스 파일
├── Tests/ # 테스트 코드
├── docs/ # 문서
│ └── specs/ # 기능 명세
└── scripts/ # 빌드 스크립트
```

### 개발 워크플로우 규칙
1. **TDD (Test-Driven Development)**: Red → Green → Refactor 사이클 필수
2. **브랜치**: `feature/IDE-{number}-{desc}` (예: `feature/IDE-1-auth`)
3. **PR 타이틀**: `{Branch Name} | {Description}`
4. **PR 머지**: 리뷰 후 승인 받아야 머지

### 히스토리
- **IDE-1**: Auth (GitHub 로그인, Keychain)
- **IDE-2**: Docker Integration (CommandRunner, DockerService)
- **IDE-3**: Git Clone & Session Management
- **IDE-4~6**: UI Integration, Editor
- **IDE-7**: File I/O
- **IDE-8**: Lightweight Container (Alpine), Organization Support
- **IDE-9**: Java Build Configuration (JDK 선택, Maven/Gradle, Spring Boot)
- **IDE-10**: Settings Panel Integration (BuildConfigurationView in Settings)
- **IDE-11**: Container Image Selection (JDK 이미지, 프로젝트 타입별)
- **IDE-12**: Maven/Gradle Auto-detection (Spring Boot 지원)
- **IDE-13**: Testing & Quality Improvement (계획)
- **IDE-14**: Git Integration Enhancement (commit, branch, push - 계획)

### 저장소
- GitHub: https://github.com/ori0o0p/Zero
Loading