본문 바로가기

전체 글31

인스타그램 클론코딩 BACKEND 만들기 #7 - Prisma Client Prisma Client prisma client 는 prisma migrate 를 통해서 node_modules 안에 @prisma/client 로 생성된다. 사용법 1 2 3 4 5 import { PrismaClient } from "@prisma/client"; const client = new PrismaClient(); export default client; cs client.js를 만들어 준다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Query: { movies: () => client.movie.findMany() } Mutation: { createMovie: (_, { title, year, genre }) => client.movie.create({ data.. 2021. 6. 16.
인스타그램 클론코딩 BACKEND 만들기 #6 - Prisma Setup Prisma 란? 데이터베이스 테이블과 쿼리를 만들어주는 ORM 이다. 즉 SQL 코드를 쓸 필요 없이 자바스크립트 코드를 작성하면 Prisma가 데이터베이스와 연결해준다. Prisma Migrate : 테이블 생성, 컬럼 추가 등 Database를 변경하는 기능 Prisma Client : 자바스크립트 코드로 데이터베이스와 연결이 가능하도록 하는 기능 ORM 이란? DB데이터를 객체로 매핑해주는 역할을 하는것이다. 설치법 npm install @prisma/cli -D npx prisma init 프로세스 schema.prisma는 .env 파일을 참고해서 DATABASE_URL 을 가지고온다. 2021. 6. 16.
인스타그램 클론코딩 BACKEND 만들기 #5 - POC API : 객체 타입과 필드, 인자 객체 타입 이란? GraphQL 스키마의 가장 기본적인 구성요소이다. 1 2 3 4 type Character { name: String! appearsIn: [Episode]! } cs Character 는 GraphQL 객체 타입 입니다. 즉, 필드가 있는 타입입니다. 스키마의 대부분의 타입은 객체 타입입니다. name 과 appearIn 은 Character 타입의 필드 입니다. 즉 name 과 appearIn 은 GraphQL 쿼리의 Character 타입 어디서든 사용할 수 있는 필드입니다. String 은 내장된 스칼라 타입 중 하나입니다. 이는 스칼라 객체로 해석되는 타입이며 쿼리에서 하위 선택을 할 수 없습니다. 스칼라 타입은 나중에 자세히 다룰 것입니다. String! 은 필드가 non-.. 2021. 6. 16.
인스타그램 클론코딩 BACKEND 만들기 #4 - POC API : Mutation Mutation 이란? insert, update, delete 즉 서버 측 데이터를 수정할때 사용한다. Case 01 - 사용 예제 1 2 3 4 5 6 mutation CreateReviewForEpisode($ep: Episode!, $review: ReviewInput!) { createReview(episode: $ep, review: $review) { stars commentary } } Colored by Color Scripter cs 2021. 6. 16.
인스타그램 클론코딩 BACKEND 만들기 #3 - POC API : Query Query 란 ? select 문 이라고 생각하면 된다. Case 01 - Query 의 형태 1 2 3 4 5 { hero { name } } cs 이런식으로 요청 하면? 1 2 3 4 5 6 7 { "data": { "hero": { "name": "R2-D2" } } } cs 이렇게 나온다. 즉 Query 와 결과가 동일한 형태이다. Case 02 - 인자값을 받아서 결과 구하기 1 2 3 4 5 6 { human(id: "1000") { name height } } cs 이런식으로 () 안에 인자값을 설정할수 있다. 1 2 3 4 5 6 7 8 { "data": { "human": { "name": "Luke Skywalker", "height": 1.72 } } } cs id 가 1000인 hu.. 2021. 6. 16.
인스타그램 클론코딩 BACKEND 만들기 #2 - Babel Babel 이란? Babel 은 자바스크립트 컴파일러다. 최신 버전의 자바스크립트 문법을 편하게 사용할수 있도록 도와준다. node 버전에 상관없이 개발할수 있게되어 생산성이 크게 좋아진다. Step 01 - npm install @babel/preset-env --save-dev Babel 을 설치한다. Step 02 - babel.config.json 파일 만들기 1 2 3 { "presets": ["@babel/preset-env"] } Colored by Color Scripter cs Step 03 - package.json 파일 수정 1 2 3 { "scripts": "nodemon --exec babel-node server" } Colored by Color Scripter cs Step .. 2021. 6. 15.