본문 바로가기

Node.JS

[Node.js 교과서] 3-3. REST API 서버 만들기, HTTP 상 코드 3-4. POST,PUT,DELETE Rest API (Representational State Transfer) 서버의 자원을 정의하고 자원에 대한 주소를 지정하는 방법 , 서버에 요청을 보낼 때는 주소를 통해 요청의 내용을 표현 /index.html 이면 index.html을 보내달라는 뜻 항상 html을 요구할 필요는 없고 서버가 이해하기 쉬운 주소가 좋음 /user이면 사용자 정보에 관한 정보를 요청 /post 이면 게시글에 관련된 자원을 요청 Http 요청 메서드 GET : 서버 자원을 가져오려고 할 때 사용 POST : 서버에 자원을 새로 등록하고자 할 때 사용 (또는 뭘 써야할 지 애매할 때) PUT : 서버의 자원을 요청에 들어있는 자원으로 치환하고자 할 때 사용 PATCH : 서버 자원의 일부만 수정하고자 할 때 사용 DEL.. 더보기
[Node.js 교과서] 3-1. 노드로 Http 서버 만들기, 3-2. fs로 HTML 파일 읽어 제공하기 요청과 응답 이해하기 1. 서버와 클라이언트 클라이언트가 서버로 요청 (request)을 보냄 서버는 요청을 처리 처리 후, 클라이언트로 응답 (response)을 보냄 노드 js는 자바스크립트 실행기 이지 서버가 아님 자바스크립트로 서버를 돌릴 수 있는 코드를 작성해 놓으면 노드가 그 코드를 실행해서 서버가 실행됨 2. 노드로 http 서버 만들기 http 요청에 응답하는 노드 서버 createServer로 요청 이벤트에 대기 req 객체는 요청에 관한 정보가, res 객체는 응답에 관한 정보가 담겨 있음 서버도 프로그램이기 때문에 node js가 createServer를 실행하는 순간 이 서버를 프로세스로 올려줘야함 프로세스에 올릴 때는 설정한 port에 올려야함 포트는 서버 내에서 프로세스를 구분하.. 더보기
[Node.js 교과서] 2-10. 파일 시스템 fs (FileSystem) 파일 시스템에 접근하는 모듈 (1) 파일/폴더 생성, 삭제, 읽기, 쓰기 가능 (2) 웹 브라우저에서는 파일 접근이 제한적이었으나 Node JS는 권한을 가지고 있음 (3) 파일 읽기 예제 (결과의 버퍼는 뒤에서 설명함) const fs = require('fs'); fs.readFile('./read.txt', (err, data) => { if(err) { throw err; } console.log(data) console.log(data.toString()) }) // //이파일을 읽어주세요. Promise를 이용할 수 도 있음 const fs2 = require('fs').promises; fs2.readFile('./read.txt') .then((data) => .. 더보기
[Node.js 교과서] 2-x. 예외 처리하기 프로그래밍의 오류 종류 프로그램에서 오류가 발생하면 시스템 레벨에서 프로그램에 문제를 야기하여 원치 않는 버그를 일으키거나, 심각하면 실행중인 프로그램을 강제로 종료시키기도 함 원인은 다양한데, 내부적인 요인과 외부적인 요인으로 나눌 수 있음 - 내부적인 요인 : 프로그램 설계 로직의 결함 등... - 외부적인 요인 : 하드웨어에 대한 문제 등... 프로그래밍에서는 이러한 오류를 발생 시점에 따라 크게 3가지로 나눔 (1) 컴파일 에러 : 컴파일시에 발생하는 에러 (Ex: 문법 구문 오류 Syntax Error) (2) 런타임 에러 : 실행시에 발생하는 에러 () (3) 논리적 에러 : 실행은 되지만 의도와 다르게 동작 (≒논리 에러 Logic Error) 프로그램 실행 시, 발생하는 오류를 크게 2가지.. 더보기
[인간 JS엔진 되기] 1-6. this ES2015 모듈에서는 strict 모드 자동 적용됨 function a() { //'use strict'; //만약 strict 모드를 사용을 위해 주석을 풀면, this는 undefined가 됨 console.log(this); } //a() console.log(globalThis) //브라우저 js 의 전역은 window, 최근에 업데이트되어서 window가 globalThis 로 바뀜 // node 의 전역은 global, node도 global이 globalThis로 바뀜 this는 어디서 호출하느냐에 따라 달라짐 obj 안에서 this는 obj 하지만 sayN에 obj.sayName을 대입하고 sayN을 호출하면 this가 바뀜 this 는 함수가 호출 될 때 결정됨. 함수를 전역 스코프에서.. 더보기
[Node.js 교과서] 2-7. OS, Path OS 운영체제의 정보를 담고 있는 OS 모듈 (node js 내장모듈) 운영체제, 메모리, CPU 정보를 알 수 있음 나중에 서버를 띄울 때, 효율적인 서버 메모리 구성을 할 수 있음 자세한건 node js API docs 참고 https://nodejs.org/dist/latest-v21.x/docs/api/ Index | Node.js v21.4.0 Documentation nodejs.org Path 더보기
[Node.js 교과서] 2-6. process Process node js에는 컴퓨터가 언제 켜졌는지고 조회할 수 있게 컴퓨터에 접근할 수 있음 즉 현재 실행중인 노드 프로세스에 대한 정보를 process를 통해 알 수 있음 pid를 알면 프로세스 강제 종료 가능 프로세스를 통해 컴퓨터가 언제 강제로 종료되게 설정할 수 있음 process.cwd 도 자주 사용함 또 컴퓨터 환경변수도 process.env를 통해서 접근할 수 있음 또한 메모리도 늘릴 수 있고 스레드 풀도 늘릴 수 있음 process.nextTick (콜) process.exit (코드) 더보기
[Node.js 교과서] 2-5. global, console, 타이머 (Node js의 내장객체) 위 그림처럼 module을 먼저 import 해서 써야하는데, module은 내장 객체 이므로 바로 사용할 수 있음 이런 Node js에서 제공하는 내장 객체들을 알아보자 Global 노드의 전역 객체 (브라우저의 window 같은 역할) 모든 파일에서 접근 가능 (window처럼 생략도 가능) (console, require도 global 속성 : 원래는 global.console.log() 이렇게 사용해야하는데 global을 생략 가능) console console.dir ({hello:'hello'}) → 객체를 로깅할 떄 사용 console.time ~ console.timeEnd : 코드 실행 시간 측정할 때 사용 // 다양한 console 모듈 const string = 'abc'; const.. 더보기