[Web] 웹 기초

thereisname·2024년 4월 23일

Web

목록 보기
1/6

1. 웹 개요

'요청 - 반환'의 주체는 웹 브라우저와 웹 서버 2가지로 구성.

웹 브라우저 - 웹 서버간 요청 및 반환: 프론트앤드와 백앤드 사이의 데이터 또는 웹 패이지 교환.

웹 서버 - 웹 서버 간 요청 및 반환: MSA를 사용하는 곳이라면 각자 담당한 서비스를 갖는 수많은 서버가 있기 때문에 서버간 교환 필요.

모놀리틱(Monolithic) 아키텍처

모놀리틱 아키텍처는 하나의 큰 애플리케이션 안에 모든 기능이 통합되어 있는 전통적인 소프트웨어 설계 방식으로 하나의 서버가 모든 서비스를 관장한다. 모든 구성 요소가 하나의 단일 프로세스 내에서 실행되며, 서로 강한 의존성을 가지고 있다.

장점

  • 소규모 프로젝트에서는 합리적이다.
  • 개발, 빌드, 배포, 테스트가 용이하다.

단점

  • 확장성이 제한적이다.
  • 유지보수가 어렵다.
  • 기술 스택 선택의 자유가 제한이다
  • 장애 발생 시 전체 시스템에 영향을 미칠 수 있다.

SPOF(Single Point of Failure)이란?
단일 이슈가 전체 이슈로 퍼지는 현상이다.
단일 모놀리틱


MSA(Microservice Architecture)

독립적으로 배포 가능한 작은 서비스들의 집합으로 구성하는 아키텍처 스타일이다. 각 서비스는 특정 비즈니스 기능을 담당하며, 느슨하게 결합이 되어있다. 이를 통해 빠르고 신뢰할 수 있는 소프트웨어 배포가 가능하다.

장점

  • 빠른 개발 및 배포가 가능합니다.
  • 기술 선택의 자유가 높습니다.
  • 확장성이 뛰어납니다.
  • 유지보수가 용이합니다.

단점

  • 서비스 간 통신 복잡도가 높습니다.
  • 분산 시스템의 복잡성이 증가합니다.
  • 트랜잭션 관리가 어려울 수 있습니다.

REST API(Representational State Transfer API)

클라이언트가 서버에 요청을 데이터로 전송하면 서버가 클라이언트의 입력을 사용하여 내부 함수를 시작하고 출력 데이터를 다시 클라이언트에 반환한다.
어떤 행위를 할 것이지 정의하는 PUT, GET, POST, PATCH, DELETE 등 메소드를 정의하고 어떤 자원에 대해 정의한 명사형태의 URI를 정의한다.

URI와 URL

  • URI(Uniform Resource Identifier): 자원을 식별하는 고유한 문자열 시퀀스이다. URI는 자원을 식별하는 방법을 정의한다.
  • URL(Uniform Resource Locator): 자원의 위치를 나타내는 규약이다. URL은 자원의 실제 위치를 가리킨다.

예를 들어 fnek.com/category/cat/hello 라는 URI가 있다고 가정한다면 fnek.com은 장소 즉 Location이고, category/cat/hello는 장소 내의 지정 사항이 되는 것이다.

장소 내의 지정 사항을 나눔에 있어 각자의 역할이 있다. 위의 예에 적용한다면, category = collection, cat = document, hello = store 이다. 종합하자면 Location/collection/document/store이 된다.


2. 웹의 등장

웹 페이지

개별 문서로 대부분의 웹 페이지는 웹 서버에 저장되어 있으며, HTML, CSS, JavaScript, 이미지, 동영상 등으로 구성된다. 사용자들은 웹 브라우저를 통해 이러한 웹 페이지에 접근할 수 있다.

HTML은 웹 페이지의 구조와 내용을 정의하는 글에 해당하고, CSS는 문서의 외관과 표현을 정의하는 글의 서식(글꼴, 스타일)를 JS는 사용자와 컴퓨터 사이의 이벤트를 작성하여 동작하게 된다.

웹 브라우저

웹 페이지의 3개 구성 요소 (HTML, CSS, JS) 모두 실행 및 렌더하여, 유저에게 결과 웹 페이지를 노출하는 것으로 웹 브라우저는 웹 서버와 양방향으로 통신하며, 웹 페이지를 검색하고 표시한다. 주요 웹 브라우저에는 Mozilla Firefox, Google Chrome, Microsoft Edge, Apple Safari 등이 있다.

웹 브라우저 렌더링

  1. HTML 파일과 CSS 파일을 파싱해서 각각 Tree를 만든다. (Parsing)
    HTML 파일을 해석하여 DOM(Document Object Model) Tree를 구성하는 단계이다. 파싱 중 HTML에 CSS가 포함되어 있다면 CSSOM(CSS Object Model) Tree 구성 작업도 함께 진행한다.
  1. 두 Tree를 결합하여 Rendering Tree를 만든다. (Style)
  1. Rendering Tree에서 각 노드의 위치와 크기를 계산한다. (Layout)
  2. 계산된 값을 이용해 각 노드를 화면상의 실제 픽셀로 변환하고, 레이어를 만든다. (Paint)
  3. 레이어를 합성하여 실제 화면에 나타낸다. (Composite)

