본문 바로가기

웹 개발/node.js

[Node.js] node.js 서버 구축하기, URL라우팅

<서버와 클라이언트>

출처 : 코드잇

클라이언트 = 서버에 요청을 보내는 프로그램(컴퓨터) 

서버 = 클라이언트에 요청한 정보를 보내며 응답하는 프로그램=> node.js는 서버에서 실행될 프로그램을 만들기 위해서!

 

<Node.js로 간단한 서버 만들기>

createServer 함수에 인자로 들어오는 함수의 response 인자를 사용하면 클라이언트 요청에 대해 알맞은 응답을 줄 수 있다. response 객체의 end 메소드를 사용하면 원하는 응답을 줄 수 있다. 

<URL : Uniform Resource Locator, 웹 상의 특정 자원(html, css, 영상, 이미지 등)위치를 나타낸 문자열>

https://www.codeit.kr/topics/intro-to-nodejs/lessons/3719

https: 스킴(sheme) -> 프로토콜(클라이언트와 서버 간의 통신규약) 

www.codeit.kr  : 호스트(host) -> 특정 서버를 나타낸다. 

/topics/intro-to-nodejs/lessons/3719 : 경로(path) -> 원하는 자원의 위치를 나타낸다. path는 의미를 나타내기 위한 용도, 디렉토리 구조 안에 intro-to-nodejs파일이 없어도 된다. 반드시 서버안에 이런 구조와 디렉토리가 있어야 하는 것은 아니다.

+ ? :쿼리(query) -> 서버에 요청하는 것을 상세하게 표현하기 위해 사용

* www.naver.com  같이 도메인 네임(domain name)을 IP주소로 변환하는 작업을 Domain Name Resolution이라고 한다. Domain Name Resolution을 하는 과정에서 Name Server 네임 서버라고 하는 서버들의 도움이 필요하다.

 

 *http 프로토콜로 클라이언트와 통신할 서버 프로그램은 80번 포트 번호를 갖고 실행되어야 한다. 네트워크의 특정 프로토콜로 클라이언트와 통신을 하는 서버 프로그램은 특정 포트번호를 갖고 실행되야 한다. https 프로토콜의 기본 포트번호는 443번이다. 

 

<URL에 따라 서버가 다른 응답을 주도록 하기>

url 정보는 request 속성으로 들어온다. console.log(request.url)로 출력되는건 url 뒤쪽의 path 부분만이다.

URL 라우팅이란 url에 따라 필요한 정보를 가져오는 과정이다.  

request.url = path값이 들어오므로, path값에 따라서 if구문을 활용하여 다른 페이지를 보여 줄 수 있다. 

http://127.0.0.1:3000/users -> url이 이렇게 입력이 들어왔을때, request.url은 메인 url을 제외하고 /users가 된다. 따라서, users배열을 모두 출력하게 된다. 만약 127.0.0.1:3000/users/3 -> split으로 나누면 아래처럼 3 부분으로 나뉜다. 이때 1번 ㅑindex가 users이므로, userIdx는 두번째 요소인 3이 된다. 하지만, 배열은 0부터 시작하므로 여기서 0을 제외한 users[userIdx -1]이 userName이 된다. 

 

앞서 배운 내용들을 권장되는 코드 스타일로 바꾸면 이렇게 된다. 

변수보다는 상수를, 인자가 있는 함수는 arrow function화살표 함수를 그리고 문자열 템플릿을 활용하는 방법이다.