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문은 없는지, 불필요하게 입력 값이 길다던지 등을 검증한다.

참고 및 예시 출처