웹 서버

요청한 정보 즉, 문서(웹 페이지)를 반환해주기 위해 통신을 하게 될 것이다. 문서를 제공한다는 측면에서 웹 페이지의 제공자(내 컴퓨터)가 웹 서버가 된다는 개념이다.


3. Intranet과 Internet

Intranet(인트라넷)

사내망으로 외부로 트래픽이 나가지 않아 보안을 위해 특정 조직 내부에서만 사용되는 폐쇄적인 네트워크이다. 회사, 학교, 정부 기관 등 특정 집단의 구성원들만 접속할 수 있는 네트워크로, 정보 공유와 협업을 위해 사용된다.

Internet

전 세계적으로 연결된 개방형 컴퓨터 네트워크입니다. 누구나 인터넷에 접속할 수 있으며, 웹 브라우저를 통해 다양한 정보와 서비스를 이용할 수 있다. 사내 네트워크인 Internet이 내부 사용뿐만 아니라 외부와 연결되고 싶을 때 게이트웨이를 통해 연결한다.

  • Gateway(GW): 내부 회선 즉, Intranet이 내부 뿐만 아니라 외부와의 연결이 되고 싶을 때 GateWay를 지나 Internet과 연결. 즉 톨게이트 역할을 한다.

Intranet과 Internet

DNS(Domain Name System)

모든 서버는 000.000.0.0의 형태의 IP주소라는 것을 가진다. 그러나 이는 사람이 읽기 어려운 형태이기에 영어로 된 별명인 도메인 이름을 사용한다. 따라서 어떤 도메인 네임이 어떤 IP주소인지 검색 및 변환 과정을 해야 한다. 이를 DNS(Domain Name System)이라고 한다.

도메인 주소 : www.google.com
IP 주소 : 172.217.175.238

크게 도메인 서버를 나눌 수 있는데 다음과 같다.
Local DNS Server
: 기본적으로 통신사에서 제공해주는 DNS 서버를 사용 (KT, SK 등)
Root Name Server
: 크게 전 세계에 13개의 서버로 구성되어 있다. 도메인을 IP 주소로 변환하는 첫 단계로써, 최상위 도메인(TLD)에 대한 네임서버를 반환한다.
TLD Name Server
: 일반 최상위 도메인(com, net, org 등) 과 국가코드 최상위 도메인(kr, uk, fr 등) 을 포함하고 있다.
권한 있는 네임서버(Authoritative Nameserver)를 반환한다.
Authoritative Name Server
: 실제로 DNS 리소스 레코드들을 관리하고 있는 서버다. 마지막 단계로써, IP 주소를 반환한다.

  1. 사용자가 웹 브라우저를 열어 주소 표시줄에 www.example.com을 입력하고 Enter 키를 누릅니다.

  2. www.example.com에 대한 요청은 일반적으로 케이블 인터넷 공급업체, DSL 광대역 공급업체 또는 기업 네트워크 같은 인터넷 서비스 제공업체(ISP)(ex> SKT, KT, LG)가 관리하는 DNS 해석기로 라우팅됩니다.

  3. ISP의 DNS 해석기는 www.example.com에 대한 요청을 DNS Root Server에 전달합니다.

  4. ISP의 DNS 해석기는 www.example.com에 대한 요청을 이번에는 .com 도메인의 TLD Server 중 하나에 다시 전달합니다. .com DNS는 example.com 도메인과 연관된 4개의 Amazon Route 53 Server(Name Server)의 이름을 사용하여 요청에 응답합니다.

  5. ISP의 DNS 해석기는 Amazon Route 53 Server(Name Server) 하나를 선택해 www.example.com에 대한 요청을 해당 이름 서버에 전달합니다.

  6. Amazon Route 53 Server(Name Server)는 example.com 호스팅 영역에서 www.example.com 레코드를 찾아 웹 서버의 IP 주소 192.0.2.44 등 연관된 값을 받고 이 IP 주소를 DNS 해석기로 반환합니다.

  7. ISP의 DNS 해석기가 마침내 사용자에게 필요한 IP 주소를 확보하게 됩니다. 해석기는 이 값을 웹 브라우저로 반환합니다. 또한, DNS 해석기는 다음에 누군가가 example.com을 탐색할 때 좀 더 빠르게 응답할 수 있도록 사용자가 지정하는 일정 기간 example.comIP 주소를 캐싱(저장)합니다.

  8. 웹 브라우저는 DNS 해석기로부터 얻은 IP 주소로 www.example.com에 대한 요청을 전송합니다.

  9. 192.0.2.44에 있는 웹 서버 또는 그 밖의 리소스는 www.example.com의 웹 페이지를 웹 브라우저로 반환하고, 웹 브라우저는 이 페이지를 표시합니다.






촐처: https://aws.amazon.com/ko/route53/what-is-dns/

profile
개발을 공부하는 주니어 개발자

0개의 댓글