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

[NodeJS] 간단한 응답 서버 만들기

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

서버 만들기: 교재는 Node.js 백엔드 개발자 되기

OK 응답 서버 만들기

모든 요청에 'OK'를 반환하는 서버를 Node.js로 만들어 보자.

'OK' 응답 서버

라우터 만들기

모든 요청에 'OK'로 응답하는 것은 테스트 용도로 의미가 있다. 실제 웹 서버는 경로에 따라 다른 응답을 줘야 한다. 이러한 기능을 '라우팅'이라고 한다. URL의 경로를 읽어서 다른 응답을 주도록 코드를 수정하자.

'localhost:3000/feed' 입력 경우
'localhost:3000/user' 입력 경우

url 모듈을 로딩하고 url 변수에 할당한다. url 모듈을 사용해 요청(req)으로 받은 url의 pathname을 얻어낸다. url이 "localhost:3000/user"라면 pathname은 "/user"가 된다. parse() 함수의 두 번째 인수로 true는 쿼리 스트링참고1도 함께 파싱할지 여부를 설정하는 변수다. 경로명 다음의 ? 기호 뒤에 '키=값'의 형태로 쿼리 스트링을 붙인다. 여기서는 쿼리 스트링을 파싱해도 결과에는 변화가 없다. 

 

요청이 /feed로 온 경우는 콘텐츠 타입이 text/html이므로 받은 문자열은 브라우저에서 HTML로 해석된다. 다음과 같이 불릿이 있는 목록으로 표현된다.

브라우저에서 HTML로 해석

만약 /user나 /feed가 없는 경우에는 404 에러를 보낸다. 또한 응답 코드를 404로 주었기 때문에 브라우저 요청에 대한 응답도 다음과 같이 404로 표현된다. 

 

ChatGPT와 협업

교재에서 공부한 내용을 ChatGPT에게 코딩 자문을 구했다. ChatGPT는 몇 가지 문제점을 알려준다. "/feed" 경로에서 HTML 리스트를 제대로 반환하기 위한 요령과 에러 메시지 "404 page not found"를 반환하기 전에 'res.writeHead()'를 사용하여 상태코드와 함께 'Content-Type'을 설정하는 것이 좋겠다고 조언한다.참고2


참고 1

쿼리 스트링(query string): HTTP 요청을 보낼 때 사용자가 원하는 값을 보내는 방식이다. 경로값 뒤에 ?를 붙인 다음 key=value 형식으로 사용할 수 있다. 쿼리 스트링이 여러 개일 경우는 &로 구분해 추가한다. 

 

참고 2

ChatGPT의 코딩 코치 : 에러 메시지 반환 방법으로 더 정밀한 방법을 권장함.

ChatGPT의 코딩 코치

 

반응형