///
Search

웹서비스 구조 이론

초창기 웹 서비스 구조

초창기 웹 서비스 구조
1.
크롬이나 파이어폭스와 같은 브라우저에서 URL을 입력합니다.
2.
이후 DNS 서버에서 클라이언트에게 원하는 웹 서버의 IP 주소를 알려줍니다.
3.
그 다음, 상호 간에 IP 주소가 TCP/IP 연결로 연결됩니다.
4.
이때, HTTP 프로토콜(Stateless)이 작동을 시작하고,
5.
클라이언트에서는 HTTP 요청을 보내고,
6.
서버에서는 HTTP 응답을 합니다.
7.
클라이언트가 HTTP 요청을 보낼 때 여러 가지 방법이 있습니다.
8.
그 중 하나가 GET 리소스입니다.
9.
Web Server에 있는 HTML 문서(리소스)를 가져오는 것입니다.
10.
그러나 가져오는 것은 그대로가 아니라 읽어오는 것입니다.
11.
이때, Web Server의 HTML 문서는 HDD, SSD, 바탕화면 등 어떤 경로에 있을 수 있습니다.
12.
Web Server는 이것을 읽어와 HTTP 응답을 합니다.

웹 서비스 3대 요소

3대 요소
자료구조
HTML Document
UI
CSS
제어
제어 연산을 하는 엔진을 script로 구현 : Javascript
브라우저 입장에서의 실행되는 순서
1. 구문 분석 → DOM (자료구조) 형성
2. 랜더링 → CSS(UI) + 컨텐츠 자료(사진 같은 static file)
3. S/W 연산 → JS

현대 웹서비스 내 개념들

HTTP
HyperText Transfer Protocol로 인터넷에서 주고 받을 수 있는 프로토콜이다.
인터넷에서 데이터를 주고 받을 수 있는 프로토콜
네트워크 5계층에서 Application layer에 속한다
위 그림과 같이 같이 주로 웹 브라우저 주소창에서 볼 수 있다.간혹 https라는 걸 봤을 것이다. https는 http + security로 http에 보안이 강화된 버전이다.
Protocol
규칙이라는 의미
네트워크에서 데이터를 주고 받을 때, 각각의 규칙에 맞춰 개발함으로써 서로 정보를 주고 받는다.
네트워크에서 데이터를 송수신하는 성격에 따라 프로토콜들이 만들어진다.
TCP
Transmission Control Protocol 로 서버와 클라이언트간 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜이다.
처음에 TCP가 HTTP와 연결을 맺으면 이후 HTTP 메시지가 교환되는 구조이다.TCP를 통해 통신을 하므로 신뢰성 있는 통신을 할 수 있다.
네트워크 5계층에서 Transport layer에 속한다.
IP
Internet Protocol로 인터넷상에서 데이터를 주고 받기 위한 통신 규약이다.
인터넷에 연결되어 있는 모든 장치들을 식별할 수 있도록 각가의 장비에게 부여되는 고유 주소이다.
네트워크 5계층에서 Network layer에 속한다.
DNS
Domain Name System으로 호스트의 도메인 이름을 호스트의 네트워크 주소로 바꾸거나 그 반대의 변환을 수행한다.
흔히 전화번호부에 비유되는 데, 컴퓨터의 주소를 찾기 위해 사람이 이해하도록 도메인 이름을 숫자로 된 IP주소로 변환해준다.
네트워크 5계층에서 Application layer에 속한다.
DOM
Document Object Model로 문서 객체 모델로 HTML 문서를 객체화한 것.
HTML문서를 객체화 하는 것은 HTML 문서를 브라우저가 이해할 수 있도록 Tree 자료구조로 만든 것이다.
Stateless
http는 'stateless'하다라고 들었을 것.
이는 클라이언트의 상태 변화나 연결 기록 등을 신경쓰지 않고, 그냥 단순하게 그 순간에 요구하는 것만 처리한다는 것이다.
때문에 간단하고 빠른 프로토콜이 동작할 수 있다.
Parsing (파싱)
구문 분석이라는 뜻으로 하나의 프로그램을 런타임환경이 실제로 행할 수 있는 내부 포맷으로 분석하고 변환하는 것.
렌더링
HTML, CSS, JS로 작성도니 문서를 파싱하여 브라우저에 시각적으로 출력하는 것을 말한다.
쿠키(Cookie)
쿠키 = 상호작용을 위한 Client에서의 기억의 부산물 및 저장
쿠키는 웹사이트 접속시 접속자의 개인장치(개인PC)에 해당 사이트에서 사용하는 서버를 통해 저장되는 작은 데이터이다.
Key : Value 형태로 되어 있다.
HTTP는 사용자의 정보를 저장할 수 없기 때문에 사용자 구별이 불가하고 매번 인증절차를 거쳐야한다.쿠키는 간단한 사용자의 정보를 기억할 수 있는 수단으로 이러한 HTTP단점을 해결해준다.
DB
서버(Server)에서의 기억을 저장
프로토콜(http)은 상태를 저장(기억, 기록)할 수 있는 방법이 없습니다.
따라서 회원가입 정보와 같은 데이터를 http에서는 저장할 수 없습니다.
이러한 데이터를 "기억"하거나 "기록"할 필요가 있으며, 이를 위해 데이터베이스(DB)가 등장하게 되었습니다.
데이터 베이스를 통제
SQL
Structured Query Language로 구조적 질의 언어라는 뜻이다.
관계형 데이터베이스 시스템(RDMS : Mysql, OrcleDB 등)에서 자료를 관리 및 처리하기 위해 설계된 언어이다.
데이터를 정의, 조작, 관리, 제어 등을 하기 위한 언어이다.
select * from table where id ='tester';
sql문에서 데이터를 조작하는 언어(DML) 중 한가지 예시이다.
'table'이라는 이름을 가진 테이블에서 id가 'tester'인 데이터의 모든 것을 조회해라라고 해석할 수 있다.(DB용어를 최대한 배제한 해석이므로 깔끔한 해석은 아니다.)