daniel7481의 개발일지

[웹 프로그래밍(풀스택)]Web 개발의 이해(Summary) 본문

Naver Boostcourse

[웹 프로그래밍(풀스택)]Web 개발의 이해(Summary)

daniel7481 2021. 12. 8. 22:15
반응형

마치며

웹 개발의 이해를 마치며 실제 영상 길이는 길지 않았지만 정말 많은 양의 정보를 담고 있었다. 정리가 안된 상태에서 다시 돌아가서 보기도 하고 그랬던 것 같다. 복습하는 겸 중요한 점 몇 가지를 적어보기로 했다. 만약 틀린 개념이 있다면 언제든 지적해주길 바란다.

인터넷 - 네트워크의 네트워크로 각 네트워크는 서로 다른 포트를 차지하는데, 웹은 80번이다. 웹은 인터넷에 속해있다.

HTTP: 웹에서 사용하는 프로토콜(규약)으로 클라이언트 서버 모델을 따른다. 대표적인 특징으로 무상태(stateless)가 있으며 서버가 요청에 응답하면 바로 연결을 끊는 특징을 의미한다. 장점으로는 불특정 다수에게 서비스를 제공하는데 유리하지만 단점으로는 클라의 이전상황을 알 수 없기 때문에 Cookie 등의 기능으로 보안하였다.

URL: 사용하는 프로토콜의 종류, ip주소 및 도메인 주소, 포트 번호, 자원의 위치를 나타낸다. 

클라이언트

웹에서 html코드에 저장되어 있는 정보를 디스플레이하는 역활로, 서버에 접속을 한 후 원하는 리소스를 요청하면 돌아오는 응답에 대하여 해석을 한 후 해석한 결과를 한 곳에 모아 화면에 전시한다. 클라이언트는 서버에게 요청하는 문서를 보내는데, 요청 헤더, 빈줄, 요청 바디로 이루어져 있고, 요청 헤더에는 요청 메서드(GET PUT 등)와 URI가 주어진다. 또한 브라우저가 사용하는 프로토콜을 명시하는 부분 또한 주어진다. 브라우저는 클라이언트의 일종인데, 브라우저는 먼저 html 코드를 읽어 들인 후 파싱을 통해 DOM tree를 구성한다. CSS 파일 또한 파싱을 통해 Style Rules를 통해 트리 형태로 전달하며, 이 둘을 결합하여 Render tree를 구성하고 이를 화면에 전시한다. 이 과정을 Rendering이라고 하는데, 스크롤이나 탐색을 하는 등 DOM Tree가 바뀌지 않는 명령에서는 CSS style sheet만 바뀐다. 왜냐하면 Rendering은 시스템 자원을 많이 잡아먹기 때문이다.

서버

클라이언트에서 요청하는 자료를 보내주는 SW/컴퓨터이다. 웹 서버와 웹 클라이언트는 HTTP라는 프로토콜로 통신한다. 웹 브라우저(클라)는 서버에 접속한 후 html 문서를 요청한다. 웹 서버는 이에 상응하는 문서를 보내주고, 브라우저는 파싱을 통해 이를 해석한다. 또한 해석하는 동시에 웹 서버로부터 여러 개의 리소스(이미지 CSS, JS)를 요청하고, 서버는 요청하는 리소스를 보내준다. 웹 브라우저는 해석한 결과와 리소스를 결합하여 화면에 디스플레이한다. 웹 서버의 종류는 다양하지만, Apache가 주를 이룬다. DBMS는 다수의 이용자가 컴퓨터에 저장되어 있는 데이터에 접근하기 위한 프로그램인데, DB가 서버의 형태로 있다 보니 클라이언트 제품이 많이 생겨났다. 이러한 클라이언트 제품은 점점 커지고 로직 변경을 할 때마다 새로 업데이트를 해야 한다는 단점이 있었다. 이렇게 클라와 DB를 연결해주는 미들웨어가 생겨났다. 미들웨어는 클라에서 요청을 받아들이고 필요한 데이터를 DB에게 요청하여 받는 역활을 한다. 웹에서는 WAS가 웹 브라우저와 DBMS의 미들웨어 기능을 한다. WAS는 프로그램 실행 환경과 DB 접속 기능을 담당하고, 여러 개의 트랜잭션을 관리하고, 업무를 처리하는 비즈니스 로직을 처리한다. WAS는 기본적으로 웹 서버의 기능 또한 포함되어있고 성능 또한 비슷하지만, WAS가 고장 날 시에는 선행하는 웹 서버에서 해당하는 WAS를 사용하지 못하게 막아놓으면 이용자가 WAS가 불편하지 않게 서비스를 이용할 수 있기 때문에 웹 서버를 WAS에 선행하게 설치한다(장애 극복 기능). 

반응형