Skip to content

Latest commit

Β 

History

History
129 lines (96 loc) Β· 5.4 KB

File metadata and controls

129 lines (96 loc) Β· 5.4 KB

개발자 κ°€μ΄λ“œ

Altsis 학ꡐ 정보 μ‹œμŠ€ν…œ(School Information System)의 개발자λ₯Ό μœ„ν•œ μ’…ν•© κ°€μ΄λ“œμž…λ‹ˆλ‹€. 이 λ¬Έμ„œλŠ” ν”„λ‘œμ νŠΈμ— μƒˆλ‘œ ν•©λ₯˜ν•˜λŠ” κ°œλ°œμžλΆ€ν„° κΈ°μ‘΄ κ°œλ°œμžκΉŒμ§€ λͺ¨λ‘λ₯Ό λŒ€μƒμœΌλ‘œ ν•©λ‹ˆλ‹€.


λͺ©μ°¨

λ¬Έμ„œ μ„€λͺ…
개발 ν™˜κ²½ μ„€μ • ν•„μˆ˜ 도ꡬ μ„€μΉ˜, μ €μž₯μ†Œ 클둠, ν™˜κ²½ λ³€μˆ˜ μ„€μ •, 둜컬 μ„œλ²„ μ‹€ν–‰
ν”„λ‘œμ νŠΈ ꡬ쑰 전체 디렉토리 트리, λ°±μ—”λ“œ/ν”„λ‘ νŠΈμ—”λ“œ ꡬ쑰 상세 μ„€λͺ…
ν”„λ‘ νŠΈμ—”λ“œ 개발 κ°€μ΄λ“œ React + TypeScript 기반 ν”„λ‘ νŠΈμ—”λ“œ μ•„ν‚€ν…μ²˜, λΌμš°νŒ…, μƒνƒœ 관리, API 호좜, ν…Œλ§ˆ μ‹œμŠ€ν…œ
λ°±μ—”λ“œ 개발 κ°€μ΄λ“œ Express.js REST API, 계측 ꡬ쑰, λͺ¨λΈ/컨트둀러/μ„œλΉ„μŠ€ μž‘μ„±λ²•, 디버깅 ν”„λ‘œμ„ΈμŠ€
μ½”λ”© μŠ€νƒ€μΌ κ°€μ΄λ“œ λͺ…λͺ… κ·œμΉ™, TypeScript κ·œμΉ™, Prettier/Linter μ„€μ •, Airbnb Style Guide
ν…ŒμŠ€νŠΈ Jest 기반 ν…ŒμŠ€νŠΈ μ‹€ν–‰, μž‘μ„± κ°€μ΄λ“œ, 디버깅 방법

μ°Έκ³  섀계 λ…ΈνŠΈ

곡식 κ°€μ΄λ“œμ— ν¬ν•¨λ˜κΈ° μ „Β·λ°–μ˜ 섀계 λ¬Έμ„œμž…λ‹ˆλ‹€.

λ¬Έμ„œ μ„€λͺ…
μ˜ˆμ•½ κΈ°λŠ₯ 섀계 μ˜ˆμ•½ κΈ°λŠ₯ 섀계 λ…ΈνŠΈ
Alt Board 양식 맀뉴얼 Alt Board 양식 μ‚¬μš© 맀뉴얼

기술 μŠ€νƒ μš”μ•½

ν”„λ‘ νŠΈμ—”λ“œ

기술 버전 μš©λ„
React 18.3.x UI 라이브러리
TypeScript 4.9.x 정적 νƒ€μž… 검사
React Router 6.x SPA λΌμš°νŒ…
Zustand 4.x κ²½λŸ‰ μƒνƒœ 관리 (에디터)
SCSS Modules - μ»΄ν¬λ„ŒνŠΈ μŠ€μ½”ν”„ μŠ€νƒ€μΌλ§
Axios 0.27.x HTTP ν΄λΌμ΄μ–ΈνŠΈ
Socket.IO Client 4.x μ‹€μ‹œκ°„ 톡신

