Web Achitectures 입문

|

 

1. DNS(Domain Name Server)

- 도메인 이름(google.com) 에서 IP주소(85.129.83.120)로 키/값 조회를 제공

- 도메인 주소를 IP주소로 변경하는 것이 DNS



2. 로드 밸런서

- 수평적 확장이 가능하도록 만드는 기술

- 백앤드(웹서버, DB, 기타 등등)들을 각각 다른 서버에서 돌림으로서 서로가 최소한으로 결합할 수 있도록 하는 확장을 의미

- 로드 밸런서는 들어오는 요청을 복제/미러링 된 수많은 서버 중의 하나로 연결하고 서버의 응답을 다시 클라이언트로 보낸다. 로드 밸런서는 이들 서부에 과부하가 걸리지 않도록 들어오는 요청을 적절히 분배해주는 일을 한다.



3. 웹 어플리케이션 서버

- 클라이언트에서 들어오는 요청을 핵심 비지니스 로직을 실행하고 그 결과를 HTML에 담아 브라우저로 보낸다.



4. Database

- 대부분의 웹 어플리케이션 서버는 잡 서버의 역할을 하는 데이터베이스 서버와 직접 통신한다. 거기에 더해서 각각의 백엔드 서비스는 애플리케이션의 다른 영역과 분리된 자신만의 데이터베이스를 가지고 있을 수 있다.



5. 캐싱 서비스

- 클라이언트가 요청하는 html, js, css등에 대해 첫 요청 시 파일을 내려받아 특정 위치에 복사본을 저장하고, 이후 동일한 URL의 요청은 다시 내려 받지 않고 내부에 저장한 파일을 사용하여 더 빠르게 서비스 하기 위한 것



6. Job queue & Server

- 많은 웹/애플리케이션은 사용자에 요청에 의해 응답과는 직접적인 관련이 없는 작업을 백그라운드에서 비동기적으로 실행할 필요가 있다.
- 예를 들어, 구글링 시 결과를 얻기 위해 인터넷에서 데이터를 크롤링하고, 인덱싱 할 필요가 있다. 이럴때 비동기적으로 웹을 크롤링 한다.



7. 전체 텍스트 검색 서비스

- 사용자가 입력을 하면 결과를 보여줌



8. 서비스

- 앱이 특정 규모에 도달하면 별도의 애플리케이션으로 분리해서 운영하기 위핸 ‘서비스’가 생기게 된다.



9. 데이터

- 최근 거의 모든 앱은 특정 규모에 도달하면 데이터를 제어, 저장, 번석하기위해 데이터 파이프 라인을 구축한다. 전형적인 파이프라인은 보통 3개의 주요 단계를 가진다.

- firehose는 데이터를 받아드리고 처리할 수 있는 스트리밍 인터페이스를 제공한다. 가공되지 않은 원시의 데이터는 변형되거나 추가 정보와 함께 다른 firehose로 전달이 된다.
- 원시 데이터와 최종 데이터는모두 클라우드 스토리지에 저장이된다.
- 변형/추가된 데이터는 종종 분석을 위해 데이터 웨어하우스(DW)에서 로드 된다.



10. 클라우드 스토리지

- 인터넷만 존재하면 어디서든 어떠한 기계를 통해서든 파일 및 모든 시스템을 저장 할 수 있고 불러와 사용할 수 있다.



11. CDN(Content Delivery Network)

- html, css, js, 이미지와 같이 정적인 데이터를 웹을 통해 원본서버를 이용하는 거솝다 더 빠르게 제공하기 위한 기술

'etc' 카테고리의 다른 글

PoC  (0) 2023.07.31
Copilot  (0) 2023.07.31
성장하려면  (0) 2023.06.30
DNS  (0) 2023.02.27
전보, 복수직급직렬  (0) 2022.12.28
And