Programming-[Backend] (411) 썸네일형 리스트형 5. 영화 API GraphQL : 구조, 원리 파악하기 참조 Nomad Coders의 무료 강의 'graphQL로 영화 API 만들기'를 참고하였다. nomadcoders.co/graphql-for-beginners 원리. Resolver와 Schema에 맞게 query문을 날리면 원하는 데이터를 받는다! 아래 사진에서처럼, 왼쪽 client에서 query 문을 날리면 movies에 해당하는 "data"객체가 우측 결과화면에 표시되는 것을 볼 수 있다. 어떤 원리로 이것이 작동하는지 구조적으로 살펴보자. 1-1. resolver.js resolver는 query 요청이 왔을 때 어떤 데이터를 넘겨줄 것인가를 정의해주는 파일이다. resolver 내부에 Query와 Mutation이 있는데, 이는 REST API에서의 GET, POST와 유사하다고 보면 된다... 4. graphQL 서버 기본 작성법 : schema, resolver 목표 기본적인 graphql 서버 작성법과 동작과정을 학습해본다. 구성 아래 그림과 같이 graphql 폴더에 resolver.js와 schema.graphql 파일을 작성하였다. schema.graphql 파일 여기서는 DB를 작성하는 것처럼 데이터의 항목과 종류를 정의한다. type : Query 문으로 모든 query가 집중되고, 각 데이터를 각각의 type에서 뽑아내는 형식으로 이해했다. 아래의 사진에서 보면, type Query 아래에 person : Person! 으로 정의된 것을 볼 수 있다. 이것은 query문으로 person 객체에 대한 요청이 오면, type Person에 대한 내용을 전달해준다는 의미를 갖는다. 데이터 항목의 각 값에 형식이 정해져있고, '!' 표시가 있는 것을 볼 수.. 3. 초기 세팅 1 : ES6 코드 적용을 위한 babel-node 설치 개요 import 와 같은 ES6 이상의 문법으로 서버 코드를 작성하기 위해서 자바스크립트 Transpiler인 babel 을 설치한다. 코드 1. 아래와 같은 명령어를 순차적으로 입력한다. npm i nodemon -D npm i @babel/cli -D npm i @babel/core -D npm i @babel/node -D npm i @babel/preset-env -D i : install의 약어, -D : --save-dev의 약어 2. ".babelrc" 파일을 만들고, 아래 설정값을 넣어준다. { "presets": ["@babel/preset-env"] } 3. 아래와 같이 graphQL 초기 세팅을 해준다. nodejs에 비해서 엄청 간단하다. 4. 만약 Error : No schema.. 2. graphQL, graphql-yoga 시작 설치 1. 당연히 git부터 삽입! 깃헙 repo 하나 만들기. Readme는 포함되는게 좋음 git init (repo 주소 입력, gitignore에 ) git remote add "깃허브 레포 주소" .gitignore 파일에 넣어줘야하는 리스트 ( 참조 1) 파일 형식은 (참조 2) .env* dist package-lock.json node_modules/ .idea *.log .graphcoolrc **/.DS_Store git branch -M master (main으로 해도 됨. master branch의 이름을 뭘로 할거냐 결정) git add . git commit -m "남길 메시지. first commit" git push origin master git pull origin mas.. 1. graphQL 의 목적 장점GraphQL은 기존 REST API에 비해 유리한 점이 2가지 있다. 1. 원하는 정보만 받아올 수 있으므로 통신에 드는 비용이 절감된다.2. REST API에서는 클라이언트-서버간 통신이 2번 이상 필요할 수 있는데, GraphQL은 한번에 가능하다. 예를 들어 student의 studentID값만 받아오고 싶은데, REST API에서는 GET 신호로 특정 엔드포인트에 요청을 보내면, studentID 값뿐만 아니라 student에 관련된 모든 정보를 서버에서 클라이언트로 전달하도록 서버코드가 작성되어 있을 수 있다.(이런걸 over-fetching 이라고 한다.)하지만 graphQL 에서는 studentID값만 요청하고, 받아옴으로써 비용 절감이 가능하다. 그리고 종종 서버에 어떤 정보를 요청하.. MySQL / 비밀번호 변경 / Access denied for 'root' ...문제 해결 MySQL 설치 후 로그인 시에 Access Denied for 'root'@'localhost' 문제 해결 방법. 아래와 같은 과정으로 터미널에서 진행한다. 철자 틀리지 말고, 각 과정에서 에러가 안뜨는지 확인하면서 차분하게 입력하자! 0) 에러 없이 가능하다면, 다음 명령어를 통해 mysql에 접속한다. mysql -u root -p >>password 입력 후 엔터 1) 에러 발생 시, MySQL을 관리자 권한으로 실행 sudo mysql 2) 사용자 정보가 포함된 mysql 데이터베이스 사용 use mysql; 3) 현재 암호 확인 : mysql 버전별로 방법이 상이하다! SELECT host, user, password FROM user; 또는 SELECT host, user, authentic.. SQL / Tutorial SQL (Structured Query Language) 데이터베이스용 프로그래밍 언어. Query 저장되어 있는 정보를 필터링 하기 위한 질문. 예시로는 검색창에 적는 검색어. 데이터베이스에 쿼리를 보내면 원하는 데이터를 뽑아올 수 있다. https://www.w3schools.com/sql/default.asp 명령문 SLELCT, FROM ex1) SELECT * FROM Customers; Customers 라는 테이블(시트)에서 모든 열을 선택하라 ex2) SELECT CustomerName, City FROM Customers; Customers 테이블에서 CustomerName, City 열을 선택하라 명령문 DISTINCT 1.SELECT Country FROM Customers 2. SE.. nodejs / 모듈 / fs.readFile node.js에서 readFile 모듈을 사용하는 방법을 공부한다. node.js의 fs.readFile 공식문서 : nodejs.org/dist/latest-v14.x/docs/api/fs.html#fs_fs_readfile_path_options_callback 1. 기능과 사용방법 fs.readFile(path[, options], callback) fs.readFile 모듈은 '비동기적으로' 파일 내용 전체를 읽는다. path는 파일경로로, string, Buffer, URL, integer 등의 형식으로 작성하면 된다. options는 encoding을 하거나 null 형태로 파일의 text를 encoding 할 것인지, raw data로 읽어들일 것인지를 결정한다. callback 함수는 er.. 이전 1 ··· 48 49 50 51 52 다음