λ°±μ—”λ“œ

기술 버전 μš©λ„
Express.js 4.21.x REST API μ„œλ²„
Mongoose 6.x MongoDB ODM
Passport 0.6.x 인증 (Local, Google)
Redis 4.x μ„Έμ…˜ μ €μž₯μ†Œ
Socket.IO 4.x WebSocket μ„œλ²„
AWS S3 - 파일 μ €μž₯μ†Œ
Winston 3.x λ‘œκΉ…
Jest 29.x ν…ŒμŠ€νŠΈ ν”„λ ˆμž„μ›Œν¬

λ°μ΄ν„°λ² μ΄μŠ€

기술 μš©λ„
MongoDB 메인 λ°μ΄ν„°λ² μ΄μŠ€ (λ©€ν‹° λ°μ΄ν„°λ² μ΄μŠ€ ꡬ쑰)
Redis μ„Έμ…˜ μ €μž₯μ†Œ, 캐싱

μ‹œμŠ€ν…œ μ•„ν‚€ν…μ²˜ κ°œμš”

[ν΄λΌμ΄μ–ΈνŠΈ (React SPA)]
        |
        | HTTP / WebSocket
        v
[Express.js μ„œλ²„]
   |         |         |
   v         v         v
[MongoDB] [Redis]   [AWS S3]
(데이터)  (μ„Έμ…˜)    (파일)

AltsisλŠ” λ©€ν‹° ν…Œλ„Œμ‹œ(Multi-Tenancy) ꡬ쑰λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€. 각 아카데미(학원/κ΅μœ‘κΈ°κ΄€)λŠ” λ…λ¦½λœ MongoDB λ°μ΄ν„°λ² μ΄μŠ€λ₯Ό κ°€μ§€λ©°, conn[academyId].model() νŒ¨ν„΄μœΌλ‘œ μ ‘κ·Όν•©λ‹ˆλ‹€.


μ‚¬μš©μž κΆŒν•œ 체계

μ‹œμŠ€ν…œμ€ λ‹€μŒκ³Ό 같은 κΆŒν•œ λ ˆλ²¨μ„ μ§€μ›ν•©λ‹ˆλ‹€:

κΆŒν•œ μ„€λͺ… μ ‘κ·Ό λ²”μœ„
owner μ‹œμŠ€ν…œ μ†Œμœ μž 전체 아카데미 관리
admin 아카데미 κ΄€λ¦¬μž 아카데미 λ‚΄ 전체 관리
manager λ§€λ‹ˆμ € 학ꡐ/ν•™κΈ° 관리
teacher ꡐ사 μˆ˜μ—… κ°œμ„€, κ°•μ˜κ³„νšμ„œ, 평가
student 학생 μˆ˜κ°•μ‹ μ²­, μˆ˜μ—… μ°Έμ—¬

핡심 도메인 κ°œλ…

  • 아카데미(Academy): μ΅œμƒμœ„ 쑰직 λ‹¨μœ„ (학원/κ΅μœ‘κΈ°κ΄€)
  • 학ꡐ(School): 아카데미 ν•˜μœ„μ˜ 학ꡐ λ‹¨μœ„
  • ν•™κΈ°(Season): ν•™κ΅μ˜ 학년도/ν•™κΈ° λ‹¨μœ„, ꡐ과λͺ©/μ‹œκ°„ν‘œ/양식/κΆŒν•œ μ„€μ • 포함
  • 등둝(Registration): μ‚¬μš©μžμ™€ ν•™κΈ°μ˜ μ—°κ²° (μ—­ν• : teacher/student)
  • κ°•μ˜κ³„νšμ„œ(Syllabus): ꡐ사가 κ°œμ„€ν•˜λŠ” μˆ˜μ—… 정보
  • μˆ˜κ°•(Enrollment): ν•™μƒμ˜ μˆ˜μ—… μˆ˜κ°• 기둝
  • 양식(Form): κ΄€λ¦¬μžκ°€ μ •μ˜ν•˜λŠ” λ¬Έμ„œ 양식 (μ‹œκ°„ν‘œ, κ°•μ˜κ³„νšμ„œ, 평가 λ“±)
  • μΊ˜λ¦°λ”(Calendar): 학사 일정 관리 (μˆ˜λ™ μž…λ ₯ + μžλ™ 동기화)
  • κ²Œμ‹œνŒ(Board): 학ꡐ λ‹¨μœ„ 곡지/자유 κ²Œμ‹œνŒ
  • μ±„νŒ…(Chat): μ‹€μ‹œκ°„ λ©”μ‹œμ§•

