본문 바로가기
도서로 공부하는 프로그래밍/코딩 자율학습

[NodeJS] 간단한 라우터 만들기

by 열공노년 2024. 4. 27.
반응형

간단한 라우터 만들기

Node.js를 사용해 작성된 간단한 웹 서버는 두 개의 경로(/user/feed)를 처리하고, 나머지 경로에 대해서는 404 오류를 반환합니다.

간단한 라우터 만들기

코드의 주요 구성 요소

  1. httpurl 모듈을 불러오는 구문: 이들은 각각 서버 기능과 URL 분석 기능을 제공합니다.
  2. http.createServer 메소드를 사용하여 HTTP 서버를 생성하는 구문: 요청을 처리할 때 사용할 콜백 함수를 정의합니다.
  3. 요청된 URL의 경로를 파싱하여 path 변수에 저장하는 구문: url.parse(req.url).pathnameMemo1 를 사용합니다.
  4. if...else 구문을 사용하여 요청된 경로에 따라 다른 응답을 반환하는 로직:
    • /user 경로에 대한 요청이 있을 경우, res.end를 사용하여 사용자 정보를 문자열로 응답합니다.
    • /feed 경로에 대한 요청이 있을 경우, res.end를 사용하여 HTML 형식의 리스트를 응답합니다.
    • 그 외의 경로에 대한 요청이 있을 경우, res.statusCode를 404로 설정하고 res.end를 사용하여 "404 page not found" 메시지를 응답합니다.
  5. server.listen 메소드를 사용하여 3000번 포트에서 서버를 시작하는 구문: 서버가 시작되면 콘솔에 "구름은 서버 시작!" 메시지를 로그합니다.

[Memo] Node.js에서 URL 경로를 파싱하는 과정

경로 파싱이란 URL의 각 구성 요소를 해석하여 개별적으로 액세스할 수 있도록 분해하는 과정을 말합니다. url 모듈은 URL 문자열을 쉽게 파싱하고 조작할 수 있는 유틸리티를 제공합니다.

 

url.parse(req.url).pathname 라인에서는 다음과 같은 작업을 수행합니다:

  1. req.url:
    • req는 HTTP 요청을 나타내는 객체입니다.
    • url은 요청받은 URL의 문자열을 포함하고 있습니다. 예를 들어, http://example.com/user?name=alice가 요청 URL일 때, req.url/user?name=alice 부분을 담게 됩니다.
  2. url.parse(req.url):
    • url.parse 메소드는 URL 문자열을 파싱하고 각 구성 요소를 담은 객체를 반환합니다.
    • 반환된 객체에는 pathname, query, host 등의 속성이 포함되어 있습니다.
    • pathname은 URL에서 호스트와 포트를 제외한 경로를 나타냅니다. 쿼리 문자열(?name=alice) 이전의 부분인 /user가 여기에 해당됩니다.
    • query는 쿼리 문자열(name=alice) 부분을 담고 있습니다.
  3. .pathname:
    • 위에서 생성된 URL 객체의 pathname 속성에 접근하여 실제 경로 부분만을 추출합니다.
    • 이 값은 라우팅 결정을 내리는 데 사용됩니다. 즉, 어떤 경로에 대한 요청이 들어왔는지를 기반으로 다른 처리를 할지 결정하는 기준이 됩니다.

파싱의 기능

요청된 URL의 경로를 파싱하는 것은 서버가 다양한 경로에 대해 다른 응답을 제공해야 할 때 매우 중요합니다. 예를 들어, /user 경로에서는 사용자 정보를 제공하고, /feed 경로에서는 뉴스 피드를 제공하는 등의 기능을 구현할 때 사용됩니다.

반응형