brunch

You can make anything
by writing

C.S.Lewis

by OurStellar Mar 03. 2023

8. IT 대세, 웹 서비스 시스템

웹 프로그래밍의 발전으로 더 강력해진 웹 서비스

인터넷 없는 오늘날 일상을 상상할 수 없다. PC에서든, 모바일에서든 사람들은 온라인으로 연결되어 정보를 공유한다. 웹 서비스가 시작한 1990년대, 웹을 창시했던 팀 버너스 리는 웹이 이렇게 현대 사회를 지배하다시피 할 거라고 예상했을까?


단순히 html 문서만 보여주는 것 이외 할 수 있는 것이 없던 브라우즈에 자바스크립트를 내재하면서 웹은 달라졌다. 웹은 보여 주기만 하는 먹통이 아니라 움직이는 프로그램이 되었다. 그러나 리치 클라이언트 - 서버같이 클라이언트에 프로그램을 깔 필요가 없다. 사용자는 브라우즈만 있으면 프로그램을 깔지 않아도, 게임과 같은 동적이며, 또 데이터의 저장과 조회가 가능한 프로그램을 브라우즈에서 할 수 있게 되었다.



|3세대 웹 : 웹 애플리케이션으로 html 한계 극복|


정적인 html 페이지만 보여주던 1세대 웹에 자바스크립트가 도입되면서 html 페이지를 동적으로 만드는 것이 가능해졌다. 자바스크립트의 도입은 웹에서 프로그래밍이 가능한 길을 열었다. 웹 화면 동작을 위해 사용되었던 자바스크립트는 서버에 있는 데이터를 처리하는 프로그래밍으로 점차 확대되었다. 웹은 문서를 보는 데서 프로그램이 작동하는 환경으로 변하였고, 웹의 작은 부분을 차지하던 자바스크립트가 웹의 중심이 되는 주객전도 현상이 발생했다.

웹1세대와 2세대

앞서 살펴본 바와 같이 1세대와 2세대(초기)는 웹 서버에 미리 만들어진 페이지를 불러와서 보여 주는 정도의 서비스였다. 초기 화면의 동적 구성에 이용되었던 자바스크립트는 점차 그 역할을 확대하였다. 웹 페이지 내의 자바스크립트를 서버의 프로그램을 호출하도록 하여 서버에서 프로그램을 실행하도록 웹을 변화시키고자 했다. 웹이 단순히 자료를 보여주는 것이 아닌, 웹이 정보를 가공하고 처리하는 시스템의 역할을 하도록 하는 새로운 기술들이 적용되었다.


 

서버 프로그램을 호출하는 자바스크립트

클라이언트에서 웹 화면을 호출한 후(①,②) 조회 버튼을 클릭하면(③) 자바스크립트는 웹 서버에서 DB에서 조회하는 프로그램을 호출한다(④). 웹 서버의 서버 프로그램은 DB에 연결하여 데이터를 조회하고 그 결과로 html 페이지를 만든다. 만들어진 html 페이지는 클라이언트 브라우즈에 전달하여 조회 결과 화면을 사용자가 볼 수 있게 한다(⑤).


지금까지 웹 화면이 이미 만들어진 화면을 브라우즈에서 보는 것이라 하면, 자바스크립트를 이용하여 서버 프로그램을 호출하여 실행시켜 그 결과로 html을 화면을 만들어 전달하는 동적 화면을 생성할 수 있다. 즉, 사람(개발자 등)이 웹 페이지를 미리 만드는 것이 아닌, 프로그램이 웹 페이지를 만들 수 있게 되었다. 즉, 웹 페이지에 있는 자바스크립트를 이용하여 서버의 프로그램을 실행하고 그 결과를 브라우즈에 전달할 수 있는 서비스 구조가 만들어진 것이다.


 웹 서비스에서 서버 프로그램이 중요한 위치를 차지하게 되어, 웹 서버에서 돌던 서버 프로그램을 웹 서버에서 분리할 필요가 있었다. 그래서 서버 프로그램은 웹 서버가 아닌 별도 서버로 분리하게 된다. 이것이 웹 3세대고, 오늘날 가장 일반적인 웹 서비스 구조이다.

애플리케이션 서버가 분리된 3세대 웹 서비스 구조