μ‹œμž‘ν•˜κΈ°

  1. 개발 ν™˜κ²½ μ„€μ •λΆ€ν„° μ‹œμž‘ν•˜μ—¬ 둜컬 개발 ν™˜κ²½μ„ κ΅¬μΆ•ν•©λ‹ˆλ‹€.
  2. ν”„λ‘œμ νŠΈ ꡬ쑰λ₯Ό μ°Έκ³ ν•˜μ—¬ μ½”λ“œλ² μ΄μŠ€μ˜ 전체적인 λ ˆμ΄μ•„μ›ƒμ„ νŒŒμ•…ν•©λ‹ˆλ‹€.
  3. λ‹΄λ‹Ή μ˜μ—­μ— 따라 ν”„λ‘ νŠΈμ—”λ“œ λ˜λŠ” λ°±μ—”λ“œ κ°€μ΄λ“œλ₯Ό μˆ™μ§€ν•©λ‹ˆλ‹€.
  4. μ½”λ”© μŠ€νƒ€μΌμ„ μ€€μˆ˜ν•˜μ—¬ μΌκ΄€λœ μ½”λ“œλ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€.
  5. ν…ŒμŠ€νŠΈ κ°€μ΄λ“œμ— 따라 λ³€κ²½ 사항을 κ²€μ¦ν•©λ‹ˆλ‹€.

λ¬Έμ„œ μœ μ§€λ³΄μˆ˜ 체크리슀트

κΈ°λŠ₯Β·APIΒ·UXλ₯Ό λ°”κΏ€ λ•Œ 곡식 λ¬Έμ„œ(documentation/)κ°€ μ½”λ“œμ™€ μ–΄κΈ‹λ‚˜μ§€ μ•Šλ„λ‘ μ•„λž˜λ₯Ό ν™•μΈν•©λ‹ˆλ‹€.

  • μƒˆ backend/src/routes/*λ₯Ό μΆ”κ°€Β·λ³€κ²½ν–ˆλ‹€λ©΄ documentation/api-reference/에 λ¬Έμ„œ(λ˜λŠ” κΈ°μ‘΄ λ¬Έμ„œμ˜ 절)λ₯Ό μΆ”κ°€ν•˜κ³  API κ°œμš” λ¦¬μ†ŒμŠ€ ν‘œΒ·api-reference READMEΒ·INDEX에 λ§ν¬ν•œλ‹€.
  • μ‚¬μš©μžμ—κ²Œ λ³΄μ΄λŠ” λ©”λ‰΄Β·νλ¦„Β·κΆŒν•œμ΄ λ°”λ€Œλ©΄ user-guide/ λ˜λŠ” admin-guide/λ₯Ό κ°±μ‹ ν•œλ‹€.
  • λ¬Έμ„œ λ¬ΆμŒμ„ 의미 있게 손봀닀면 INDEX 버전 μ •λ³΄μ˜ μ΅œμ’… μ—…λ°μ΄νŠΈ λ‚ μ§œλ₯Ό κ°±μ‹ ν•œλ‹€.
  • 섀계 μ΄ˆμ•ˆλ§Œ μžˆλŠ” λ‚΄μš©μ€ docs/에 두고, INDEX/개발자 κ°€μ΄λ“œμ˜γ€Œμ°Έκ³  섀계 λ…ΈνŠΈγ€λ‘œλ§Œ λ§ν¬ν•œλ‹€.