728x90

노드 8

[책 리뷰] Node.js 교과서(개정 2판)

Node.js에 대해서 익혀보기 위해서 시작한 도서. Node.js 교과서(개정 2판이다). 책을 구입하기전 여러 커뮤니티에도 물어봤고, 서점가서도 이리저리 살펴보면서 선택한 도서. 흔히 말하는 Node.js의 입문서라고 보면 될 것 같다. 책은 생각보다 두껍지만, 나처럼 Node.js에 처음으로 입문하는 사람에게는 최적인것 같다. 초입부에는 Node.js에 대한 설명으로 주로 구성되어 있고, 후반부에는 살짝 작은 프로젝트들을 실습해보고, api나 test. 그리고 aws에까지 배포하는 부분까지 나와있다. 물론 이 책을 한 번 읽고 Node.js를 정복 할 수는 없겠지만, 두고두고 공부할때마다 참고한다면 Node.js를 학습하는데 있어 정말 큰 도움이 될 것 같다. 내 돈 내 산 후기 끝:) https:..

Book Review 2021.11.22

[Node.js] #10 웹 API 서버 만들기

1. API 서버 이해하기 API(Application Programming Interface) 다른 애플리케이션에서 현재 프로그램의 기능을 사용 할 수 있게 허용하는 접점을 의미. 웹 API는 다른 웹 서비스의 기능을 사용하거나 자원을 가져올 수 있는 창구. 서버에 API를 올려서 URL을 통해 접근 할 수 있게 만든 것을 웹 API 서버라고 부른다. 2. JWT 토큰으로 인증하기 JWT는 JSON Web Token의 약어로, JSON 형식의 데이터를 저장하는 토큰. JWT의 구성요소 - 헤더(Header): 토큰 종류와 해시 알고리즘 정보가 들어있음. - 페이로드(Payload): 토큰의 내용물이 인코딩된 부분. - 시그니처(Signature): 일련의 문자열이며, 시그니처를 통해 토큰이 변조되었는지..

node.js 2021.11.22

[Node.js] #9 익스프레스로 SNS 서비스 만들기

익스프레스로 SNS 같은 공유 네트워크 만들때 주의해야할 점 1) 서버는 요청에 응답하는 것이 핵심 임무이므로 요청을 수락하든 거절하든 상관없이 반드시 응답해야함. 이때 한 번만 응답해야 에러가 발생하지 않음. 2) 개발 시 서버를 매번 수동으로 재시작하지 않으려면 nodemon을 사용하는 것이 좋다. 3) dotenv 패키지와 .env 파일로 유출되면 안 되는 비밀키를 관리해야한다. 4) 라우터는 routes 폴더에, 데이터베이스는 models 폴더에, html 파일은 views 폴더에 구분하여 저장하면 프로젝트 규모가 커져도 관리하기 쉽다. 5) 데이터베이스를 구성하기 전에 데이터 간 1:1, 1:N, N:M 관계를 잘 파악하자 6) routes/middlewares.js처럼 라우터 내에 미들웨어를 ..

node.js 2021.11.19

[Node.js] #6 익스프레스 웹 서버 만들기

1. 익스프레스 프로젝트 시작하기 익스프레스(express) : 웹 서버를 만들 때 코드가 보기 좋지 않고 확장성도 떨어진다고 느꼈을때, npm에는 서버를 제작하는 과정에서의 불편함을 해소하고 편의 기능을 추가한 웹 서버 프레임워크가 있다. 그것이 바로 익스프레스. const express = require('express'); const app = express(); app.set('port', process.env.PORT || 3000); //서버가 실행될 포트 설정 app.get('/', (req, res) => { res.send('Hello, Express'); }); app.listen(app.get('port'), () => { console.log(app.get('port'), '번 포트..

node.js 2021.11.15

[Node.js] #5 패키지매니저

1. npm 알아보기 npm(Node Package Manager) : 125만개의 패키지가 등록되어 있어 이러한 방대한 양의 패키지는 노드와 자바스크립트의 생태계를 견고하게 만들고, 게다가 대부분 오픈소스이기때문에 노드를 사용해 웹을 만들때 많은도움이 됨. 2. package.json으로 패키지 관리하기 같은 패키지라도 버전별로 기능이 다를 수 있기때문에 프로젝트를 설치할 때 패키지도 동일한 버전을 설치하지 않으면 문제가 생길 수 있음. 이때 설치한 패키지의 버전을 관리하는 파일이 바로 package.json. → 노드 프로젝트를 시작하기전에는 폴더 내부에 무조건 package.json부터 만들고 시작해야한다. npm에서 package.json을 만들수있는 명령어를 제공하고 있음. [윈도우 환경] np..

node.js 2021.11.15

[Node.js] #3 http 모듈로 서버 만들기(1)

1. 요청과 응답 이해하기 서버는 클라이언트가 있기에 동작하며, 클라이언트에서 서버로 요청(request)을 보내고, 서버에서는 요청의 내용을 읽고 처리한 뒤 클라이언트에 응답(response)을 보낸다. 요청과 응답을 바로 이벤트 방식이라고 표현한다. 클라이언트로부터 요청이 왔을 때 어떤 작업을 수행할지 이벤트 리스너를 미리 등록해야함. 아래는 가장 기본적인 서버의 요청과 응답 const http = require('http'); http.createServer((req, res) => { res.writeHead(200, { 'Content-Type' : 'text.html; charset=utf-8' }); res.write('Hello Node!'); res.end('Hello Server!');..

node.js 2021.11.12

[Node.js] #2노드의 기능

1. REPL 사용하기 자바스크립트는 스크립트 언어이므로 미리 컴파일을 하지 않아도 즉석에서 코드를 실행 할 수 있음. 노드도 비슷한 콘솔을 제공하는데, 입력한 코드를 읽고(Read), 해석하고(Eval), 결과물을 반환하고(Print), 종료할 때까지 반복한다(Loop) 라고해서 REPL라고 부름(Read Eval Print Loop). 읽고, 해석한 뒤 바로 결과물을 출력했다. REPL은 한 두줄짜리를 테스트하기엔 좋지만 여러줄을 실행하기에는 불편함. 2. JS 파일 실행하기 코드가 길 경우에는 코드자체를 자바스크립트 파일로 작성하여 파일을 통쨰로 실행하는 것이 좋다. ex) node [자바스크립트 파일 경로] 3. 모듈로 만들기 모듈 : 특정한 기능을 하는 함수나 변수들의 집합. 모듈은 하나의 프로..

node.js 2021.11.11

[Node.js] #1 node.js 첫 시작. 노드(node.js) 란?

Node.js 란? : Chrome V8 JavaScript 엔진으로 빌드된 Javascript 런타임. 서버 : 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 또는 프로그램을 말함 노드는 자바스크립트 프로그램이 서버로서 기능하기 위한 도구를 제공하므로 서버 역할을 수행 할 수 있음. 노드의 특성 1. 자바스크립트 런타임 쉽게 말하면 자바스크립트 실행기로 이해 할 수 있다. 기존에는 자바스크립트를 웹 브라우저 위에서만 실행 할 수 있었음. V8과 libuv는 C와 C++로 구현되어 있지만 노드가 알아서 연결해주기때문에 노드를 사용 할 때 C와 C++는 몰라도 실행 가능하다. 2. 이벤트 기반 이벤트 기반(event-driven)이란 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식을 ..

node.js 2021.11.11
728x90