항해99/TIL

20230224 TIL (Node.js 기초 공부 day1)

공대루루 2023. 2. 25. 02:22

☆오늘 알게 된 것★


HTTP의 이해

데이터를 주고 받는 양식을 정의한 '통신 규약' 중 하나가 HTTP 이다. 현대의 대부분 웹서버가 HTTP 를 기반으로 데이터를 주고 받는다. 또한 모든 브라우저는 HTTP 프로토콜을 기본으로 지원한다.

  1. 브라우저는 서버에게 자신이 원하는 페이지를 request(요구) 한다.
  2. 서버는 브라우저가 원하는 페이지가 있는지 확인하고, 있다면 해당 페이지의 데이터를 response(반환) 해준다.
  3. 브라우저는 서버에게 전달받은 데이터를 기반으로 브라우저에 그려준다.

Request 

클라이언트가 서버에게 요청하는 것. 요청을 보낼 때는 요청에 대한 정보를 담아 서버로 보낸다.

Request Method

  • GET :  자료를 요청할 때
  • POST :  자료의 생성을 요청할 때
  • PUT : 자료의 수정을 요청할 때
  • DELETE : 자료의 삭제를 요청할 때

Header (추가데이터, 메타 데이터)

HTTP 본문(body) 및 요청/응답에 대한 정보를 담는다.

Payload (실질적인 데이터)

요청을 할 때 함께 보낼 데이트를 담는 부분이다. 서버가 응답을 보낼 때에는 항상 payload를 보낼 수 있다. 

Response

서버가 요청에 대한 대답을 클라이언트에게 보내주는 것 

Status Code (상태코드)

상태 코드에는 많은 종류가 있으며 대표적으로 2xx(성공), 4xx(클라이언트오류), 5xx(서버요류)  이 있다.


Routing의 이해

Routing은 클라이언트의 요청 조건에 응답하는 방식이다. 일반적으로 Router는 아래의 구조로 사용한다.

router.메소드(서버에서 API를 사용하기 위한 경로, 실행되는 함수)

미들웨어(Middleware)란?

HTTP 요청과 응답 사이에서 단계별 동작을 수행해주는 함수이다. 오늘 사용해본 미들웨어는 라우터 미들웨어와 애플리케이션 미들웨어이다. 

라우터 미들웨어

Router객체를 이용해 router.use()  router.METHOD() 함수를 사용하여 라우터 레벨 미들웨어를 로드할 수 있다. app.use()의 인수로 사용되기도 하며 다른 router의 use() 메서드에서 사용될 수 있다. 특정 root url을 기점으로 기능이나 로직 별로 라우팅을 나워서 관리할 수 있다.

애플리케이션 미들웨어

app.use()  app.METHOD() 함수(*method: get, post 등등)를 이용해 app 오브젝트의 인스턴스에 바인드 시킨다.
미들웨어를 어플리케이션 영역에서 지정한 path대로 처리 가능하게 하도록 한다.
미들웨어를 모든 요청에 공통적으로 적용한다. 예를 들어 app.use('/apple) 이 있다면 /apple/images, /apple/images/news등에도 모두 적용시켜 버린다.

Module의 이해

모듈은 특정한 기능을 가진 여러개의 함수와 변수들의 집합으로 만들어져 있는 분리된 코드이다. 모듈은 그 자체로도 하나의 프로그램이지만 다른 프로그램의 부품으로 사용할 수 있다. 

모듈의 필요성

코드를 구조적으로 관리할 수 있으며 종속성을 관리할 수 있다. 모듈의 인터페이스만 노출 시킬 수 있어서 인터페이스 외의 모든 정보를 은닉할 수 있다.

모듈 사용하기

export 명령어를 변수나 함수 앞에 붙여서 사용하면 외부 모듈에서 해당 변수나 함수를 가져다 사용할 수 있다. 외부 모듈에서는 require을 사용해서 모듈을 가져올 수 있다.

화살표 함수로 export하기

모듈을 호출했을 때, add 키값에는 add 변수 함수가 가지고 있는 값이 할당된다.

const add = (a,b) => {
    return a+b;
}
exports.add = add;

익명 함수로 export하기

모듈을 호출했을 때, add키 값에는 (a,b) {return a+b} 가 할당된다.

exports.add = function (a,b){
    return a+b;
}

Module.exports = Object

모듈을 호출했을 때, add 키 값에는 add 함수가 들어간다.

function add (a,b){
    return a+b;
}
module.exports = {add:add};

module.exports = Function

모듈 그 자체를 바로 add 함수에 할당한다.

function add (a,b){
    return a+b;
}
module.exports = add;

내일부터 다시 화이팅!!! 잘 할 수 있다!!!