[BE] Nest graphQL sample 코드 분석 - 1

HOU·2023년 12월 4일

backend

목록 보기
9/10

Nest는 document

nest는 document가 참 친절한거 같다. 영어로 되어있지만 요새 번역기도 잘 되어 있어서
읽어가는 것에 대해 어려움은 없다.
nest document

nest graphQL

graphQL에 대해서 계속 공부하고 있고 구글에 있는 몇개의 샘플 코드를 따라 만들었다.
그렇게 반복하고 나니 graphQL 에서 제공하는 예제 코드를 한번 진행해도 이해할 수 있을거 같았다.

nest samplecode

nest sample code

sample code를 보면 구조는 아래와 같다.

src
|__common
|	|__directives
|   |__plugins
|   |__scalars
|__recipes
|__app.module.ts
|__main.ts
|
.eslintrc.js
.gitignore
nest-cli.json
package-lock.json
package.json
schma.gql
tsconfig.build.json
tsconfig.json

으로 구성되어 있다. 이 구조를 보면서 common 폴더안에 3가지 폴더들이 무엇인지 이해가 안되어서 검색해보았다. 검색해보니 아래와 같은 역할을 하는 기능을 가지고 있었다.

directives(지시자)

  • GraphQL 지시자는 GraphQL 쿼리와 스키마에서 특정 동작을 수행하는데 사용되는 기능이다.
  • directives 폴더는 이러한 지시자를 정의하고 구현하는데 사용한다. 예를들어, @deperecated 지시자는 특정 필드나 타입이 더 이상 사용되지 않음을 나타내는데 사용된다.

Pugins

  • GraphQL PluginGraphQL 스키마나 쿼리를 확장하거나 기능을 추가하기 위해 사용되는 도구나 라이브러이다.
  • plugins 폴더는 이러한 플러그인과 관련된 코드를 포함할 수 있다. 예를 들어, Apollo serverprisma 와 같은 GraphQL 플러그인을 사용하는 경우, 해당 플러그인의 설정이나 확장 기능을 이 폴더에서 관리한다.

Scalars

  • GraphQL 스키마에서 스칼라 타입은 단일 값 (문자열, 숫자, 불리언 등)을 나타내는 타입이다.
  • scalars 폴더는 사용자 정의 스칼라 타입을 정의하고 관리하는데 사용될 수 있다. 예를들어, 날짜와 시간을 나타내는 스칼라 타입인 DateTime 을 정의하고 사용할 수 있다.

이러한 directives, plugins, scalars 폴더는 코드의 구조화와 재사용성을 향상시키기 위해 사용될 수 있다. 공통적으로 사용되는 요소들을 한 곳에 모아두어 코드의 일관성을 유지, 관련 기능을 중앙에서 관리할 수 있다.

참고

graphQL.org

profile
하루 한 걸음 성장하는 개발자

0개의 댓글