초창기 웹 서비스 구조
•
초창기 웹 서비스 구조
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용어를 최대한 배제한 해석이므로 깔끔한 해석은 아니다.)