Node.js 공부하기 (3)

Coosla·2021년 1월 18일

Node.js

목록 보기
3/4
post-thumbnail

1. 요청(request)과 응답(response)

요청(request)

클라이언트에서 서버로 요청을 보냅니다.

응답(response)

서버는 요청한 내용을 처리한 뒤 클라이언트에게 응답을 보냅니다.

2. localhost와 포드

localhost란?

현재 컴퓨터의 내부 주소를 가리킵니다. 외부에서 접근할 수 없고 자신의 컴퓨터에서만 접근할 수 있습니다.

포트란?

서버 내에서 프로세스를 구분하는 번호입니다. 서버에서는 다양한 작업을 하므로 프로세스에 포트를 다르게 할당하여 들어오는 요청을 구분합니다. 다른 서비스가 사용하고 있는 포트를 사용할 경우 포트 충돌이 일어납니다.

3. 쿠키(Cookie)

  • 쿠키(Cookie)란?

    쿠키란?

    웹서버가 웹 브라우저에게 보내어 저장했다가 서버의 부가적인 요청이 있을 때 다시 서버로 보 내주는 문자열 정보이며 웹페이지 방문 시 방문 기록 등 브라우저에서의 정보를 저장한 텍스트 파 일 입니다.

  • 쿠키(Cookie)의 특징

    쿠키의 특징

    • 정보를 클라이언트(사용자 웹브라우저)에 저장합니다.
    • 서버가 주체가 되어 필요한 정보를 지정합니다.
    • HTTP 요청이 생길 때마다 해당 요청과 같이 서버로 보냅니다.
  • 쿠키(Cookie)의 장단점

    장점

    • 서버의 저장 공간을 절약할 수 있다.

    단점

    • 보안이 취약합니다.
    • 사이트당 20개, 쿠키의 크기가 4KByte를 넘을 수 없습니다.
    • 웹브라우저마다 지원 형태가 다릅니다.
    • 쿠키의 크기가 크면 네트워크 부하가 커집니다.
  • 쿠키 설정 옵션들

    옵션

    • 쿠키명=쿠키값 : 기본적인 쿠키의 값입니다.
    • Expires=날짜 : 만료 기한입니다. 기한이 지나면 쿠키가 제거됩니다.
    • Max-age=초 : Expires와 비슷하지만 날짜 대신 초를 입력합니다. Expires보다 우선입니다.
    • Domain=도메인명 : 쿠키가 전송될 도메인을 특정할 수 있습니다.
    • Path=URL : 쿠키가 전송될 URL을 특정할 수 있습니다. 기본값은 '/'이고 모든 URL에서                 쿠키를 전송할 수 있습니다
    • Secure : HTTPS일 경우에만 쿠키가 전송됩니다.
    • HttpOnly : 설정 시 자바스크립트에서 쿠키에 접근할 수 없습니다. (쿠키 조작 방지)

4. 세션(Session)

  • 세션(Session)이란?

    세션이란?

    클라이언트와 웹 서버 간의 네트워크 연결이 지속적으로 유지되고 있는 상태를 말합니다.

  • 세션(Session)의 특징

    세션의 특징

    • 정보를 서버에 보관합니다.
    • 고유한 세션ID를 생성하고 클라이언트가 보낸 세션ID를 참조하여 정보를 추출합니다.
    • HTTP 요청마다 요처에 세션ID만을 포함시켜 보냅니다.
  • 세션(Session)의 장단점

    장점

    • 쿠키보다 보안취약하지 않습니다.
    • 저장 개수나 용량 제한이 없습니다.
    • 서버에 정보를 저장하여 클라이언트의 웹브라우저에 의존하지 않아도 됩니다.
    • 데이터를 Hash Table에 저장하여 많은 정보를 하나의 세션 객체에 저장 가능합니다.
    • 세션ID만 보내므로 네트워크 부하가 거의 없습니다.

    단점

    • 정보를 서버에 저장하므로 이용자가 많아질수록 서버 부하가 커집니다.

5. 쿠키(Cookie)와 세션(Session) 차이점

