본문 바로가기
First step/web depeloper step1

무엇을 사용했는가 /APOLLO

by Joshua21 2022. 1. 19.

내가 지금 하고있는 프로젝트는 typescript라는 프로그레밍 언어를 기반으로 node-ts 라는 런타임을 환경에서 구동되는 express 라는 웹프레임워크와 prisma라는 ORM 툴킷을 사용해서 API를 만들고 mysql로 관계형 데이터베이스를 관리한다. 이 과정에서 수동으로 작성해야만 하는 일부 코드를 손쉽게 만들어주는 nexus-prisma를 사용한다.

프론트단과 연결하는 방식으로 graphql을 사용하고 이 graphql방식으로 프로젝트를 구현할때 편하게 도와주는 라이브러리로 많이들 사용하는 apollo를 사용하게된다.  이 개발과정에서 package.json으로 협업하는 개발자간에 프레임워크와 라이브러리의 버전은 일치 시킬수있지만 각개인의 로컬PC에 mysql로 관리하는 database를 생성하고 지우는 과정을 반복하지 않는 대신 docker-compose up,down을 사용한다.

 

 

APOLLO

graphql을 적용하는 프로젝트에 널리 쓰이는 라이브러리로 클라이언트,서버 모두 사용가능하다는 장점이 있고 프론트단에서는 상태관리의 장점도 있는것 같다.(백엔드주니어 개발자인 나의 입장에서 아직 이해하기 어려워 정확하지 않다.)

 

Nexus

코드 우선(code-first)의 가치를 바탕으로 resolver와 데이터 모델링 정의를 한곳에서 하며, 동적으로 graphql 스키마를 생성해주는 라이브러리이다. 

nexus 함수, 함수들의 인자, nexus플러그인 아래의 바인딩이란, 이미 존재하는 JavaScript 라이브러리에서 타입 없이 쓰이고 있던 모든 함수 및 객체들에 대해 각 함수의 인자와 반환값을 정의하고. 객체에 레코드 등의(record) 타입을 부여하는 작업을 뜻함

 

 

참조:https://hellominchan.tistory.com/227

https://www.apollographql.com/

https://nexusjs.org/docs/

https://tlonist-sang.github.io/Today-I-learned/jekyll/update/2020/10/01/journey-of-backend.html

https://velog.io/@gtah2yk/Prisma-%EA%B4%80%EB%A0%A8-%EC%A0%95%EB%B3%B4%EC%A0%95%EB%A6%AC-hlk50xk8h8

'First step > web depeloper step1' 카테고리의 다른 글

node ts / nexus-prisma 프로젝트 다시보기용  (2) 2022.01.17
$ 표시가 무었인가요..  (0) 2022.01.10
graphQL  (0) 2022.01.08
Docker-compose  (0) 2022.01.07
[인턴 1일차]좌충우돌 용어정리  (0) 2021.12.29