# PlanetScale

31개의 포스트
post-thumbnail

Next.js 13 - PlanetScale & Prisma 사용하기(2)

💁🏻‍♀️ Schema 추가하기 이전 글에서 만들어 둔 products 테이블에 새로운 스키마를 추가하고 싶은 경우 아래와 같이 설정해 줄 수 있습니다. 우선 메인 브랜치에서는 설정할 수 없어 새로운 브랜치를 생성해야 합니다. Branches 탭에서 New branch 클릭 후 원하는 브랜치 명을 입력하여 만들어 주면 됩니다. PlanetScale 콘솔 탭에서 새로 만들어준 브랜치를 선택 후 connect 합니다. 이후에 콘솔 창에 아래의 명령어로 새로운 createdAt 스키마를 추가해 줍니다. 해당 스키마에는 생성된 시간인 datetime 내용이 들어가게 됩니다. 스키마를 추가했으면 새롭게 데이터를 넣어줍니다. 콘솔창에서 SELECT * FROM products;를 입력하여 확인해보면 createdAt 속성이 추가된 것을 확인할 수 있습니다. main 브랜치에서 **Enable safe

2023년 9월 15일
·
0개의 댓글
·
post-thumbnail

Next.js 13 - PlanetScale & Prisma 사용하기(1)

