Skip to content

개발환경 표준

2.1. IDE 표준

모든 개발자는 Visual Studio Code를 표준 IDE로 사용해야 합니다.

2.1.1. 필수 확장 프로그램

확장 프로그램용도
Extension Pack for JavaJava 개발 (Language Support, Debugger, Maven 등 포함)
Spring Boot Extension PackSpring Boot 지원 (Dashboard, Initializr, Properties 등)
Vue OfficialVue 3 SFC 지원
ESLintJavaScript/TypeScript 린팅
Prettier - Code formatter코드 포매팅
EditorConfig for VS Code.editorconfig 적용
GitLensGit 이력 시각화
REST ClientAPI 테스트 (.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 = tab

Google 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-tem

2.3.2. Node.js

  • 필수 버전: Node.js 22 (LTS)
  • 버전 관리 도구: fnm 또는 nvm 사용을 권장합니다.
bash
# fnm 사용 시
fnm install 22
fnm use 22

프로젝트 루트에 .node-version 파일을 포함합니다.

22

2.3.3. 패키지 매니저

  • 필수: yarn
  • yarn 버전은 프로젝트별로 package.jsonpackageManager 필드로 고정합니다.

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를 사용합니다.

TIENIPIA QUALIFIED STANDARD