구분쿠키(Cookie)세션(Session)
저장 위치클라이언트서버
저장 형식텍스트 형태Object형태
종료 시점쿠키 저장 시 설정정확한 시점을 알 수 없음
자원클라이언트의 자원 사용서버의 자원을 사용
용량제한한 도메인 당 20개, 쿠키 하나당 4KB, 총 300개서버가 허용하는 한 용량에 제한이 없음

6. REST API

  • REST API란?

    REST API란?

    REpresentational State Transfer의 약자로 네트워크 구조희 한 형식이며 서버의 자원을 정의하고, 자원에 대한 주소를 지정하는 방법을 말합니다. 주소 외에도 HTTP 요청 메서드도 사용합니다.

  • REST의 특징

    REST 특징

    • 유니폼 인터페이스(Uniform Interface)
      HTTP 표준을 따르면 특정 언어나 기술에 종속되지 않고 모든 플랫폼에 사용할 수 있으며 URI로 지정한 리소스에 대한 조작이 가능한 아키텍쳐 스타일입니다.
    • 무상태성(Stateless)
      작업을 위한 상태정보를 따로 저장하고 관리하지 않아 서비스의 자유도가 높아지고 서서에서 불필요한 정보를 관리하지 않음으로써 구현이 단순해집니다.
    • 캐시 사용 가능
      HTTP 웹 표준을 그대로 사용하기 때문에 웹에서 사용하는 기존 인프라를 그대로 사용할 수 있습니다.
    • 자체 표현 구조(Self-descriptiveness)
      REST API 메시지만 보고도 쉽게 이해할 수 있는 자체 표현 구조로 되어 있습니다.
    • Client - Server 구조
      서버는 API 제공, 클라이언트는 사용자 인증이나 컨텍스트(세션, 로그인 정보) 등을 직접 관리하는 구조로 각각의 역활이 확실히 구분되어 개발영역이 명확해지고 서로 간 의존성이 줄어듭니다.
    • 계층형 구조
      다층 계층으로 구성될 수 있으며 보안, 로드 밸런싱, 암호화 계층을 추가해 구조상의 유연성을 둘 수 있고 PROXY, 게이트웨이 같은 네트워크 기반의 중간 매체를 사용할 수 있습니다.
  • REST의 장단점

    장점

    • HTTP 프로토콜의 인프라를 그대로 사용하여 별도 인프라를 구축할 필요가 없습니다.
    • HTTP 표준 프로토콜에 따르는 모든 프로토콜에서 사용 가능합니다.
    • REST API의 메시지를 통해 쉽게 의도를 파악할 수 있습니다.
    • 서버와 클라이언트의 역활을 명확하게 분리합니다.
    • 여러가지 서비스 디자인에서 생길 수 있는 문제를 최소화합니다.

    단점

    • 표준이 존재하지 않아 정의가 필요합니다.
    • 사용할 수 있는 메서드가 한정적입니다.
    • 구형 브라우저에서 호환이 되지 않습니다.
  • HTTP 요청 메서드
    • GET : 서버 자원을 가져오고자 할 때 사용합니다. 데이터를 서버로 보내야 하면         쿼리스트링을 사용합니다.
    • POST : 서버에 자원을 새로 등록하고자 할 때 사용합니다.
    • PUT : 서버의 자원을 요청에 들어 있는 자원으로 치환하고자 할 때 사용합니다.
    • PATCH : 서버 자원의 일부만 수정하고자 할 때 사용합니다.
    • DELETE : 서버 자원의 일부만 수정하고자 할 때 사용합니다.

7. HTTPS 모듈

  • HTTPS란?

    HTTPS란?

    Hypertext Transfer Protocol Secure의 약자로 정보를 주고받을때 암호화를 하여 통신하는 방식입니다.

8. cluster 모듈

  • cluster 모듈이란?

    cluster모듈이란?

    싱글 스레드인 노드가 cpu코어를 모두 사용할 수 있게 해주는 모듈입니다.

  • cluster모듈 장단점

    장점

    • CPU 코어를 여러개 사용하여 성능이 개선됩니다.

    단점

    • 프로세서들이 세션을 공유하지 못합니다.
profile
프로그래밍 언어 공부 정리

0개의 댓글