Apollo Server Context

·2022년 5월 1일
0

TIL

목록 보기
34/36

GraphQL은 그저 명세이기 때문에, 그래프큐엘에 대한 데이터를 오가는 라이브러리가 필요하다.

다양한 언어마다 수많은 것들이 존재하는데 (아래는 공식 홈페이지의 언어 지원목록)

나는 웹 프로그래밍을 배우고 있기 때문에 조금 더 원활한 소통(?)이 가능하기 위해
백엔드에서 쓸 수 있는 Apollo Server를 사용하고 있다.

기본적인 설정은 크게 어려움이 없는데 특별한 경우 사용해야하는 것이 하나 있어서 적어놓으려고 한다.

아래는 앱모듈에서 선언해놓은 코드

 GraphQLModule.forRoot<ApolloDriverConfig>({
      driver: ApolloDriver,
      autoSchemaFile: 'src/commons/graphql/schema.gql',
      context: ({ req, res }) => ({ req, res }),
    }),

그것은 바로 마지막 줄에 있는 context에 관련된 이야기다.

context란?

완전 js를 처음 공부하는 사람이라면 모르겠지만, 조금이라도 맛을 본 사람은 정말 대충 알고 있는 용어다.
나도 정확하게 이해는 못해서 내가 생각하고 있는 것은

실행이 되었을 경우 그 코드의 최상단으로 이해를 하고 있는 상태다.
window는 정말 큰 개념이라 조금 더 위에 있는 느낌?

context를 선언해서 사용을 할 경우에 저것을 받아서 데이터를 보면 진짜 별 데이터들이 엄청 많이 들어있다.
그럼 저걸 왜 굳이 선언을 해야하나? 라는 생각이 들 수 있는데, 인증, 인가 과정에서는 토큰 정보가 헤더에 담겨오기 때문에 그것을 꺼내서 사용하기 위해 컨텍스트를 선언해서 사용해야만 한다.

profile
물류 서비스 Backend Software Developer

0개의 댓글