Skip to content

Latest commit

Β 

History

History
263 lines (185 loc) Β· 6.99 KB

File metadata and controls

263 lines (185 loc) Β· 6.99 KB

개발 ν™˜κ²½ μ„€μ •

이 λ¬Έμ„œμ—μ„œλŠ” Altsis ν”„λ‘œμ νŠΈμ˜ 둜컬 개발 ν™˜κ²½μ„ κ΅¬μΆ•ν•˜λŠ” 방법을 μ„€λͺ…ν•©λ‹ˆλ‹€.


λͺ©μ°¨

  1. ν•„μˆ˜ 도ꡬ
  2. μ €μž₯μ†Œ 클둠 및 μ˜μ‘΄μ„± μ„€μΉ˜
  3. ν™˜κ²½ λ³€μˆ˜ μ„€μ •
  4. 둜컬 μ„œλ²„ μ‹€ν–‰
  5. 개발 도ꡬ μΆ”μ²œ

1. ν•„μˆ˜ 도ꡬ

μ•„λž˜ 도ꡬ듀이 μ‹œμŠ€ν…œμ— μ„€μΉ˜λ˜μ–΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€.

ν•„μˆ˜

도ꡬ μ΅œμ†Œ 버전 μ„€μΉ˜ 방법
Node.js LTS (18.x 이상) nodejs.org λ˜λŠ” nvm install --lts
Yarn 1.22.x 이상 npm install -g yarn
Git 2.x 이상 git-scm.com
MongoDB 6.x 이상 mongodb.com
Redis 7.x 이상 redis.io

선택 (ꢌμž₯)

도ꡬ μš©λ„
MongoDB Compass MongoDB GUI ν΄λΌμ΄μ–ΈνŠΈ - 데이터 쑰회/μˆ˜μ • μ‹œ 편리
Redis CLI / RedisInsight Redis μ„Έμ…˜ 데이터 확인
Postman API ν…ŒμŠ€νŠΈ
nvm (Node Version Manager) Node.js 버전 관리

Node.js μ„€μΉ˜ 확인

# Node.js 버전 확인
node --version
# v18.x.x 이상이어야 ν•©λ‹ˆλ‹€

# Yarn 버전 확인
yarn --version

# Git 버전 확인
git --version

2. μ €μž₯μ†Œ 클둠 및 μ˜μ‘΄μ„± μ„€μΉ˜

μ €μž₯μ†Œ 클둠

git clone <repository-url> school-information-system
cd school-information-system

μ˜μ‘΄μ„± μ„€μΉ˜

ν”„λ‘œμ νŠΈλŠ” 루트, backend/, frontend/ μ„Έ 곳에 각각 package.json이 μžˆμŠ΅λ‹ˆλ‹€. 각 λ””λ ‰ν† λ¦¬μ—μ„œ μ˜μ‘΄μ„±μ„ μ„€μΉ˜ν•΄μ•Ό ν•©λ‹ˆλ‹€.

# 루트 μ˜μ‘΄μ„± μ„€μΉ˜
yarn install

# λ°±μ—”λ“œ μ˜μ‘΄μ„± μ„€μΉ˜
cd backend
yarn install

# ν”„λ‘ νŠΈμ—”λ“œ μ˜μ‘΄μ„± μ„€μΉ˜
cd ../frontend
yarn install

μ°Έκ³ : λ°±μ—”λ“œλŠ” "type": "module"을 μ‚¬μš©ν•˜μ—¬ ES Module 문법(import/export)을 μ‚¬μš©ν•©λ‹ˆλ‹€.


3. ν™˜κ²½ λ³€μˆ˜ μ„€μ •

λ°±μ—”λ“œ ν™˜κ²½ λ³€μˆ˜

λ°±μ—”λ“œλŠ” NODE_ENV 값에 따라 λ‹€λ₯Έ .env νŒŒμΌμ„ λ‘œλ“œν•©λ‹ˆλ‹€:

NODE_ENV 파일 μœ„μΉ˜
local backend/.env.local
test backend/.env.test
기타 (production λ“±) backend/.env (dotenv κΈ°λ³Έ)

