책(200)
-
[4장] 서버 만들기 (REST & Routing)
2. REST와 라우팅 2.1 REST / REST API / RESTful REST ; REpresentational State Transfer. : 서버의 자원을 정의하고 자원에 대한 주소를 지정하는 방법을 말한다. 여기서 자원이란 서버가 행할 수 있는 모든 것들을 통틀어서 의미한다고 보면 된다(파일을 포함한 모든 것들) REST API : REST 규칙(총 6가지)을 지켜서 서비스 API를 구현하는 것을 REST API라고 하는데, 사실 저걸 다 지키기는게 쉬운 일은 아니다. RESTful : REST를 준수하는 서비스를 RESTful 하다고 한다. 2.2 서버 만들기 HTTP Method(GET, POST, PUT, PATCH, DELETE)를 끼얹어서 RESTful한 서버를 만들어보자. 코드만 ..
2022.05.03 -
[4장] 서버 만들기 (http모듈)
지금까지 배운 모듈로 서버를 만들어보고, 실제 서버 동작에 필요한 쿠키, 세션, 라우팅 방법 등등에 대해서 배워보자. 1. 요청과 응답 서버는 요청을 받는 부분과 응답을 보내는 부분이 있어야 한다. 요청과 응답은 일종의 이벤트 방식으로, 클라이언트로부터 요청이 왔을 때 어떤 작업을 수행할지 이벤트 리스너를 달아주는 방식이다. 참고로 http 모듈은 ESM 방식으로 지원을 안해서 어쩔 수 없이 CommonJS 방식으로 사용했다. ( Imports are limited to HTTP/1 : Automatic protocol negotiation for HTTP/2 and HTTP/3 is not yet supported ) 1.1 http vs https 요새 웹사이트 들어가보면 거의 대부분의 도메인 프로토..
2022.05.01 -
[3장] 노드 기능(2)
4. 파일 시스템 접근(fs) 웹 브라우저에서 JS를 사용할 땐 어지간한 경우에 파일 시스템 접근이 금지돼있어서 노드의 fs모듈이 낯설 것이다. fs 모듈은 파일 시스템에 접근하는 모듈로, 파일 생성/읽기/쓰기/삭제 및 폴더 생성 등등이 가능하다. 4.1 파일 읽기 // readme.txt란 파일에 리드미 플리즈 라는 문자를 입력해 저장해둔 상태임 // readFile.js // ㄹㅇ 개쌩기초부터 한번 보자 const fs = require('fs'); // 경로를 지정할 때 주의해야할 사항은 // 현재 파일이 아닌, 터미널에 찍혀있는 콘솔 주소를 기준으로 인식된다는 것 // 즉, 아래처럼 주소를 작성하고 node feadFile.js를 실행하면 // C:\Users\GYUL\Documents\codin..
2022.04.29 -
[3장] 노드 기능(1)
1. REPL 입력한 코드를 읽고, 해석하고, 결과를 반환하고, 종료시까지 반복한다는 의미이다. 즉, 단일 사용자의 입력(예: 단일 식)을 읽어들이고 이를 평가(실행)하고 결과를 사용자에게 반환시키는 단순한 상호작용 컴퓨터 프로그래밍 환경을 말한다. REPL 환경으로 작성된 프로그램은 구간마다 실행되는데, 이 기법은 스크립트 언어와 매우 유사하다. 통상의 예가 프로그래밍 언어를 위한 명령 줄인데, 노드의 콘솔 또한 자바스크립트를 읽고, 해석하고 반환하고 반복해주므로 REPL이라고 부른다. 2. 노드 내장 객체 2.1 global 객체 브라우저의 window와 같은 전역 객체. 브라우저에서 window.open 메서드를 그냥 open으로 호출할 수 있는 것처럼 global도 생략이 가능한데, 맨날 쓰던 r..
2022.04.26 -
[1장] Node.js 시작하기
1. 핵심 개념 노드가 대체 뭘까? 노드 공식 사이트의 설명에 따르면 'Node.jsⓇ는 Chrome V8 Javascript 엔진으로 빌드된 Javascript 런타임' 이다. 즉, 노드가 단순히 서버로써 돌아가기 위한 프로그램은 아니라는 말이다. 이에 대해 천천히 살펴보도록 하자. 1.1 서버 서버란 네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 또는 프로그램을 말한다. 여기서 클라이언트란 요청을 보내는 주체로서 브라우저가 될 수도 있고, 데스크톱 프로그램이거나 모바일 앱, 혹은 다른 서버에 요청을 보내는 또다른 서버일 수도 있다. 그리고 이에 대한 '응답'을 해주는 것이 서버인 것이다. 노드는 자바스크립트 프로그램이 서버로써 동작하기 위한 도구를 제공하므로 서버 역할을 수행할 수 있다..
2022.04.24 -
[2장] 모듈 시스템(4)
6. ESM: ECMAScript 모듈 ECMASciprt 2015 명세의 일부분으로 JS의 공식 모듈 시스템을 구축하기 위해 도입됐다. CommonJS나 AMD의 기존 모듈 시스템內 장점은 그대로 두되, 간단한 문법과 비동기적 모듈 로드, 순환참조 지원 등 여러 이점을 제공한다. CommonJS와 가장 큰 차이점은 ESM에선 모듈이 static이라는 것이다. static이란게 무슨 말일까? 쉽게말해 아래와 같이 선언하란 뜻인데, 구체적으론 아래와 같다. import foo from "./mod.js"; 어떤 코드 중간에서 import할 수 없으며, import 선언은 최상위 레벨에서 선언되어야 한다 어디에서(from) 어떤 모듈을 불러올 것인지(import) 명시적으로 작성해야 한다 즉, 코드의 실행 ..
2022.04.23