Infra

계층형 시스템

3.1 3계층형 시스템의 구성도

  • 3계층 시스템 구성
    • 웹 서버 ↔ AP 서버 ↔ DB 서버
    • 세 대의 서버는 스위치를 경유해서 연결

3.2 주요 개념 설명

3.2.1 프로세스와 스레드

프로세스 및 스레드는 OS 상에서 실행되기 때문에 어느 정도 독립성을 가지고 동작

  • 프로그램 실행 파일 자체가 아님

프로세스

  • 전용 메모리 공간을 이용해서 동작한다.
    • 장점
      • 개별 처리 독립성이 높다.
    • 단점
      • 생성 시 CPU 부하가 높다.

스레드

  • 다른 스레드와 메모리 공간을 공유한다.
    • 장점
      • 생성 시 부하가 낮다.
    • 단점
      • 메모리 공간을 공유하기 때문에, 의도하지 않는 데이터 읽기/쓰기가 발생할 수 있다.

3.2.2 OS 커널

OS의 본질은 커널이다.

  • 커널의 역할
    • 시스템 콜 인터페이스
    • 프로세스 관리
    • 메모리 관리
    • 네트워크 스택
    • 파일 시스템 관리
    • 장치 드라이버

시스템 콜 인터페이스

  • AP가 OS를 통해서 어떤 처리를 하고 싶을 때 시스템 콜(디스크 I/O, 네트워크 I/O 등)을 이용하여 커널에 명령을 내림
  • 명령이 인터페이스를 통해서 전달된다.

프로세스 관리

  • 프로세스의 처리 우선순위를 결정
  • CPU 코어를 고려하여 프로세스를 관리한다.

메모리 관리

  • 물리 메모리 공간의 최대치를 고려
  • 프로세스가 이용하는 독립 메모리 공간을 확보
  • 메모리 영역을 관리

네트워크 스택

  • 차후 네트워크 부분에서 설명.

파일 시스템 관리

  • 파일 시스템용 인터페이스를 제공
  • 파일 시스템은 OS 기능의 하나
  • 물리 디스크에 제공된 데이터를 관리하는 기능

장치 드라이버

  • 디스크나 NIC 등의 물리 장치용 인터페이스를 제공

3.3 웹 데이터 흐름

웹 데이터 흐름의 본질은 ‘요청 기반으로 어떠한 처리를 하고 필요에 따라 해당 요청을 삼자에게 할당하는 것’이다.

3.3.1 클라이언트 PC부터 웹 서버까지

  • 웹 브라우저가 요청을 보낸다.
  • 이름 해석 후 해당 웹 서버에 요청을 보낸다.
  • 웹 서버가 요청을 접수한다.
  • 웹 서버가 정적 콘텐츠인지 동적 콘텐츠인지 판단한다.
  • 전자일때는 물리 디스크에서 내용을 취득하고, 후자일때는 AP 서버에 요청을 보낸다.

3.3.2 웹 서버부터 AP 서버까지

  • 웹 서버로부터 요청이 도착한다.
  • 스레드가 요청을 받으면 자신이 계산할 수 있는지, 아니면 DB 접속이 필요한지를 판단한다.
  • DB 접속이 필요하면 연결 풀(connection pool)에 액세스한다.
  • DB 서버에 요청을 보낸다.

3.3.3 AP 서버부터 DB 서버까지

  • AP 서버로부터 요청이 도착한다.
  • 프로세스가 요청을 접수하고 캐시가 존재하는지 확인한다.
  • 캐시에 없으면 디스크에 액세스한다.
  • 디스크가 데이터를 반환한다.
  • 데이터를 캐시 형태로 저장한다.
  • 결과를 AP 서버에 반환한다.

3.3.4 AP 서버부터 웹 서버까지

  • DB 서버로부터 데이터가 도착한다.
  • 스레드가 데이터를 가지고 계산 등을 한 후에 파일 데이터를 생성한다.
  • 결과를 웹 서버로 반환한다.

3.3.5 웹 서버부터 클라이언트 PC까지

  • AP 서버로부터 데이터가 도착한다.
  • 프로세스는 받은 데이터를 그대로 반환한다.
  • 결과가 웹 브라우저로 반환되고 화면에 표시된다.

Leave a Reply