본문 바로가기
관리자

Programming-[Backend]

(417)
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..
nodejs / 모듈 / node.js 모듈 기초 1. 모듈이란? Nodejs 환경에서 Javascript를 사용하면, 브라우저를 이용할 때에 비해서 훨씬 더 다채로운 작업들을 할 수 있다. 여러가지 작업들을 위해서 '기능별로 미리 만들어 놓은 코드' 가 있는데, 이것들을 모듈이라고 한다. node.js 자체에 포함된 내장모듈들의 list는 참조1) 에서 확인할 수 있다. 2. 모듈 사용법 브라우저에서 모듈을 사용하기 위한 방법은 아래와 같다. 1 cs node.js 에서는 코드 상단에 require 구문을 사용하여 모듈을 불러온다. 1 2 const fs = require('fs') const dns = require('dns') cs node.js에서 공식적으로 제공하지 않는 3rd-party 모듈을 사용하기 위해서는 다음과 같은 명령어를 통해 사용..
Node.js / 기초 / NVM, NPM, package.json 1. Node.js는 Javascript의 런타임이다. 런타임이란 프로그래밍 언어가 구동되는 환경이다. 다시 말해, 어떤 프로그래밍 언어가 동작할 수 있는 프로그램 환경을 말한다. Javascript는 웹브라우저라는 환경에서 작동되므로, javascript의 런타임은 웹브라우저이다. node.js도 웹브라우저와 마찬가지로 javascript를 위한 런타임이다. Node.js는 v8 엔진으로 만들어진 자바스크립트 런타임이다. v8은 자바스크립트를 기계어로 컴파일 해주는 엔진이다. V8 엔진은 멀티스레딩을 지원하지 않으므로 Node.js도 싱글 스레드이다. 다만, 외부의 요청을 싱글 스레드로 받아와서 이벤트큐에 callback 방식으로 쌓아놓고, 순서대로 처리한다. 이벤트큐에 쌓인 태스크를 내부에서 멀티스레..