project/포트폴리오만들기

🚀 Flutter Web + NestJS 풀스택 포트폴리오 프로젝트 개요 및 기술 스택 선택

octo54 2025. 3. 27. 11:24
반응형

🚀 Flutter Web + NestJS 풀스택 포트폴리오 프로젝트 개요 및 기술 스택 선택

포트폴리오 사이트는 개발자의 경험과 기술력을 보여주는 중요한 도구입니다.
이번 프로젝트에서는 Flutter Web을 활용해 부드럽고 인터랙티브한 프론트엔드를 구축하고,
NestJS + PostgreSQL + Prisma 조합으로 확장성과 유지보수성이 뛰어난 백엔드를 설계합니다.

이 글에서는 프로젝트의 개요와 전체적인 기술 스택을 선택한 이유를 정리합니다.


1. 프로젝트 목표 및 컨셉

🔹 프로젝트 목표

  • Flutter Web의 UI/UX 장점을 살린 반응형 포트폴리오 사이트 제작
  • NestJS 기반 API 서버를 구축하여 데이터 관리
  • PostgreSQL + Prisma ORM을 사용한 데이터베이스 설계
  • CI/CD 자동화 및 클라우드 배포 최적화
  • SEO 적용 및 검색 최적화된 블로그 시스템 추가

🔹 타겟 오디언스

  • 채용 담당자: 기술력과 프로젝트를 한눈에 확인
  • 개발자 커뮤니티: 코드 및 기술 공유
  • 클라이언트: 프리랜서 개발 의뢰 가능

2. 기술 스택 선택

🔹 프론트엔드 (Flutter Web)

반응형

기술 선택 이유

Flutter Web 빠른 개발, 동일 코드로 모바일과 웹 대응 가능
Dart Flutter의 기본 언어, 최적화된 UI 구현 가능
go_router 직관적인 라우팅 및 URL 관리 지원
dio + retrofit API 요청을 쉽게 관리할 수 있는 네트워크 라이브러리
freezed + json_serializable 데이터 모델링 및 API 응답 파싱을 위한 강력한 도구

🔹 백엔드 (NestJS + Prisma + PostgreSQL)

기술 선택 이유

NestJS TypeScript 기반의 구조화된 백엔드 프레임워크
Prisma ORM 직관적인 데이터 모델링 및 마이그레이션 지원
PostgreSQL 강력한 관계형 데이터베이스, Prisma와 높은 호환성
JWT 인증 보안이 강화된 사용자 인증 방식
Swagger API 문서 자동 생성

🔹 배포 및 인프라

기술 선택 이유

Vercel 백엔드 서버리스 배포 (NestJS)
Railway PostgreSQL 클라우드 DB 호스팅
Firebase Hosting / Netlify Flutter Web 정적 사이트 배포
GitHub Actions CI/CD 자동화

3. 프로젝트 아키텍처 설계

Flutter Web과 NestJS 백엔드는 API 중심의 클라이언트-서버 구조로 동작합니다.

graph TD;
    User-->Flutter Web;
    Flutter Web-->NestJS API;
    NestJS API-->PostgreSQL;
    NestJS API-->Cloud Storage;
    PostgreSQL-->NestJS API;
    Firebase/Netlify-->Flutter Web;
    Vercel-->NestJS API;
  • Flutter WebNestJS API를 통해 데이터 요청
  • NestJS APIPostgreSQL에서 데이터 조회 및 처리
  • Flutter Web 배포: Firebase Hosting or Netlify
  • NestJS API 배포: Vercel (Serverless)

4. 데이터 모델 설계 개요

프로젝트에서는 Prisma ORM을 활용하여 데이터 모델을 설계합니다.

model Project {
  id        String   @id @default(uuid())
  title     String
  description String
  techStack  String[]
  githubUrl String
  liveUrl   String?
  createdAt DateTime @default(now())
}
  • Projects: 프로젝트 목록
  • Blogs: 블로그 게시글
  • Skills: 기술 스택
  • Users: 사용자 정보

이 데이터 모델을 기반으로 Prisma를 활용하여 NestJS API와 연동합니다.


5. 다음 단계

  • Flutter Web + NestJS 프로젝트 초기 설정
  • NestJS에서 Prisma를 이용한 DB 연결
  • Flutter Web에서 API 연동