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

TIENIPIA QUALIFIED STANDARD