backend/.env.local νŒŒμΌμ„ μƒμ„±ν•˜κ³  μ•„λž˜ ν•­λͺ©μ„ μ„€μ •ν•©λ‹ˆλ‹€:

# μ„œλ²„ μ„€μ •
PORT=4000

# λ°μ΄ν„°λ² μ΄μŠ€
DB_URL=mongodb://localhost:27017

# Redis
REDIS_URL=redis://localhost:6379

# μ„Έμ…˜
session_key=your_session_secret_key_here

# CORS ν—ˆμš© 도메인 (ν”„λ‘ νŠΈμ—”λ“œ URL)
URL=http://localhost:3000

# AWS S3 (파일 μ—…λ‘œλ“œ)
AWS_ACCESS_KEY=your_aws_access_key
AWS_SECRET_KEY=your_aws_secret_key
AWS_REGION=ap-northeast-2
AWS_BUCKET=your_bucket_name

# Google OAuth (선택)
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret

ν”„λ‘ νŠΈμ—”λ“œ ν™˜κ²½ λ³€μˆ˜

frontend/.env νŒŒμΌμ„ μƒμ„±ν•©λ‹ˆλ‹€:

# λ°±μ—”λ“œ μ„œλ²„ URL
REACT_APP_SERVER_URL=http://localhost:4000

주의: .env νŒŒμΌμ€ μ ˆλŒ€ Git에 μ»€λ°‹ν•˜μ§€ λ§ˆμ‹­μ‹œμ˜€. .gitignore에 이미 ν¬ν•¨λ˜μ–΄ μžˆλŠ”μ§€ ν™•μΈν•˜μ‹­μ‹œμ˜€.


4. 둜컬 μ„œλ²„ μ‹€ν–‰

MongoDB 및 Redis μ‹œμž‘

# MongoDB μ‹œμž‘ (macOS - Homebrew)
brew services start mongodb-community

# Redis μ‹œμž‘ (macOS - Homebrew)
brew services start redis

λ°±μ—”λ“œ μ„œλ²„ μ‹€ν–‰

cd backend

# 개발 λͺ¨λ“œ (nodemon - 파일 λ³€κ²½ μ‹œ μžλ™ μž¬μ‹œμž‘)
yarn dev

# λ˜λŠ” 둜컬 λͺ¨λ“œ (.env.local μ‚¬μš©)
yarn local

정상 μ‹€ν–‰ μ‹œ μ•„λž˜μ™€ 같은 λ‘œκ·Έκ°€ 좜λ ₯λ©λ‹ˆλ‹€:

NODE_ENV is development
debug: process.env.DB_URL is mongodb://localhost:27017
Express server listening on port 4000

ν”„λ‘ νŠΈμ—”λ“œ μ„œλ²„ μ‹€ν–‰

cd frontend

# 개발 λͺ¨λ“œ (Hot Reload)
yarn start

정상 μ‹€ν–‰ μ‹œ λΈŒλΌμš°μ €μ—μ„œ http://localhost:3000이 μžλ™μœΌλ‘œ μ—΄λ¦½λ‹ˆλ‹€.

μ‹€ν–‰ 슀크립트 μš”μ•½

μœ„μΉ˜ λͺ…λ Ήμ–΄ μ„€λͺ…
backend/ yarn dev 개발 λͺ¨λ“œ (nodemon, NODE_ENV=development)
backend/ yarn local 둜컬 λͺ¨λ“œ (nodemon, NODE_ENV=local, .env.local μ‚¬μš©)
backend/ yarn prod ν”„λ‘œλ•μ…˜ λͺ¨λ“œ (NODE_ENV=production)
backend/ yarn test Jest ν…ŒμŠ€νŠΈ μ‹€ν–‰
backend/ yarn jsdoc JSDoc λ¬Έμ„œ 생성
frontend/ yarn start 개발 μ„œλ²„ (React Scripts, Hot Reload)
frontend/ yarn build ν”„λ‘œλ•μ…˜ λΉŒλ“œ
frontend/ yarn test ν…ŒμŠ€νŠΈ μ‹€ν–‰

5. 개발 도ꡬ μΆ”μ²œ

VS Code ν™•μž₯ ν”„λ‘œκ·Έλž¨

