소개 및 Academic Suite의 기초

발행: (2025년 12월 29일 오전 11:59 GMT+9)
5 분 소요
원문: Dev.to

Source: Dev.to

개요

이 장은 전체 책의 초기 기반을 제공합니다. 목표는 문제 상황부터 선택한 기술, 그리고 책 전반에 걸쳐 개발될 프로젝트 구조에 이르기까지 Academic Suite 시스템에 대한 기술적 개요를 제시하는 것입니다. 독자 안내에 초점을 맞춘 서문과 달리, 이 장은 기술 영역으로 들어가 시스템 구현의 출발점이 됩니다.

Academic Suite는 학교와 대학의 온라인 시험 관리를 주된 목적으로 하는 학습 관리 시스템(LMS)입니다.

온라인 시험 시스템의 핵심 과제

  • 고동시성
  • 데이터 무결성
  • 보안 및 부정행위 방지
  • 실시간 모니터링

이러한 과제들은 Academic Suite의 아키텍처 결정에 영향을 미치며, 신뢰성과 개발 용이성을 강조합니다.

기술 스택

백엔드 (Go)

  • 언어: Go (Golang) v1.24.0
  • 웹 프레임워크: Fiber v2 (fasthttp 기반, 높은 성능)
  • ORM: GORM
  • 인증: JWT (JSON Web Token)

Go를 선택한 이유:
Goroutine은 가볍고 효율적이어서 동시성이 높은 온라인 시험의 부하를 처리하기에 적합합니다. 또한 Go는 명시적이고 유지보수하기 쉬운 코드를 장려합니다.

프론트엔드 (React)

  • UI 프레임워크: React 18
  • 빌드 도구: Vite 6
  • 언어: TypeScript 5
  • 스타일링: Tailwind CSS 3.4
  • UI 컴포넌트: shadcn/ui
  • 상태 관리: Zustand
  • 데이터 패칭: TanStack Query (React Query)

이 스택은 네트워크 상황이 좋지 않아도 사용 가능한 반응형·안정적인 시험 인터페이스를 지원합니다.

모노레포 구성

Academic Suite는 모노레포 방식을 사용해 백엔드와 프론트엔드를 동일 저장소에 두면서도 역할을 구분합니다. 이를 통해 다음을 가능하게 합니다:

  • 프론트엔드와 백엔드 개발 동기화
  • 버전 관리 및 배포 간소화
  • 전체 시스템을 한 눈에 볼 수 있는 단일 저장소

프로젝트 디렉터리 구조

academic-suite/
├── backend/                # Source code API (Go)
│   ├── handlers/           # HTTP handlers / controllers
│   ├── models/             # Database schema (structs)
│   ├── routes/             # API endpoint definitions
│   ├── go.mod              # Go dependencies
│   └── main.go             # Backend application entry point

├── frontend/               # UI source code (React)
│   └── src/
│       ├── components/     # Reusable UI components
│       ├── pages/          # Application pages
│       ├── hooks/          # Custom React hooks
│       └── lib/            # Utilities (API client, helpers)
│   ├── package.json        # Frontend dependencies
│   └── vite.config.ts      # Build configuration

├── book/                   # Technical documentation (this book)
└── MANUAL.md               # Concise user guide

이 구조는 책 전반에 걸쳐 일관되게 사용되어 코드의 정돈과 가독성을 유지합니다.

개발 환경 전제 조건

  • Go 1.24 이상
  • PostgreSQL (프로덕션 권장) 또는 SQLite (개발용)
  • Node.js v18+ 또는 Bun v1.0+
  • Git

구현 단계에 들어가기 전에 위 도구들이 설치되어 있는지 확인하십시오.

요약 및 다음 단계

이번 장에서 다룬 내용:

  • Academic Suite의 배경 및 목적
  • 온라인 시험 시스템의 주요 과제
  • 백엔드와 프론트엔드에 선택된 기술 스택
  • 모노레포 조직 방식 및 디렉터리 레이아웃
  • 필수 개발 환경 설정

2장에서는 시스템의 가장 중요한 기반인 데이터베이스 설계를 시작합니다. 여기서는 시험 데이터, 사용자, 채점 결과가 일관되고 효율적으로 관리되는 방식을 정의합니다.

Back to Blog

관련 글

더 보기 »