웹 개발에 있어서는 다양한 요소들이 존재한다. 요청을 보내는 쪽, 요청을 받는 쪽, 그리고 그 사이에서 데이터를 주고받는 여러 layer와 방식이 존재한다. 이번 포스트에서는 웹 개발 할 때 주로 언급되는 요소들에 대한 용어를 알아본다.
클라이언트
클라이언트(Client)란, 네트워크를 통해 요청을 보내는 주체를 말한다.
어떠한 정보나 서비스에 대해 요청을 보내고 그에 대한 응답값을 받는 주체이다. 주고 받는 관계에서 받는 포지션에 해당한다.
보통 웹 개발에서는 웹 브라우저가 대표적인 클라이언트이다. 예시로 든 웹 브라우저만 클라이언트는 아니고, 요청을 보내는 주체는 보통 다 클라이언트라 지칭한다. 경우에 따라서는 화면이 아닌 또 다른 서버가 클라이언트가 될 수 있다. 상대적인 개념이라 클라이언트와 서버가 뒤바뀌기도 한다.
서버
서버(Server)란, 클라이언트의 반대 개념으로 네트워크를 통해 들어온 요청의 응답값을 반환하는 주체를 말한다.
클라이언트에서 요청이 오면 일련의 로직을 수행하고 그 결과를 리턴한다. 주고 받는 관계에서 주는 포지션에 해당한다.
보통 웹 서버가 대표적인 서버인데 웹 서버에는 어떤 것들이 있는지는 아래에서 좀더 자세히 살펴보도록 하자.
웹 서버
웹 서버는 클라이언트의 요청에 따라 HTML, CSS, JS, 이미지 파일과 같은 정적 파일을 응답하여 제공하는 소프트웨어이다.
HTTP라는 프로토콜을 사용하여 클라이언트와 통신한다. 대표적인 웹 서버로는 Nginx, Apache 등이 사용된다.
웹 서버의 장점
1. WAS의 부담을 줄여준다
2. 보안 기능을 제공한다
3. 높은 성능을 보장한다
WAS
웹에서 서버를 담당하는 레벨에는 웹 서버도 있지만 WAS(Web Application Server)도 존재한다.
WAS는 클라이언트 요청에 대한 동적인 처리를 담당하는 영역이다. 통신을 주로 하는 웹 서버와 달리 애플리케이션 로직을 실행할 수 있도록 구현되어 있다. 또한 데이터베이스 연동, 트랜잭션 관리, 보안, 로깅 등의 공통 기능도 수행한다.
대표적인 WAS로는 Tomcat이 있으며 Node.js는 웹서버 또는 WAS 둘 다 사용할 수 있다.
DB (DataBase)
DB는 시스템에 필요한 정보를 체계적으로 저장, 관리, 조회할 수 있는 시스템이다.
종류로는 관계형(RDBMS)과 NoSQL이 있다. 보통 웹개발을 할 때, 애플리케이션 로직에서 쿼리를 수행하거나 ORM객체를 사용하여 DB에서 정보를 생성, 조회, 변경, 삭제 한다.
사실 웹개발이 무엇을 개발하느냐를 가장 간략하게 나타내면 DB 정보의 CRUD라 할 수 있다.
- C : create
- R : read (select)
- U : update
- D : delete
참고
https://blog.naver.com/gi_balja/223028077537
https://stackoverflow.com/questions/6157049/what-is-the-python-equivalent-of-tomcat
'Develop' 카테고리의 다른 글
[Python] Fastapi 구조 (0) | 2023.09.01 |
---|---|
로그 레벨 설정하기 (0) | 2023.08.17 |
댓글