서버: 서비스를 제공하는 것
클라이언트: 서비스를 요청해서 결과를 보여주는 것
server-client ex. web server - web browser
DBMS
이게 등장하기 이전에는 개발자들이 파일의 데이터를 저장하고 읽어드리는 등의 기능을 모두 구현해야 했다.
데이터베이스를 관리하는 시스템(SW). 서버 형태로 서비스를 제공하여 다수의 유저(라 쓰고 클라이언트라 읽는다.)가 DB의 데이터에 접근할 수 있게 해준다.
ex. MySQL, MariaDB, Oracle, PostgresSQL
문제점
클라이언트의 로직이 많아진다. 고로 프로그램 로직이 바뀌면 클라이언트가 매번 새로 배포되야 했다.
또 클라이언트를 직접 DBMS에 연결하니 보안에도 취약했다. 그래서 등장 한 것이 (두둥탁)미들웨어.
MiddleWare
쉽게 말해서 클라이언트와 DBMS사이에 있는 또다른 서버.
클라이언트는 입력과 출력만 담당하고 요청할게 있으면 미들웨어(라 쓰고 서버라 읽는다.)에 요청해서 이 미들웨어에서 대부분의 로직을 수행한다. 잘 수행하다가 데이터 손 댈 일이 있으면 DBMS에 연락해서 손보고 해당 결과를 클라이언트에 보내주면 -끗-
비즈니스 로직을 클라이언트와 DBMS사이의 미들웨어 서버에서 동작하도록 함으로써 클라이언트는 입력과 출력만 담당하도록 한다.
was(web application server)
정적 데이터만 처리하다가 진화를 해서 점점 동적인 기능(데이터 입력,조회,삭제...)이 요구되었고, 해당 기능은 프로그래밍을 통해서 가능했다. 동적 데이터 처리를 위한 프로그래밍을 CGI라고 부르는데 이것은 나중에 다루어 보고자 한다. CGI 학습자료 1
CGI 학습자료 2
이런 상황에 쓰이는 미들웨어를 WAS라고 부른다.
WAS의 주요 기능은 3가지이다.
1. 프로그램 실행 환경과 DB접속 기능
2. 여러개의 트랜잭션 관리
트랜잭션? 논리적인 작업단위. 뒤에서 다시 다룬다.
3. 업무를 처리하는 비즈니스 로직을 수행