개발환경 표준
2.1. IDE 표준
모든 개발자는 Visual Studio Code를 표준 IDE로 사용해야 합니다.
2.1.1. 필수 확장 프로그램
| 확장 프로그램 | 용도 |
|---|---|
| Extension Pack for Java | Java 개발 (Language Support, Debugger, Maven 등 포함) |
| Spring Boot Extension Pack | Spring Boot 지원 (Dashboard, Initializr, Properties 등) |
| Vue Official | Vue 3 SFC 지원 |
| ESLint | JavaScript/TypeScript 린팅 |
| Prettier - Code formatter | 코드 포매팅 |
| EditorConfig for VS Code | .editorconfig 적용 |
| GitLens | Git 이력 시각화 |
| REST Client | API 테스트 (.http 파일) |
2.1.2. 프로젝트 공유 설정
프로젝트 루트에 .vscode/settings.json을 포함하여 팀 전체가 동일한 설정을 사용해야 합니다.
json
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"[java]": {
"editor.defaultFormatter": "josevseb.google-java-format-for-vs-code"
},
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"files.eol": "\n",
"files.trimTrailingWhitespace": true,
"files.insertFinalNewline": true
}2.1.3. 추천 확장 프로그램 목록
프로젝트 루트에 .vscode/extensions.json을 포함하여 신규 개발자가 필수 확장을 자동으로 설치할 수 있도록 합니다.
json
{
"recommendations": [
"vscjava.vscode-java-pack",
"vmware.vscode-boot-dev-pack",
"vue.volar",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"editorconfig.editorconfig",
"eamodio.gitlens",
"humao.rest-client"
]
}2.2. EditorConfig
프로젝트 루트에 .editorconfig 파일을 반드시 포함해야 합니다.
ini
root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 2
insert_final_newline = true
trim_trailing_whitespace = true
[*.java]
indent_size = 2
[*.xml]
indent_size = 2
[*.{yml,yaml}]
indent_size = 2
[*.md]
trim_trailing_whitespace = false
[Makefile]
indent_style = tabGoogle Java Format
Google Java Format은 들여쓰기를 2칸 스페이스로 강제합니다. .editorconfig의 Java 들여쓰기도 이에 맞춰 2칸으로 설정합니다.
2.3. 런타임 버전 관리
2.3.1. Java
- 필수 버전: Java 21 (LTS)
- 버전 관리 도구: SDKMAN 사용을 권장합니다.
bash
# SDKMAN 설치
curl -s "https://get.sdkman.io" | bash
# Java 21 설치
sdk install java 21.0.6-tem
# 프로젝트 디렉토리에 버전 고정
sdk env init프로젝트 루트에 .sdkmanrc 파일을 포함합니다.
properties
java=21.0.6-tem2.3.2. Node.js
- 필수 버전: Node.js 22 (LTS)
- 버전 관리 도구: fnm 또는 nvm 사용을 권장합니다.
bash
# fnm 사용 시
fnm install 22
fnm use 22프로젝트 루트에 .node-version 파일을 포함합니다.
222.3.3. 패키지 매니저
- 필수: yarn
- yarn 버전은 프로젝트별로
package.json의packageManager필드로 고정합니다.
2.4. 환경변수 관리
2.4.1. 파일 규칙
| 파일 | 용도 | Git 추적 |
|---|---|---|
.env.example | 환경변수 목록 및 설명 (값 없음) | O |
.env.local | 로컬 개발용 실제 값 | X |
.env.development | 개발 서버 환경 (프론트엔드 Vite용) | O |
.env.production | 프로덕션 환경 (프론트엔드 Vite용) | O |
2.4.2. 시크릿 관리 원칙
- 비밀번호, API 키, 토큰 등 민감 정보는 절대로 소스코드에 하드코딩하지 않습니다.
.env.local파일은 반드시.gitignore에 포함해야 합니다.- CI/CD 환경에서는 CircleCI의 Environment Variables 또는 Context를 사용합니다.