-
[부스트코스] 1. 웹 프로그래밍 기초 : WAS (웹 어플리케이션 서버)Front-end/부스트코스 : 웹 프로그래밍 2020. 1. 29. 10:33
오늘부터 1차 미션 시작입니다!
사실 WAS 파트는 전에 썼었는데 갑자기 날라가는 바람에.. 다시 쓰게 되었읍니다 ... ..
복습하는 마음으로 다시 씁니다 ..
참고 강의 : https://www.edwith.org/boostcourse-web/lecture/16666/
* 클라이언트 - 서버 구조
- 클라이언트(client) : 서버에게 서비스를 요청(request)하고 응답 결과를 사용하는 쪽
- 서버(server) : 클라이언트가 요청한 서비스를 제공하는 쪽
- 웹 서버와 웹 브라우저가 대표적인 클라이언트-서버 구조라고 할 수 있음!
- 이 부분은 사실 다른 포스팅에도 작성했지만, 클라이언트-서버 구조는 상대적인 개념이라는 것이 정말 중요한 것 같다. 이 부분을 놓치면 계속 헷갈린다. 컴퓨터네트워크 전공 수업 때도 중요하게 다뤄지는 개념이었다.
클라이언트-서버 구조 * DBMS (DataBase Management System)
- 다수의 사용자들이 데이터베이스 내 데이터를 접근할 수 있도록 해주는 소프트웨어
- DBMS가 필요한 이유? DBMS가 없을 때는 개발자가 데이터에 접근하기 위해 필요한 기능들을 모두 구현해야 했음 -> DBMS의 등장으로 개발자들이 쉽게 데이터를 관리할 수 있게 됨
- DBMS의 종류 : MySQL, MariaDB, Oracle, PostgreSQ
- 초기에는 DBMS에 접속해서 동작하는 클라이언트 프로그램이 만들어짐 -> 로직크기와 프로그램 크기의 비례, 로직 변경에 따른 배포 문제, 취약한 보안성 문제점이 발생! -> 미들웨어의 등장
DBMS * 미들웨어 (MiddleWare)
- 클라이언트 측의 비즈니스 로직이 많을 경우 클라이언트 관리로 인해 비용이 많이 발생함
- 비즈니스 로직을 클라이언트와 DBMS 사이의 middleware 서버에서 동작하도록 함
- 클라이언트는 입력과 출력만 담당하게 되고 미들웨어가 대부분의 로직 수행
- => 클라이언트 프로그램의 크기가 작아지게 됨
* WAS (Web Application Server, 웹 어플리케이션 서버)
- 미들웨어의 하나라고 할 수 있는 서버 : 브라우저와 DBMS 사이에서 동작하는 미들웨어
- 웹 어플리케이션 동작을 지원하는 목적
- 웹 사용자의 증가와 함께 웹의 동적인 기능 요구가 증가 -> 동적인 기능들은 DBMS와 연관이 큼
- WAS의 기능 3가지
- 프로그램 실행 환경과 데이터베이스 접속 기능 제공
- 여러 트랜잭션(논리적인 작업 단위) 관리
- 비즈니스 로직 수행
이후 강의에서 톰캣이라는 WAS를 설치하여 프로젝트를 진행할 예정이다.
* 웹 서버 vs. 웹 어플리케이션 서버
- 웹 서버는 보통 정적인 컨텐츠를 웹 브라우저에게 전송하는 역할
- 웹 어플리케이션 서버는 프로그램의 동적인 결과(동적인 컨텐츠)를 웹 브라우저에게 전송하는 역할
- 웹 서버 없이 WAS만 있어도 대부분의 컨텐츠를 제공할 수 있으나 현업에서는 규모가 커질수록 웹 서버와 WAS를 분리
- 분리하는 이유? 오작동으로 인해 WAS를 재시작해야 하는 경우 웹 서버에서 중단된 WAS를 이용하지 못하도록 함
- = 장애극복기능 -> 대용량 웹 어플리케이션을 무중단으로 운영하기 위해 중요한 기능
<이미지 출처 >
클라이언트-서버구조 : https://images.app.goo.gl/8UkHuq1DngeucGcd8
DBMS : https://images.app.goo.gl/JBmkU8nEYiCrW15Z9
'Front-end > 부스트코스 : 웹 프로그래밍' 카테고리의 다른 글
[부스트코스] 1. 웹 프로그래밍 기초 : HTML 구조설계, class&id (0) 2020.02.02 [부스트코스] 1. 웹 프로그래밍 기초 : HTML tags, layout (0) 2020.01.29 [부스트코스] 1. 웹 프로그래밍 기초 : 웹 서버 (web server) (0) 2020.01.15 [부스트코스] 1. 웹 프로그래밍 기초 : browser의 동작 (0) 2020.01.15 부스트코스 서포터즈 BOOSTER 선발 (0) 2020.01.15