프론트엔드 개발자가 개인 프로젝트를 진행할 때 DB에 대한 고민을 덜어줄 서버리스 DB를 제공하는 PlanetScale과 프로젝트와 DB를 연결시켜 주는 ORM인 Prisma를 활용하여 CRUD를 적용할 수 있는 방법에 대해서 간략하게 정리한 글 입니다. step 01. PlanetScale 설정 먼저 PlanetScale 사이트에 접속하여 계정을 만들고 로그인 후 Create new database를 클릭하여 데이터베이스를 생성합니다. 자신이 원하는 데이터베이스 이름으로 지정하고 Region을 자신의 위치와 가까운 곳으로 설정합니다.(ex Tokyo) 무료로 사용할 수 있는 Hobby로 선택 후 카드 정보를 입력하면 5GB 무료 데이터 저장소가 생성됩니다.(Hobby database의 경우 결제가 되지 않습니다.) PlanetScale 공식 페이지의 [퀵 스타트 가이드](https://planetscale.com/

2023년 9월 14일
·
0개의 댓글
·
post-thumbnail

Using Prisma with a PlanetScale database

Overview Prisma Schema 작성 하는 방법은 공식 문서에서 잘 설명 되어있습니다. 그래서 이와 관련한 글을 작성할 지 고민했는데 그래도 마침 이번에 새로 알게 된 사실도 있고, PlanetScale database에서의 Relation mode 작성 방법과 Prisma Models, Relations 설정 위주로 글을 정리해보면 좋을 거 같다는 생각이 들었습니다. 마지막으로 간단한 Reddit 클론 Schema 설계 예시까지 살펴보고 마무리해보려고 합니다. 이후 비슷한 설계를 할 때 도움이 될 거 같습니다. Relation mode Introduction 공식 문서 : https://www.prisma.io/docs/concepts/components/prisma-schema/relations/relation-mode Prisma에는 records 간의 관계가 어떻게 적용되는지를 명시하는 두 가지 관계 모드, 즉 `forei

2023년 7월 24일
·
0개의 댓글
·
post-thumbnail

Next.js + Prisma + PlanetScale + NextAuth 인증 처리 (2)

Overview 저번 시간에는 PlanetScale을 세팅하고 Next.js에서 Prisma와 연동을 통해 간단한 테이블 및 데이터를 생성해보고 테스트 해봤습니다. 이번 시간에는 본격적으로 NextAuth가 무엇이고 어떻게 사용하면 되는지 확인해본 다음에, 실습을 통해 구글 로그인 인증 처리를 진행 해보겠습니다. NextAuth 공식 문서 소개 공식 문서 : https://next-auth.js.org/getting-started/introduction > 📚 NextAuth.js는 Next.js 애플리케이션을 위한 완벽한 오픈 소스 인증 솔루션입니다. 처음부터 Next.js와 Serverless를 지원하도록 설계되었습니다. - 공식 문서 참고 1. Flexible and easy to use 모든 OAuth 서비스와 함께 작동하도록 설계되었으며 OAuth 1.0, 1.0A, 2.0 및 OpenID Connect을 지원합니다.

2023년 7월 17일
·
2개의 댓글
·
post-thumbnail

Next.js + Prisma + PlanetScale + NextAuth 인증 처리 (1)

Overview 이번 시간에는 Next.js를 기반으로 해서 Prisma, PlanetScale, NextAuth를 사용해서 간단하게 인증 처리를 구현해보도록 하겠습니다. 처음이 어렵지 이것만 공부(정리)를 잘 해놓는다면 여러 사이드 프로젝트를 만드는데 큰 도움이 될 것입니다. 그만큼 저는 인증이 제일 어렵습니다... 😂😢 DB를 직접 구축해서 사용해도 되긴 하지만 좀 더 빠르고 편하게 사용하고 싶었기 때문에 저는 PlanetScale과 Vercel Storage 중에 어떤걸 사용해볼까 고민하다가 PlanetScale이 더 무료로 제공되는게 좋아보이기도 하고 Vercel Storage는 아직 나온지 얼마 안되서 PlanetScale보다 덜 유명한거 같아서 PlanetScale을 선택했습니다. PlanetScale 알아보기 Introduction > PlanetScale is the world’s most advanced **server

2023년 7월 12일
·
0개의 댓글
·
post-thumbnail

PlanetScale와 Vitess

PlanetScale PlanetScale이란 ? MySQ과 호환되는 Serverless 데이터베이스 플랫폼이다. https://planetscale.com/ Vitess Vitess는 PlanetScale을 지원하는 클라우드 네이티브 오픈 소스 기술이다. https://planetscale.com/vitess [ 설치 방법 ] https://github.com/planetscale/cli mac os 를 기준으로 차례대로 실행하면 설치가 완료된다. 그리고 명령어를 통해 여러가지를 할 수 있는데, 우선 다른 작업을 위해 로그인을 할 수 있다. 해당 명령어를 실행시키면 웹페이지가 하나 열리면서 아래와 같은 내용을 확인할 수 있다. 그리고 confirm 을 진행하면 ![](

2023년 7월 5일
·
0개의 댓글
·
post-thumbnail

PlanetScale

* PlanetScale 이란? * MySql과 호환되는 serverless database platform database platform은 DB를 제공해준다는 의미 serverless는 서버가 없다는 의미가 아니라 우리가 서버를 유지할 필요가 없다는 뜻이다. 유지보수, scaling(확장).. 등을 할 필요가 없다. Vitess는 가장 scaling이 뛰어난 opensource database youtube를 scaling하기 위해 구글이 만들어 냄 대기업들이 규모에 맞게 MySql을 scale 할 때 쓰는 방법 High Availability → 데이터의 복바본을 저장해주는 기술 # use planetScale 우선 사이트에 접속 후 회원가입을 하자. * _Install * `arch -arm64 brew install planetscale/tap/psc

2023년 7월 3일
·
0개의 댓글
·
post-thumbnail

PlanetScale + Prisma에 Kysely를 이용한 기존 단점 극복하기

데이터베이스를 선정할 때의 고려대상 여러분은 데이터베이스를 선정할 때에 어떤 기준을 가지고 선정하시나요? 아래 3가지는 데이터베이스를 선정할 때에 항상 고민하게 되는 요소들 입니다. > 1️⃣ 확장성 확장성은 데이터베이스를 고르는 데 아주 중요한 요소다. 데이터베이스마다 확장 방법이 다르다. 예를 들어 관계형 데이터베이스는 수평적 확장에 어려움을 겪을 수 있지만 NoSQL 데이터베이스는 수평적 확장에 뛰어나다. 데이터베이스를 선택할 때는 예상 성장률과 확장을 얼마나 잘 처리할 수 있는지를 고려해야 한다. 데이터베이스 확장을 잘하려면 단순히 서버를 더 추가하는 게 아니라 시스템의 설계와 아키엑쳐(schema 등등 포함)을 잘 이해해야 한다. 2️⃣ 성능 쿼리 효율성과 write 및 read 성능 간의 균형을 고려해야 한다. 읽기(read) 작업에 최적화된 데이터베이스도 있고 쓰기(write) 성능을 우선시하는 데

2023년 6월 4일
·
1개의 댓글
·
post-thumbnail

PlanetScale을 Prisma로 더 잘 사용하기

최근들어 기존 AWS, Azure, GCP와 같은 클라우드에서 제공하고 있는 RDS와 같은 PaaS서비스들 이외에 조금더 SaaS에 가까워진 데이터베이스 서비스들이 많이 등장하고 있습니다. redis, kafka 클러스터를 지원해주는 Upstash, 위와 같은 기존 클라우드에서 제공하고 있는 Azure Cosmos, AWS Aurora와 같은 서비스등 개발자 입장에서는 개발과 유지보수에 있어서 더 나은 개발자 경험을 제공하고 있는 서비스들이 점차 많아지고 있는데, 이와 같은 데이터베이스 서비스들을 가리켜 DBaaS - Database as a Service 라고 부르고 있습니다. 이번 주제에서 다루게 될 PlanetScale이라는 서비스도 Mysql을 DBaaS화 한 서비스중 하나입니다. PlanetScale은 개발경험 이외에도 많은 장점이 많은 서비스여서 현재 팀에서도 도입하여 프로덕션으로 사용하게된 서비스입니다. 그렇다면

2023년 5월 29일
·
0개의 댓글
·
post-thumbnail

[DB] PlanetScale push 하기

prisma는 두가지 목적을 위해 schema.prisma 파일을 살펴본다. 첫 번째는 model들을 데이터베이스에 push하고 SQL migration을 자동으로 처리하기 위함이고, 두 번째는 데이터베이스와 상호작용하기 위해 client를 생성하고 그 client에 자동완성으로 타입들을 추가할 것이다. 위 두가지는 prisma가 이 파일을 살펴본 "뒤"에 일어나는 일들이다. 전에 살펴본 내용으로, pscale connect carrot-market 명령어를 통해 PlanetScale과 연결했고, URL을 얻어서 컴퓨터랑 PlanetScale 사이에 보안 tunnel을 만들었다. schema.prisma 파일은 환경변수에 있는 DATABASE_URL을 찾고 있다. ![](https://velog.vel

2023년 4월 14일
·
0개의 댓글
·
post-thumbnail

[DB] PlanetScale 연결하기

1. scoop 다운받기 step1 cmd를 열고 powershell로 전환한다. step2 설치 관리자 실행 에러가 난다면 아래 주소 참고 에러 해결방법 step3 설치 ![](https://velog.velcdn.com/images/moko0428/post/101e259b-c48b-4c31-ae95-9f8ca16dc75

2023년 4월 14일
·
0개의 댓글
·
post-thumbnail

[DB] PlanetScale

PlanetScale이란? MySQL과 호환되는 serverless 데이버베이스를 제공해주는 데이터베이스 플랫폼이다. 데이터베이스 플랫폼이라는 건 데이터베이스를 제공해준다는 의미이고, serverless는 서버를 우리가 관리하고, 유지보수 필요가 없다는 뜻이다. 서버를 만들고, 적당한 크기를 설정하는 등 모든 것을 직접해야하는 AWS의 RDS(관계형 데이터베이스 서비스) 같은 건 아니다. 예를 들어 AWS의 RDS는 백만 명이 데이터베이스에 연결되면 직접 scaling(확장)시켜 줘야한다. 하지만 이런 serverless 플랫폼을 사용하면 그런 작업을 대신 해준다. MySQL serverless platform 이 아닌 이유 가장 중요한 포인트는 이것이다. ![](https://vel

2023년 4월 14일
·
0개의 댓글
·

[TIL]23.04.13 prisma, PlanetScale

prisma >설치(react.ver) npm i -D prisma >init npx prisma init >prisma Extension 설치 PlanetScale planetscal create database >https://planetscale.com/ Scoop설치 >Set-ExecutionPolicy RemoteSigned -Scope CurrentUser irm get.scoop.sh | iex Planetscale설치 >scoop bucket add pscale https://github.com/planetscale/scoop-bucket.git scoop install pscale mysql >scoop update pscale ps

2023년 4월 13일
·
0개의 댓글
·
post-thumbnail

Prisma, PlanetScale 셋업

PlanetScale MySQL-compatible 서버리스 데이터베이스 플랫폼 📌 서버리스: 우리가 서버를 유지보수할 필요 없음 scaling 같은 까다로운 과정을 서버리스 플랫폼이 알아서 해준다 CLI 제공 (Command Line Interface) DX 향상 (Developer Experience) -깃과 비슷하게 사용하면 됨 Vitess MySQL-compatible 인 이유 구글이 유튜브를 scale하기 위해 만든 오픈소스 시스템 대기업들이 MySQL을 scale 하기 위해 쓰고있는 방법 pscale 설치 for mac >pscale - PlanetScale의 CLI 라이브러리 1. brew install planetscale/tap/pscale >2. (옵셔널) pscale 특정 command에 mysql-client를 필요로 하기때문에 설치 brew install mysql-clien

2023년 3월 22일
·
0개의 댓글
·

Authentication + Twilio + SendGrid

Authentication 유저가 폰번호를 전송하면 DB에서 검색해서 존재하는지를 판별한다. 존재하지 않으면 회원가입하고, 존재하면 정보를 DB에서 가져오자. 그리고 유저를 위한 토큰(랜덤넘버)을 발급한다 유저의 폰에 랜덤넘버를 보낸다 유저의 프론트엔드에서는 토큰을 받을 수 있는 화면으로 변경된다. 유저가 토큰을 입력하면 백엔드에서 토큰을 검색한다. 토큰을 찾으면 유저 정보를 가져오고, 로그인 하게 한다. 로그인 상태일 때만 보이는 화면을 구현해야 한다. 어떤 유저가 API 요청을 보냈는지도 알아야 한다. > 토큰 model 필요. 유저를 검색하고 존재하면 데이터를 가져오고 없으면 생성하기 > 이렇게 DB를체크해서 있으면 가져오고 없으면 생성하는 로직은 빈번하기 때문에, 위 코드를 간단히 하는 기능이 이미 갖춰져 있다. upsert : create하거나 update하거나 insert할 때 사용

2023년 2월 17일
·
0개의 댓글
·
post-thumbnail

Prisma & PlanetScale 설치(feat. mySQL + window버전)

Prisma 설치 🔗 불러오는법 > ## PlanetScale power shell창에서 🔗 설치되었는지 확인 🔗 로그인 🔗 연결 🔗 추가사항(필수아님) 결과화면 ![](https://velog.velcdn.com/images/bebrain/post/4e6dcc

2023년 2월 7일
·
0개의 댓글
·
post-thumbnail

Planet Scale & Prisma 설정부터 CRUD까지

1. 설치(윈도우) Scoop 설치 (Windows용 커맨드 라인 설치 프로그램) 터미널에 아래의 명령어 순차입력. > Set-ExecutionPolicy RemoteSigned -Scope CurrentUser # Optional: Needed to run a remote script the first time > irm get.scoop.sh | iex > scoop bucket add pscale https://github.com/planetscale/scoop-bucket.git > scoop install pscale {사용할 DB} scoop install pscale mysql > scoop update pscale > 일련의 생성 프로세스 연동 Planet Scale은 key를 생성하고 local에서 개발자가 이를 관리하는 방식을 채택하지

2023년 2월 1일
·
0개의 댓글
·
post-thumbnail

Next.js로 풀스택 개발하기 - Cheer luv

서비스 부터 소개하겠습니다. 목표를 공유하고 응원하는 간단한 Todo App입니다~ 신년 목표를 작성하고 서로 응원하는 시간을 가져봐요! > Cheer luv - 목표를 공유해요 Cheer luv home image To Do List를 갑자기 개발한 이유 완전 J인 사람이라 신년 목표를 계획하고 있었는데 뭘 해야할지 고민이 됐어요. '다른 사람의 신년 목표는 무엇일까?' 생각이 들어서 목표를 공유하는 서비스를 개발하게 됐습니다. 요즘 MVP 개발을 최대한 빠르게 하는걸 목표로 여러가지 알아보고 있는데, Next + Prisma + planetScale을 이용하면 풀스택 어플리케이션을 개발할 수 있을 것 같아서 기술 공부 목적으로 개발했

2023년 1월 3일
·
0개의 댓글
·
post-thumbnail

NextJS + Prisma + PlanetScale

일전의 포스트에서 PlanetScale과 Prisma를 연동했다면, 이제는 NextJS와 Prisma를 연동할 차례입니다. API 파일 생성 NextJS는 pages 폴더 내부에 api라는 폴더를 만들어 API들을 일괄적으로 관리합니다. PrismaClient 설치 Prisma Client 설치 (MongoDB의 Mongoose와 비슷한 친구입니다.) > npm install @prisma/client 이러면 준비는 끝났습니다. 해당 라이브러리에서 PrismaClient라는 Class를 import해 인스턴스를 생성하면 PlanetScale을 핸들링할 수 있습니다. 인스턴스 생성하기 utils 폴더에서 관리하시면 됩니다. 해당 인스턴스(cli

2022년 11월 28일
·
0개의 댓글
·
post-thumbnail

schema 만들기

우리가 Velog 개발자라고 가정하자. 유저가 글을 포스팅한다. 이에 대한 schema를 어떻게 작성할 것인가? 추상화 유저가 작성한 글에서 우리는 어떤 정보가 필요할까? 수 많은 Post들을 관리하기 위한 고유한 id 다른 유저에게 보여줄 제목인 title 해당 글의 내용인 content 해당 글의 공개여부를 결정하는 published 글쓴이와 해당 유저의 블로그에 들어가면 글을 모아볼 수 있는 author id가 필요할 것이다. 따라서 Velog는 위와 같은 schema를 데이터베이스에서 사용할 것이다. 참조 무결성(Referential integrity) 관계형 데이터베이스에서 존재하지 않는 id를 참조할 때, 에러가 발생하는 건 너무

2022년 11월 28일
·
0개의 댓글
·