안녕하세요, 1인 사업가와 개발자 여러분! 펭귄 뮤지엄입니다. 🐧
지난번 ERD 그려보기 포스팅은 잘 보셨나요?
저는 항상 ERD를 꼼꼼하게 그려두는 편인데요, 이렇게 탄탄한 설계는 개발 과정에서 발생할 수 있는 수많은 수정 작업을 예방하는 마법과도 같답니다.
이 글을 읽는 독자분들도 ERD의 중요성을 다시 한번 느끼셨으면 좋겠습니다.
자, 오늘은 지난 시간에 공들여 만든 ERD를 활용하여 한 단계 더 나아가 보려고 합니다.
바로 ERD 이미지를 AI에게 전달하여, 실제 데이터베이스 스키마 코드를 생성하도록 하는 것이죠!
개발 과정의 자동화, 생각만 해도 신나지 않나요? 😉
⚒️ 시작 전의 참고사항 (사전 작업)
저는 '빠르고 효율적인 개발'을 목표로 하기에, 다음과 같은 최신 기술 스택을 활용하여 웹 프로젝트를 구성하고 데이터베이스와 백엔드를 관리합니다.
- Next.js: 프론트엔드와 풀스택 개발을 위한 강력하고 유연한 리액트(React) 프레임워크입니다. 사용자 인터페이스(UI) 개발과 서버사이드 렌더링(SSR) 등을 손쉽게 구현할 수 있도록 도와줍니다.
- Prisma (ORM): 타입스크립트(TypeScript)와 자바스크립트(JavaScript)를 위한 차세대 ORM(Object-Relational Mapper)입니다. 데이터베이스 스키마를 코드로 정의하고, 타입 세이프(type-safe)하게 데이터베이스 작업을 수행할 수 있게 해줍니다. 복잡한 SQL 쿼리 없이도 직관적으로 데이터를 다룰 수 있죠.
- Supabase (Backend + Database): 오픈소스 파이어베이스(Firebase)의 대안으로, PostgreSQL 데이터베이스, 인증, 스토리지, 실시간 기능 등을 제공하는 BaaS(Backend as a Service) 플랫폼입니다. 백엔드 인프라 구축의 부담을 덜고 빠르게 서비스를 개발할 수 있도록 지원합니다.
이 도구들에 대한 기본적인 이해가 있다면 이번 내용을 따라오시는 데 큰 도움이 될 거예요. 혹시라도 생소한 부분이 있다면, 주저하지 마시고 댓글로 질문해주세요! 제가 아는 선에서 최선을 다해 답변드리겠습니다. 😊
🚀 ERD, AI에게 건네고 Prisma 스키마 얻어내기!
요즘 AI 기술의 발전 속도는 정말 놀랍습니다. 이제는 이미지 속 정보까지 순식간에 파악해 내죠.
이렇게 똑똑해진 AI를 우리 개발자들이 활용하지 않는다면 그야말로 손해겠죠?
지난 시간에 만들었던 ERD 이미지를 AI(저는 주로 Gemini를 사용합니다!)에게 제공하고, Prisma 스키마를 요청해 봅시다.
🤖 첫 번째 단계: AI에게 역할 부여하기
저는 Gemini를 사용할 때, 먼저 AI에게 특정 페르소나(역할)를 부여하여 더욱 전문적인 답변을 유도합니다.
마치 해당 분야의 전문가와 대화하는 것처럼요!
다음은 제가 사용하는 첫 번째 프롬프트 예시입니다.
당신은 Supabase와 Prisma를 이용한 데이터베이스 모델링의 최고 전문가입니다.
제가 질문하는 문제에 대해 가장 효율적이고 유지보수가 뛰어난 방식으로 코드를 제안해 주셔야 합니다.
또한, Supabase와 Prisma를 성공적으로 연동하여 데이터베이스 모델링을 완성할 수 있도록 저를 이끌어주세요.
이 모든 내용을 이해하셨다면, 제가 준비한 ERD와 만들고자 하는 애플리케이션 서비스에 대한 설명을 요청해주세요.
이렇게 AI에게 역할을 부여하고 다음 단계를 안내하도록 하면, AI는 ERD 이미지와 서비스 설명을 요청할 준비를 마칩니다.
🖼️ 두 번째 단계: ERD 이미지와 서비스 설명 제공하기
이제 AI가 요청한 대로, 준비된 ERD 이미지와 함께 제가 만들고자 하는 서비스에 대한 구체적인 설명을 제공합니다.
지금 바로 제가 만든 ERD 이미지를 첨부해 드리겠습니다.
(저희가 이전의 만든 ERD 이미지 첨부)
더불어 제가 만들고 싶은 서비스와 주요 기능에 대해 설명드리겠습니다.
**서비스 목표:** 한국 노래방에서 부를 수 있는 일본 노래를 쉽게 검색하고 관리할 수 있는 서비스
**주요 기능:**
* **핵심 기능:**
* 일본 노래 리스트 전체 조회
* 다양한 조건(제목, 아티스트 등)으로 일본 노래 검색
* 나만의 애창곡 저장 및 관리 기능 (즐겨찾기)
* 노래 가사 확인 기능
* 노래 관련 유튜브 영상 또는 음원 스트리밍 연결
* 가사 일부를 통한 일본 노래 검색
* 테마별 일본 노래 추천 (예: 특정 아티스트 노래 모음, 애니메이션 OST, 최신 인기곡 등)
이렇게 명확한 정보와 함께 ERD를 제공하면, AI는 이를 바탕으로 전반적인 Prisma 스키마 코드를 꽤 훌륭하게 작성해 줍니다!
✨ 세 번째 단계: AI가 제안한 스키마 다듬기
AI가 생성한 스키마는 훌륭한 초안이 될 수 있지만, 완벽하다고 단정하기는 어렵습니다.
그래서 저는 AI가 만든 스키마를 한번 읽어보고 거기서 부족한 부분을 요청하여 몇 가지 추가적인 수정을 진행했습니다.
- 테이블명 일관성 유지: 프로젝트 전체적으로 통일된 규칙에 따라 테이블명을 정리했습니다.
- 불필요한 기능 제거: 초기 MVP(Minimum Viable Product) 범위에 벗어나거나, ERD에 명시되지 않은 불필요한 필드나 관계는 과감히 제거했습니다.
- 네이밍 컨벤션 적용 (CamelCase vs Snake_case):
- Prisma 모델명 (자바스크립트/타입스크립트 코드에서 사용): 일반적으로 카멜 케이스(camelCase, 예: userSongLikes)를 사용합니다. 이는 프론트엔드 및 자바스크립트 진영의 일반적인 약속과 같습니다.
- 실제 데이터베이스 테이블명 및 컬럼명: 스네이크 케이스(snake_case, 예: user_song_likes)를 사용하는 것이 좋습니다. 이는 데이터베이스 세계의 오랜 관례이자 약속이기 때문입니다. Prisma에서는 @map 어트리뷰트를 사용하여 모델명과 실제 DB 테이블/컬럼명을 다르게 매핑할 수 있어 매우 편리합니다. (예: model UserSongLikes { ... @@map("user_song_likes") })
이처럼 AI의 결과물을 비판적으로 검토하고, 프로젝트의 특성과 규칙에 맞게 다듬는 과정은 매우 중요합니다.
🔗 Supabase에 Prisma 스키마 적용하기 (동기화)
AI의 도움과 약간의 수작업을 통해 완성된 Prisma 스키마! 이제 이 스키마를 실제 Supabase 데이터베이스에 적용할 차례입니다.
터미널에 다음 명령어를 입력하여 Supabase와 동기화를 진행합니다.
pnpm dlx prisma migrate dev --name init
이 명령어는 다음과 같은 중요한 역할을 수행합니다.
- prisma migrate dev: 개발 환경에서 Prisma 스키마 변경사항을 기반으로 새로운 마이그레이션 파일을 생성하고, 이를 데이터베이스에 적용합니다.
- --name init: 마이그레이션 파일에 init이라는 이름을 부여합니다. (프로젝트 시작 시 첫 마이그레이션이라는 의미)
명령을 실행하면 Prisma가 스키마를 분석하고, 변경 사항을 감지하여 SQL 마이그레이션 파일을 생성한 후, Supabase 데이터베이스에 해당 변경 사항을 적용합니다.
이제 여러분의 Supabase 데이터베이스에는 Prisma 스키마에 정의된 대로 테이블과 컬럼들이 멋지게 생성되어 있을 거예요! 🎉
Supabase ERD를 보면 저희가 그려놓은 ERD와 동일한 느낌의 ERD가 나오는것을 알 수 있습니다!
✨ 마무리하며: AI와 함께라면 데이터 모델링도 스마트하게!
어떠셨나요? ERD를 기반으로 AI를 활용하여 Prisma 스키마를 생성하고, 이를 Supabase에 연동하는 과정까지 함께 해보았습니다. 복잡하고 시간이 많이 소요될 수 있는 데이터베이스 모델링 작업이 AI 덕분에 한결 수월해졌죠?
물론 AI가 모든 것을 완벽하게 해결해 주지는 않습니다. 하지만 AI를 똑똑한 조력자로 삼는다면, 개발 생산성을 극적으로 향상시키고 반복적인 작업에서 벗어나 더욱 창의적인 작업에 집중할 수 있습니다.
다음 포스팅에서는 이렇게 구축된 데이터베이스를 기반으로 실제 Next.js 애플리케이션에서 어떻게 데이터를 다루는지, Prisma 클라이언트를 활용한 CRUD(Create, Read, Update, Delete) 작업에 대해 자세히 알아보도록 하겠습니다.
오늘 내용이 여러분의 프로젝트에 실질적인 도움이 되었기를 바랍니다. 궁금한 점이나 공유하고 싶은 경험이 있다면 언제든지 댓글로 남겨주세요! 여러분의 성공적인 프로젝트 완성을 펭귄 뮤지엄이 항상 응원하겠습니다! 🐧🚀
다음 편도 기대해주세요!
'사이드 프로젝트' 카테고리의 다른 글
완벽함 대신 '실행'을 택하다: 노코드 툴로 사이드 프로젝트 빠르게 시작하기 (0) | 2025.06.06 |
---|---|
미워도 다시한번, 나의 사이드 프로젝트 도전기! (3) | 2025.06.05 |
노래방 일본 노래 검색 서비스 | 제 3부 - 데이터베이스 모델링 하기(feat. ERD Cloud를 이용해서 설계하기) (0) | 2025.06.03 |
노래방 일본 노래 검색 서비스 | 제 2부 - 디자이너 없이 디자인 하기(feat. google stitch를 이용하여 AI로 디자인하기) (0) | 2025.06.02 |
노래방 일본 노래 검색 서비스 | 제 1부 - 프로젝트 구상 (1) | 2025.06.01 |