TIL(Today I Learned)
7월 16일(일)
공부한 내용을 제 언어로 빠르게 정리한 내용이라서 잘못된 내용이 있을 수 있습니다.
외워서 끝내는 네트워크 핵심이론 - 기초
그림 한 장으로 외워서 끝내는 웹 서비스 구조 기본이론
-
초기 웹은 정적인 HTML 문서를 다운로드해서 뷰어로 보는 방식이었다.
-
웹 기술이 발전해서 css, javascript 등이 추가되면서 동적인 페이지가 되었다.
-
그리고 단방향의 상호작용 방식에서 양방향 상호작용 방식으로 발전하였고, 이때 “state”(상태)가 필요해졌다.
-
HTTP 프로토콜은 “stateless” 프로토콜이므로 상태를 다루고 저장하기 위해서 client에서는 cookie, server에서는 database가 추가되었다.
-
웹서버는 큰 틀에서 Web server, WAS(Web Application Server), DB로 구성된다.
-
Web server 송/수신을 담당, WAS는 처리를 담당, Database를 자료의 저장/불러오기를 담당
WAS와 RESTful API 그리고 JVM
-
WAS, JVM
-
WAS의 응답시간은 서비스의 품질이다. 이를 모니터링 위해 APM(Application Performance Monitor)를 이용한다.
-
HW <-> SW , CPU == Machine, Logical ~= Virtual
-
JVM(Java Virtual Machine)은 자바를 위해서 소프트웨어로 구현한 CPU, Java Bytecode로 작동
-
Middleware은 소프트웨어가 잘 작동할수있도록 도와주는 소프트웨어이다. WAS라고 하며, Tomcat이 해당(TCP/IP, DB, File I/O … 등의 기능)
-
Servlet은 필요한 기능 단위로 구현한 것이고 이를 Servlet Container에 올려서 작동한다.
-
Servlet Container의 관리를 위해 프레임워크로 만든것이 Spring
-
-
RESTful API
-
이전에는 HTML 문서를 동적으로 만들어서 서버에 전달했다면, 이제는 웹 브라우징하는 디바이스가 다양해지면서 HTML을 서버에서 전달하지 않고 데이터만 전송하도록 하고 있다. (사용자 디바이스에 맞게 서버에서 다른 HTML문서를 만드는 어려움)
-
이렇게 HTML 대신 데이터만 보내는 것을 REST API라고 하며, 이렇게 데이터만 받아서 클라이언트 단에서 HTML페이지를 만든다. (React.js, Vue.js…)
-
즉 사용자 요청은 크게 CRUD로 구분할 수 있는데, 이러한 요청에 응답하는 함수를 만들어서 URI를 설정하는 것을 REST API라고 한다.
-
-
보안
- 웹 서버 앞단에 IPS, SSL, WAF(Web Application Firewall)로 보안을 강화한다.
- SSL은 암호화를 담당하며, 이전단 통신까지는 HTTPS, 이후단은 HTTP가 된다.
- 원격지 사용자 입력을 검증해야하는데, 사용자 입력에 불필요한 SQL문은 없는지, 불필요하게 입력 값이 길다던지 등을 검증한다.