CI CHEESU IN / portfolio
online v2026.05 00:00:00 KST
Works 목록
P-07 · Fullstack · Infra · DevOps

cheesu.co.kr

SvelteKit 5 + Fastify 모노레포. React 런타임이 번들에서 빠지는 가벼움 때문에 Next.js 대신 선택. Terraform AWS Serverless, GitHub Actions OIDC 자동 배포.

SHOWCASE SvelteKit · Fastify · Turborepo cheesu/Portfolio
/ 01Stack
SvelteKitFastifyTurborepoTerraformAWSGitHub Actions
/ 02 아키텍처 개요
/ 03문제 / 배경

단순히 이력서를 웹으로 옮긴 것이 아니라, 실제로 동작하는 풀스택 엔지니어링 역량을 증명하는 포트폴리오가 필요했습니다. 인터랙티브 데모, 실시간 API, 프로덕션 인프라까지 갖춘 살아있는 쇼케이스.

/ 04구현 방식

Turborepo 모노레포로 SvelteKit 5 프론트엔드와 Fastify API 서버를 함께 관리하고, Terraform으로 AWS 인프라 전체를 코드화했습니다. GitHub Actions OIDC로 AWS 자격증명 없이 안전한 자동 배포를 구현했으며, Claude Code와 페어 프로그래밍 방식으로 개발했습니다.

/ 05기술 하이라이트
/ A

Turborepo 모노레포

apps/web (SvelteKit 5) + apps/text2sql-api (Fastify) + infra/terraform을 단일 레포에서 관리. 공유 node_modules와 빌드 캐시로 개발 속도 최적화. turbo build --filter로 변경된 패키지만 선택 빌드.

/ B

AWS Serverless 아키텍처

프론트엔드는 S3 + CloudFront로 정적 서빙(서버 비용 0원), API는 Lambda + API Gateway로 요청 기반 과금. serverless-http로 Fastify를 Lambda 핸들러로 감싸 기존 코드 변경 최소화.

/ C

Terraform IaC

S3, CloudFront, Lambda, API Gateway, Route53, ACM 인증서 전체를 Terraform으로 관리. terraform apply 한 번으로 전체 AWS 리소스 프로비저닝. 인프라 변경 이력이 git에 남습니다.

/ D

GitHub Actions + AWS OIDC

AWS Access Key 없이 OIDC(OpenID Connect)로 GitHub에서 AWS 역할을 임시 발급받아 배포. web 변경 시 S3 sync + CloudFront invalidation, API 변경 시 Lambda 함수 코드 업데이트 자동화.

/ E

Text2SQL API 보안

@fastify/rate-limit으로 LLM 엔드포인트 IP당 10회/분 제한. CORS origin을 cheesu.co.kr로 제한. question 최대 500자 제한으로 토큰 낭비 방지. 서버·클라이언트 이중 검증으로 사용자에게 명확한 안내 제공.

/ F

Next.js 대신 SvelteKit — 세 가지 실질적 이유

① 번들 크기: React 런타임(~45KB gzip)이 없고 Svelte는 컴파일 후 프레임워크 코드가 거의 사라짐. ② 빌드·HMR 속도: Vite 기반이라 Next.js 빌드보다 빠르고 개발 서버 HMR 체감 속도 차이가 남. ③ App Router 복잡도 없음: Next.js 13+ "use client"/"use server" 경계 관리 없이 단순한 구조 유지.