웹 서버 내에서 서버 프로그램 처리하던 것을 관리 및 성능적인 측면에서 서버 프로그램이 수행되는 서버를 분리하였다. 이 서버를 웹 애플리케이션 서버(Web Application Server, WAS)라고 한다. WAS 서버는 웹 시스템에서 중요한 비즈니스 로직을 처리하는 서버가 되었다. WAS와 별도로 데이터를 관리하는 DB 서버는 별도로 분리한다. 1, 2세대 인 경우도 DB 서버는 별도로 분리하는 경우가 많다. 이는 IT에서 데이터가 제일 중요하기 때문이다.


이제 드디어 웹 서비스 구조(구조를 아키텍처 Architecture라고 한다)에 대해 말할 수 있게 되었다. 웹 서비스는 웹 서버, 웹 애플리케이션 서버, DB 서버의 세 단계의 서버로 구성된다(이를 계층, 영어로 tier라고 한다). 웹 브라우즈에서 서비스를 요청하면(Request) 그 요청은 이 세 단계의 서버로 거쳐 처리되어 응답(Response)한다. 이들 서버는 네트워크로 연결된다.


왜 세 개의 서버가 필요할까? 성능이 좋은 하나의 서버로 하면 되지 않냐는 의문이 들 것이다. 좋은 질문이다. 여기에서 말하는 세 개의 계층은 개념적이다. 하나의 서버에 세 개로 나누어 써도 되고, 물리적으로 서버를 분리해서 따로 해도 된다. 이렇게 서버를 분리하는 것은 마치 우리가 사진 폴더, 음악 폴더를 분리하는 것과 비슷하다고 보면 된다. 그러나 각 서버는 성능과 관리 요건이 달라 물리적으로 서버를 분리하는 것이 일반적이다.


일반적인 웹 서비스 아키텍처는
웹 서버, 웹 애플리케이션 서버(WAS), 데이터 베이스 서버의
세 개의 계층(tier)으로 구성된다

그림에서 보듯 웹 서버는 외부의 클라이언트로부터 직접 연결되는 부분이다. 그리고 웹 화면을 제공하는 서비스를 하므로 웹 화면, 즉 UI를 담당하는 역할을 하게 된다. 반면 웹 플리케이션 서버는 업무 로직과 데이터베이스를 처리하는 프로그램이 돌아가는 것이므로 함부로 외부에 노출되면 안 된다. 그래서 서버를 분리하게 되고 연결되는 네트워크 중간에는 방화벽이라는 보안 장치를 두어 아무나 못 들어오게 한다.


웹 애플리케이션 서버를 두면서 웹 서비스는 클라이언트 - 서버 구조의 응용프로그램(애플리케이션, application) 같은 프로그램이 가능해졌다. 정적인 웹에서 프로그램이 돌릴 수 있게 되었다. 웹에서 돌아가는 다양한 프로그램, 즉 웹 애플리케이션이 가능해졌다. 웹 애플리케이션의 다양한 기술이 개발되고 발전하고 브라우즈 표준으로 채용되면서 웹 애플리케이션은 IT 환경의 대세로 자리 잡아 실질적인 표준과 같이 되었고 다양한 개발 방법들이 등장했다. (지금도 새로운 개발 방법이 나오고 있다)



|웹 환경에서의 IT 직업|

 이제 가고자 하는 길의 반쯤 온 것 같다. 이 글의 목적이 IT 직업에 대한 것이라고 했는데, 초반부에 직업을 알기 위해 IT 구조를 이해해야 한다고 했다. 이제 기본적인 IT 구조에 대해 거의 다 이야기한 것 같다. 물론 더 세부적인 것도 있고, 말하지 않은 부분도 많다. 그런 부분은 IT 직업을 이해하는데 직접적인 관련이 없는 부분이라고 생각된다.


다음 편부터 IT 직업에 대해 이야기할 것이다. 그 기본 바탕은 웹 서비스 환경이다. 웹 애플리케이션 개발자 중심으로 IT 직업을 말씀드릴 때, 이제 여러분은 왜 개발자가 나누어지고, 개발자라도 다 같은 개발자가 아니라는 것을 이해할 수 있을 것이다. 왜냐하면 여러분은 이미 웹 서비스 구조를 이해하고 있기 때문이다.




체계적이고 보완된 내용으로 브런치 글과 같은 이름으로 출간을 하게되었습니다. 아래의 링크를 통해 자세한 내용을 확인할 수 있습니다.



교보문고
나에게 맞는 IT 직업 찾기



예스24
나에게 맞는 IT 직업 찾기


알라딘
나에게 맞는 IT 직업 찾기







매거진의 이전글 7. 클라이언트의 독립, 웹 서비스의 발전
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari