개요
RealBase v2(이하 RealBase)는 T3스택을 기반으로 웹 애플리케이션을 만들기 위한 fullstack 템플릿입니다. v1보다 더 간결해졌기 때문에 개발자 경험과 생산성을 높이기 위한 구조로 업그레이드 되었습니다.
RealBase는 NextJs, tRPC, Prisma 기본 스택으로 사용하며 스타일은 Tailwind CSS, Mantine을, 인증은 NextAuth를 프로젝트 관리는 TurboRepo를 사용합니다.
또한 Eslint, Prettier, Zod 등으로 코드 품질을 높이고, 일관된 포멧을 유지할 수 있도록 설정되어 있습니다.
페이지
RealBase는 NextJs의 App Router를 사용하여 페이지를 구성하고 최신 React 버전을 활용해 React Server Component를 지원합니다. 이로 인해 페이지의 성능이 향상되고, 개발자 경험도 향상되었습니다.
스타일
RealBase는 T3스택의 기본 스타일링 도구인 Tailwind CSS를 사용할 수도 있지만, 템플릿의 기본적인 스타일링 방향은 Mantine UI 라이브러리를 사용합니다.
인증 및 사용자관리
RealBase는 NextAuth.js를 사용하여 인증 및 사용자 관리를 처리합니다. NextAuth.js는 다양한 인증 제공자를 지원하여 사용자의 로그인 및 회원가입을 처리할 수 있습니다.
기본적으로 이메일과 비밀번호를 사용하여 인증을 처리할 수 있습니다. 또한, 소셜 로그인도 지원합니다. 소셜 로그인은 Google, Facebook, GitHub, Kakao, Naver, Apple 등을 지원합니다.
API 통신
RealBase는 tRPC를 사용하여 API 통신을 처리합니다. tRPC는 서버에서 클라이언트까지, End-to-End 동일하고 안전한 타입으로 간결하게 API를 관리할 수 있습니다.
tRPC와 함께 zod를 사용하여 런타임 타입을 검증합니다.
데이터 모델
RealBase의 Prisma를 사용하여 데이터베이스 모델을 정의합니다.
Prisma는 ORM(Object Relational Mapping) 라이브러리로, 데이터베이스 모델을 정의하고, 쿼리를 작성할 수 있습니다.
Database
RealBase의 기본 데이터베이스는 MongoDB를 사용합니다. 기본적으로 Prisma가 지원하는 데이터베이스를 모두 지원합니다.
Seed는 MongoDB의 데이터베이스를 생성하고 초기 데이터를 삽입합니다. Prisma를 사용하여 스키마를 관리하고 데이터베이스와 상호작용할 수 있습니다.
Tools
Mailer
RealBase는 AWS SES를 사용하여 이메일을 전송할 수 있는 Mailer 유틸리티를 제공합니다. text, html 형식으로 내용을 작성할 수 있으며, 파일을 첨부할 수도 있습니다. 이 기능은 이메일 알림, 사용자 등록 확인, 비밀번호 재설정 등의 용도로 사용할 수 있습니다.
Storages
RealStorage를 이용한 파일 업로드 기능을 제공합니다. RealStorage는 사용자가 직접 S3를 컨트롤 할 필요없이 RealStorage API 만으로 파일 업로드, 다운로드, 삭제 등의 작업을 수행할 수 있습니다.
Slacker
Slack 알림을 전송할 수 있는 Slacker 유틸리티를 제공합니다. 이 기능은 Slack 채널에 메시지를 전송하여 팀원들과 소통할 수 있도록 도와줍니다. 예를 들어, 특정 이벤트 발생 시 Slack 채널에 알림을 전송하거나, 작업 완료 알림 등을 전송할 수 있습니다.
Payments
RealBase는 Naver PG를 사용하여 결제 시스템을 통합할 수 있는 Payments 유틸리티를 제공합니다. 이 기능은 구독 서비스, 일회성 결제 등을 처리할 수 있습니다. Naver 강력한 API를 활용하여 결제 처리, 고객 관리, 청구서 발행 등을 손쉽게 구현할 수 있습니다.