TIL

2024. 01. 18 TIL

아리단길아조씨 2024. 1. 18. 21:01
728x90

오늘은 드디어 알고리즘 문제를 하나 풀었다. 근데 생각보다 너무 쉬워서 한숨이 나왔다 ㅋㅋㅋ....

나이를 구하는 문제였다... 이 문제를 2주 동안 못풀었는데 오늘은 무슨 바람이 불었는 지 머리가 잘 돌아갔다.

정리를 해보자면 2022년도를 기준으로 출생 년도를 알고 싶으면 2022- 현재 나이 +1 을 하면 출생 년도가 나오는 것이었다 ㅋㅋㅋ.... 어이가 없었다...

어떤 변수를 선언을 해야할까 하다가 ' 어짜피 식 하나로 끝내버릴 수 있잖아..?' 라는 생각이 뇌리를 스쳐가는 것이었다.
그래서 풀이 사진과 같이 바로 myAge라는 변수에 출생 년도를 구하는 식을 할당하고 리턴을 해버렸다.

오늘의 공부

HTTP 모듈로 (감자)서버 만들기

1. 서버 만들기 - createServer함수를 사용한다.
=> http.createServer([옵션][, 콜백]);
ex)
// Node.js 내장 모듈인 http를 가져온다.
const http = require('http');
const server = http.createServer((req, res){
console.log('응애 나 애기 서버')
});

2. 서버 실행하기 - listen 함수를 사용한다.
=> server.listen(포트 번호[, 호스트][, 콜백])
리스닝이란? 서버에서 클라이언트 요청이 있는지 계속 기다리는 것
(클라이언트의 요청에 귀를 기울인다)
ex) server.listen(3000, () =>{
console.log('3000번 포트에 서버 있어요~');
});

3. 서버 만들고 실행하기

const http = require('http');
const server = http.createServer((req, res){
console.log("응애 나 애기 서버");
});
server.listen(3000, () => {
console.log("3000번 포트에서 서버 영업중");
});

4. 서버 동작 확인하기
VS코드의 터미널에서 파일이 위치하는 폴더의 경로가 일치하는지 확인 한 후 
'node 폴더 이름' 으로 확인이 가능하다.
서버가 정상적으로 실행된다면
'3000번 포트에서 서버 영업중'  이라는 문구가 뜰 것임.
(나는 뜸.)

5. 서버 종료하기
실행한 서버는 계속 돌아가고 있어서 중간에 서버 코드를 수정해도 변경 사항을 즉시 반영하지 못함.
그럴 때는  터미널에서 ctrl + c로 서버를 종료 시킨 후 다시 서버를 실행시키면 된다.

6. 요청 객체와 응답 객체
- 요청 객체 : 클라이언트에서 서버에 요청할 때 만들어지는 객체
요청 객체는 request이며 주로 req로 줄여씀.
* createServer함수에 console로 req를 찍어보면 터미널에 알아 보지도 못하는 많은 양의 정보가 뜬다...
모두 요청과 관련된 정보들임

- 응답 객체: 서버가 클라이언트로 응답을 할 때 만들어지는 객체
응답 객체는 크게 응답 헤더와 응답 본문으로 나뉘어져 있다.
그리고 요청에 대한 응답이 끝나면 서버와 연결을 지속할 필요가 없으므로 응답이 끝나면 응답을 종료한다.

응답 헤더
res 객체를 사용하려면 헤더를 만들어야한다!
헤더는 어떤 유형의 자료를 처리하는지, 서버의 상태는 어떠한지 알려주기도한다.
기본적으로 응답헤더를 만들 때는 setHeader 함수를 쓰지만,
서버의 상태까지 헤더에 기록하려면 writeHead함수를 쓰면 된다.
ex) 
res.setHeader(이름, 값)
res.setHeader("content-Type", "text/plain');

res.writeHead(상태 코드[, 상태 메시지][, 헤더]);
res.writeHead(200, {'content-type' : 'text/plain});

응답 본문과 응답 종료 
본문 : res.wirte(내용[, 인코딩][, 콜백]);
종료: res.end(내용 [, 인코딩][, 콜백]);

서빙(Serving)
서버에 HTML 페이지를 보여주는 방법
HTML 페이지를 서빙한다.

'TIL' 카테고리의 다른 글

24.01.22  (2) 2024.01.22
2024. 01. 19  (0) 2024.01.19
2024.01.17  (0) 2024.01.17
2024. 01. 16 TIL 겸 일기  (1) 2024.01.16
2024. 01. 15  (1) 2024.01.15