11주차

Load Balancing

1

클라이언트 수가 늘어나게 된 경우, 하나의 서버만 있다면 Traffic이 증가하게 되어 정상적인 서비스가 불가 ->  서버가 여러대 나누어서 일하도록 만드는 방법(Scale-out 방법)


Load Balancer가 Server를 선택하는 기준(트래픽을 분산해주는 방법)

  1. RR(Round Robin)

    서버에 들어온 요청을 순서대로 돌아가며 배정하는 방식

  2. Least Connections

    연결 개수가 가장 적은 서버를 택하는 방식으로, Traffic으로 인해 세션이 길어지거나 서버에 분배된 트래픽들이 일정하지 않은 경우 권장하는 방식

  3. IP 해싱 방식

    사용자의 IP를 해싱한 뒤 각각의 서버에 분배하는 방식으로, 사용자는 항상 같은 서버로 연결되는 것이 보장된다.


Server Traffic을 해결하기 위한 방법

  1. Scale-out

    하나의 Server보다는 여러 대의 Server가 나누어서 일을 하는 방법

  2. Scale-up

    Server가 더 빠르게 동작하기 위해 하드웨어 성능을 높이는 방법




Rest

  • Rest?(Representational State Transfer)
    • HTTP 프로토콜을 활용하여 웹에 존재하는 자원(image, video 등)에 고유한 URI(Uniform Resource Identifier)를 부여해 자원을 정의하고 자원에 대한 주소를 지정하는 방법
    • HTTP 메소드를 통해 CRUD 연산(Create, Read, Update, Delete)을 수행한다.
    • REST에서 하나의 자원은 JSON, XML, TEXT등 여러 형태로 표현되어질 수 있다.


  • URI vs URL
  URI URL
약자 Uniform Resource Identifier Uniform Resorce Locator
주특징 자원의 위치뿐만 아니라 자원에 대한 고유 식별자(URL의 의미를 포함) 자원이 실제로 존재하는 위치를 가르킴
예시 http://torang.co.kr/user/107 http://torang.co.kr/user/(URI도 됨)


Rest의 특징

  1. Server-Client 구조

    자원이 있는 쪽이 Server, 자원을 요청하는 쪽이 client가 되는 구조

  2. Stateless(무상태)

    HTTP 프로토콜이 stateless 상태이기 때문에, REST 역시 stateless하다. 세션과 쿠키 정보를 신경쓰지 않아도 되기 때문에 구현이 단순

  3. Cacheable(캐시 처리 기능)

    대량의 요청을 효율적으로 처리하기 위해 캐시가 요구된다.

  4. Layered System

    client와 server가 분리되어 중간에 프록시 서버, 로드 밸런싱 등의 중간매체르 사용해 구성의 자유도를 높일 수 있다.

  5. Uniform Interface

    URI로 지정한 Resource에 대한 조작을 통일되고 한정적인 인터페이스로 수행한다.

  • 캐시와 쿠키의 차이점
    • 공통점 : client 측에서 정보를 저장한다는 것
    • 차이점 : 캐시는 웹페이지의 자원(HTML, CSS, Javascript 등)을 저장하는 반면, 쿠키는 사용자 기본 설정을 저장하는 데 사용


GET과 POST의 차이

  GET POST
주기능 서버로 정보를 요청할 때 사용 서버로 리소스를 생성하거나 업데이터 하기 위해 데이터를 보낼 때 사용
Cache 가능(서버까지 가지 않고 캐시에서 다운로드해서 줄 수 있다) 불가능
history 브라우저에 남음 브라우저에 남지 않음
길이제한 있음(브라우저마다 다름) 없음
보안 URL끝에 ? 뒤에 파라미터로 전송되기 때문에 중요한 정보x http 메시지 body부분에 담아서 서버로 보낸다.


OSI 7계층

2

1. Application Layer

최종 목적지로서 HTTP, FTP, SMTP, IMAP, POP3와 같은 프로토콜이 있다.​

2. Presentation Layer​

코드 간의 번역을 담당하여 데이터의 형식상 차이를 다룬다. 데이터의 압축이나 인코딩,암호화 등의 동작이 이루어진다. ​

3. Session Layer​

동기점을 설정함으로써 에러에 의해 중단된 대화 단위를 처음부터 재전송하게 설정​, TCP/IP 세션 생성 및 종료 책임

4. Transport Layer​

TCP/UDP, 3-way handshaking, Port, Segment, RDT, Congestion control, Flow control, Timer.

5. Network Layer​

Routing, IP, ARP, NAT, Subnet, CIDR

6. Link Layer​

MAC, Switch​, Frame

7. Physical Layer​

데이터를 전기적인 신호로 변환해서 주고받는 기능​(허브)




참고Link

  • REST

https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

  • URL vs URI

https://velog.io/@torang/URL%EA%B3%BC-URI%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90

  • GET vs POST

https://noahlogs.tistory.com/35

  • OSI 7계층

https://shlee0882.tistory.com/110

  • 동기 vs 비동기/블로킹 vs 논블로킹

https://velog.io/@nittre/%EB%B8%94%EB%A1%9C%ED%82%B9-Vs.-%EB%85%BC%EB%B8%94%EB%A1%9C%ED%82%B9-%EB%8F%99%EA%B8%B0-Vs.-%EB%B9%84%EB%8F%99%EA%B8%B0