ν™•μž₯ ν”„λ‘œκ·Έλž¨ μš©λ„
ESLint JavaScript/TypeScript λ¦°νŒ…
Prettier - Code formatter μ½”λ“œ ν¬λ§€νŒ…
SCSS IntelliSense SCSS μžλ™ μ™„μ„±
CSS Modules CSS Module 클래슀λͺ… μžλ™ μ™„μ„±
ES7+ React/Redux/React-Native snippets React μ½”λ“œ μŠ€λ‹ˆνŽ«
GitLens Git 이λ ₯ 좔적
Thunder Client VS Code λ‚΄ API ν…ŒμŠ€νŠΈ
MongoDB for VS Code MongoDB 데이터 쑰회

VS Code μ„€μ • ꢌμž₯사항

settings.json에 μ•„λž˜ 섀정을 μΆ”κ°€ν•˜λ©΄ 개발 κ²½ν—˜μ΄ ν–₯μƒλ©λ‹ˆλ‹€:

{
  "editor.formatOnSave": true,
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.codeActionsOnSave": {
    "source.fixAll.eslint": "explicit"
  },
  "typescript.tsdk": "frontend/node_modules/typescript/lib",
  "css.modules.camelCase": true
}

λΈŒλΌμš°μ € ν™•μž₯ ν”„λ‘œκ·Έλž¨

ν™•μž₯ ν”„λ‘œκ·Έλž¨ μš©λ„
React Developer Tools React μ»΄ν¬λ„ŒνŠΈ 트리 검사, μƒνƒœ 확인, μ„±λŠ₯ ν”„λ‘œνŒŒμΌλ§
Redux DevTools Zustand μŠ€ν† μ–΄ μƒνƒœ 디버깅 (ZustandλŠ” Redux DevTools ν˜Έν™˜)

MongoDB Compass

MongoDB Compassλ₯Ό μ‚¬μš©ν•˜λ©΄ 데이터λ₯Ό μ‹œκ°μ μœΌλ‘œ 탐색할 수 μžˆμŠ΅λ‹ˆλ‹€:

  1. MongoDB Compass μ„€μΉ˜: λ‹€μš΄λ‘œλ“œ
  2. μ—°κ²° λ¬Έμžμ—΄ μž…λ ₯: mongodb://localhost:27017
  3. 아카데미별 λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€

팁: λ©€ν‹° λ°μ΄ν„°λ² μ΄μŠ€ κ΅¬μ‘°μ΄λ―€λ‘œ, 각 μ•„μΉ΄λ°λ―ΈλŠ” academyIdλ₯Ό μ΄λ¦„μœΌλ‘œ ν•˜λŠ” λ³„λ„μ˜ λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.


문제 ν•΄κ²°

자주 λ°œμƒν•˜λŠ” 문제

증상 원인 ν•΄κ²° 방법
ECONNREFUSED (MongoDB) MongoDBκ°€ μ‹€ν–‰λ˜μ§€ μ•ŠμŒ brew services start mongodb-community
ECONNREFUSED (Redis) Redisκ°€ μ‹€ν–‰λ˜μ§€ μ•ŠμŒ brew services start redis
CORS 였λ₯˜ .env의 URL 값이 ν”„λ‘ νŠΈμ—”λ“œ URLκ³Ό 뢈일치 URL=http://localhost:3000 확인
μ„Έμ…˜ μœ μ§€ μ•ˆλ¨ μΏ ν‚€ μ„€μ • 문제 ν”„λ‘ νŠΈμ—”λ“œμ™€ λ°±μ—”λ“œκ°€ 같은 도메인인지 확인
MODULE_NOT_FOUND μ˜μ‘΄μ„± λ―Έμ„€μΉ˜ ν•΄λ‹Ή λ””λ ‰ν† λ¦¬μ—μ„œ yarn install μž¬μ‹€ν–‰
포트 좩돌 이미 μ‚¬μš© 쀑인 포트 lsof -i :4000으둜 확인 ν›„ ν”„λ‘œμ„ΈμŠ€ μ’…λ£Œ

λͺ©μ°¨λ‘œ λŒμ•„κ°€κΈ°