본문 바로가기

Programming

(467)
5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [3] 앞선 아티클에서 우리가 RESTful로 구현할 서버의 구조를 설계해 보았습니다.   5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [2]앞선 아티클에서 REST의 기본적인 개념과 내용을 살펴보았습니다. 자원의 주소와 HTTP 요청 메서드를 통해서 해당 요청의 내용을 대략 추측할 수 있는 것을 확인했습니다.   5. http 모듈로 서버nozeroslope.tistory.com  HTTP 메서드주소역할GET/restFront.html 파일 제공 GET /aboutabout.html 파일 제공 GET /users사용자 목록 제공 GET 기타기타 정적 파일 제공POST/user사용자 등록PUT/user/사용자id해당 id의 사용자 수정DELETE/user/사용자id해당 id의 사용자 삭제   ..
5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [2] 앞선 아티클에서 REST의 기본적인 개념과 내용을 살펴보았습니다. 자원의 주소와 HTTP 요청 메서드를 통해서 해당 요청의 내용을 대략 추측할 수 있는 것을 확인했습니다.   5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [1]REST는 생각보다 자주 듣게되는 용어인데, 의미는 REpresentational State Transfer 입니다. 용어를 기반으로 해석하면 다소 추상적인데, 결과적으로 특정 '자원'을 정의하고, 자원의 주소를 지정하는 프로nozeroslope.tistory.com   여기서 주소와 요청 메서드를 다룰 때 하나 기억해야 할 사실이 있습니다. 바로 하나의 주소(/users, /post....)는 여러 개의 요청 메서드를 가질 수 있다는 점입니다. 예를 들어 GET ..
5. http 모듈로 서버 만들기 (2) - REST와 라우팅 [1] REST는 생각보다 자주 듣게되는 용어인데, 의미는 REpresentational State Transfer 입니다. 용어를 기반으로 해석하면 다소 추상적인데, 결과적으로 특정 '자원'을 정의하고, 자원의 주소를 지정하는 프로토콜 전반을 의미한다고 보면 됩니다. 서버에 요청을 보낼 때는 html 파일 혹은 css나 js, 이미지 파일을 요청하게 됩니다. 이러한 요청의 내용이 주소를 통해 표현하게 되는 것이죠.  1. 자원(Resource) - HTTP URI 여기서 서버로 전달하기 위한 주소는 /user, 혹은 /post와 같은 의미를 추론하기 쉬운 명사를 사용하는 것이 좋습니다. 말 그대로 요청하는 주소가 /index.html이면 index.htm을 보내달라는 의미입니다. /about.html이면 ab..
5. http 모듈로 서버 만들기 (1) - 요청과 응답 [4] 앞선 아티클에서 우리는 주로 res.writeHead와 같은 메서드를 사용해 HTML 태그를 일일이 작성했습니다. 지금까지야 예시를 위해서 그렇게 작성해 왔지만, 매우 비효율적이죠. 지금부터는 HTML 파일을 실제로 작성하고, 해당 파일을 보내도록 하겠습니다.  참고로 해당 HTML 파일은 fs 모듈로 읽어서 전송하게 됩니다. 아래 예제를 확인해 보겠습니다. 참고로 fs 모듈에서 우리가 이미 살펴보았던 promise 방식을 사용하니, 헷갈리는 부분이 있다면 아래 아티클을 참고하세요.   4. Node 기능 살펴보기 (5) - 파일 시스템 접근하기 [fs] 2앞선 아티클에서 살펴보았듯이, fs 모듈은 콜백을 중심으로 구현되는 모듈입니다. 익숙한 형태이지만, 콜백 중심의 형식은 다소 사용하기 불편한 감이 있..
5. http 모듈로 서버 만들기 (1) - 요청과 응답 [3] 앞선 아티클에서 createServer( ) 메서드를 사용하면서 listen( ) 메서드를 이용해 포트 번호를 열고, 여기에 콜백 함수를 선언했었습니다.  const http = require('http');http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8'}); res.write('Hello World'); res.end('Hello Server');}) .listen(8080, () => { console.log('8080번 포트 서버 대기 중'); });/* 출력8080번 포트 서버 대기 중*/   이번에는 여기에서 listen 메서드에 ..
5. http 모듈로 서버 만들기 (1) - 요청과 응답 [2] 앞서서 살펴본 예제를 다시 한번 자세히 확인해 보겠습니다. const http = require('http');http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8'}); res.write('Hello World'); res.end('Hello Server');}) .listen(8080, () => { console.log('8080번 포트 서버 대기 중'); });/* 출력8080번 포트 서버 대기 중*/  우선 createServer 메서드 뒤에 listen 메서드를 붙입니다. 여기서는 클라이언트에 공개할 포트 번호를 작성하고 포트 연결이 완..
5. http 모듈로 서버 만들기 (1) - 요청과 응답 [1] 기본적인 클라이언트와 서버 개념을 설명함에 있어서, 서버는 req를 받아서 res해 클라이언트에 보내게 됩니다. 결국 서버는 '요청 받는' 부분과 '응답을 보내는' 부분이 존재해야 합니다.  이 구현은 우리가 살펴본 개념과 연결해 생각해 보면 간단합니다. 클라이언트로부터 요청 이벤트가 왔을 때, 서버에서 어떤 작업을 수행할 것인지 이벤트 리스너를 미리 등록해두는 것입니다. 이벤트 리스너를 등록해둔 예제를 만들어 보겠습니다.   // createServer.jsconst http = require('http');http.createServer( (req, res) => { // response를 어떻게 할지 작성} );  기본적으로 http 서버가 있어야 웹 브라우저의 req를 처리합니다. 그래서 h..
4. Node 기능 살펴보기 (11) - 예외 처리하기 [3] : 흔히 발생하는 에러 유형 Javascript 문법 에러를 제외한 오류의 종류를 살펴보도록 하겠습니다.  node: command not found- 노드를 설치했음에도 이 에러가 발생하는 경우는 환경 변수 설정의 오류가 발생하는 경우가 대부분입니다. 환경 변수에 노드가 설치된 경로가 포함되어야 합니다.ReferenceError: 모듈 is not defined- 모듈을 require했는지 확인이 필요합니다.Error: Connot find module 모듈이름- 모듈을 require했지만 설치는 안 한 상태입니다. npm i 명령어를 실행해야 합니다.Error [ERR_MODULE_NOT_FOUND] - 존재하지 않는 모듈을 불러올 때 발생합니다.Error: Can't set headers after they are sent- ..