상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - Node.js에서 GraphQL 스키마를 정의하는 방법은 무엇인가요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
Node.js에서 GraphQL 스키마를 정의하는 방법은 GraphQL의 기본 개념을 이해하고, 이를 Node.js 환경에서 구현하는 과정을 포함합니다. GraphQL 스키마는 API의 구조를 정의하며, 클라이언트가 요청할 수 있는 데이터의 형태와 관계를 명시합니다. 아래에서는 GraphQL 스키마를 정의하는 방법에 대해 단계별로 설명하겠습니다. 1. GraphQL 설치 먼저, Node.js 프로젝트를 생성하고 필요한 패키지를 설치해야 합니다. GraphQL을 사용하기 위해 `graphql`과 `apollo-server` 패키지를 설치합니다. ```bash mkdir graphql-example cd graphql-example npm init -y npm install graphql apollo-server ``` 2. GraphQL 스키마 정의 GraphQL 스키마는 `type`, `query`, `mutation`, `subscription` 등으로 구성됩니다. 기본적인 스키마를 정의하는 방법은 다음과 같습니다. ```javascript const { ApolloServer, gql } = require('apollo-server'); // 스키마 정의 const typeDefs = gql` type Book { title: String author: String publishedYear: Int } type Query { books: [Book] book(title: String!): Book } type Mutation { addBook(title: String!, author: String!, publishedYear: Int!): Book } `; ``` 위의 예제에서 `Book` 타입은 책의 제목, 저자, 출판 연도를 포함합니다. `Query` 타입은 모든 책을 가져오는 `books` 쿼리와 특정 제목의 책을 가져오는 `book` 쿼리를 정의합니다. `Mutation` 타입은 새로운 책을 추가하는 `addBook` 뮤테이션을 정의합니다. 3. <a href='https://sangseek.com/sangseeks/리졸버/ko'>리졸버</a> 정의 리졸버는 클라이언트의 요청을 처리하는 함수입니다. 각 쿼리와 뮤테이션에 대해 리졸버를 정의해야 합니다. ```javascript const books = []; const resolvers = { Query: { books: () => books, book: (parent, args) => books.find(book => book.title === args.title), }, Mutation: { addBook: (parent, args) => { const newBook = { title: args.title, author: args.author, publishedYear: args.publishedYear }; books.push(newBook); return newBook; }, }, }; ``` 위의 리졸버에서는 `books` 쿼리가 호출되면 `books` 배열을 반환하고, `book` 쿼리는 제목으로 책을 검색하여 반환합니다. `addBook` 뮤테이션은 새로운 책을 배열에 추가하고 추가된 책을 반환합니다. 4. Apollo Server 설정 이제 Apollo Server를 설정하고 스키마와 리졸버를 연결합니다. ```javascript const server = new ApolloServer({ typeDefs, resolvers }); server.listen().then(({ url }) => { console.log(`🚀 Server ready at ${url}`); }); ``` 위의 코드는 Apollo Server를 생성하고, 정의한 스키마와 리졸버를 사용하여 서버를 시작합니다. 서버가 시작되면 GraphQL Playground에서 API를 테스트할 수 있는 URL이 출력됩니다. 5. 서버 실행 이제 모든 설정이 완료되었습니다. 아래의 명령어로 서버를 실행합니다. ```bash node index.js ``` 서버가 실행되면, 브라우저에서 출력된 URL로 이동하여 GraphQL Playground를 통해 쿼리와 뮤테이션을 테스트할 수 있습니다. 6. 쿼리 및 뮤테이션 테스트 GraphQL Playground에서 다음과 같은 쿼리와 뮤테이션을 테스트할 수 있습니다. 책 추가하기 ```graphql mutation { addBook(title: "The Great Gatsby", author: "F. Scott Fitzgerald", publishedYear: 1925) { title author } } ``` 모든 책 가져오기 ```graphql query { books { title author publishedYear } } ``` 특정 책 가져오기 ```graphql query { book(title: "The Great Gatsby") { title author publishedYear } } ``` 결론 Node.js에서 GraphQL 스키마를 정의하는 과정은 스키마와 리졸버를 설정하고 Apollo Server를 통해 API를 제공하는 것으로 요약할 수 있습니다. GraphQL의 유연성과 강력한 타입 시스템을 활용하여 클라이언트가 필요한 데이터를 효율적으로 요청할 수 있도록 설계할 수 있습니다. 이 기본적인 예제를 바탕으로 더 복잡한 스키마와 리졸버를 구현하여 다양한 기능을 추가할 수 있습니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기