본문 바로가기

뭐라도 공부해보자!!( 이론 )/Web

1. 스프링 부트로 배우는 자바 웹 개발 : 개발 환경의 변화(웹 서비스 구조 등 간단한 설명)

반응형

 스프링 부트로 배우는 자바 웹 개발(출판 : 제이펍, 저자 : 윤석진)으로 학습한 내용을 정리한 것입니다. 

 

 초기에는 B2C(Business-to-Customer) 사업 모델이 많지 않았다. PC의 보급이 아직은 제대로 이루어지지 않았고, 광고의 대부분이 신문 혹은 방송사 등을 통해서 이루어지던 시절이었다. 인터넷은 일반 대중들을 위한 것보다는 회사 내부 일부 인원들을 위한 것이었다. 이들은 Dos 계열 인터페이스가 익숙하다. 장비는 매우 비쌌고, 네트워크 환경 역시 매우 열악하였다. 이때의 아키텍처(Architecture)는 메인프레임(Mainframe)구조가 대세였다. 1 티어 구조로 서버(Server)와 클라이언트(Client)로써 필요한 기능을 모두 기기 한 대가 제공하였다. 스케줄링 방식도 순차 배치 처리 방식으로 간단하였다. 그러나 컴퓨터가 산업 혹은 연구소의 전유물에서 벗어나 일반 가정으로 보급되었고, 웹(Web)이 활성화 되면서 메인프레임 아키텍처는 새로운 수요를 충족시키에는 부족하였다. 

 보다 많은 사람들에게 서비스를 제공하기 위해 서버/클라이언트 개념이 등장하였고, 이는 GUI(Graphical User Interface)의 발전과 델파이, ActiveX를 이용한 웹 상에서도 동작하는 어플리케이션의 활발한 개발로 이어졌다. 이 때까지는 클라이언트가 소켓 통신을 통해 서버로 데이터를 요청하면, 서버가 가지고 있던 데이터를 가공하여 전달하는 방식이었다. 그러나 본격적으로 전자상거래가 활성화되고, 웹에 대한 선풍적인 인기를 끌면서, 3-tier 방식이 도입되기 시작하였다. 기존의 서버는 실제 데이터를 가공하는 부분과 데이터를 저장하는 부분이 분리되어 있지 않았다. 3-tier 방식은 데이터베이스를 두어 서버에서 데이터 저장 기능을 분리하였다. 이는 하나의 서버에 대한 의존도를 줄임으로써 보다 안정적으로 서비스를 운영할 수 있도록 하였다. 그외에도 PHP, ASP와 같은 서버 언어들로 데이터를 전달하고 클라이언트에서 전달받은 데이터를 처리하는 방식이 도입되었다. 웹 서비스의 발전 방향은 많은 사용자들이 참가함에 따라, 이들을 감당할 수 있는 안정적인 시스템의 구축과 전문적인 지식이 없어도 쉽고 간편하게 조작할 수 있는 인터페이스의 제공을 중심으로 발전해 왔다.

 서버를 물리적으로 구축하는 것은 많은 비용을 소모한다. 또한 물리적인 서버가 성능 측면에서는 좋을 지는 몰라도, 게임, SNS와 같이 사용자가 유동적으로 변하게 되는 서비스에 대해서 일정하게 품질을 유지하기 힘들다는 단점이 있다. 클라우드(Cloud)는 기존의 서버가 가지고 있는 문제를 해결할 수 있는 대안이다.클라우드의 "기본적인 이념은 한 대의 좋은 컴퓨터를 사용하기 보다는 보통의 품질의 여러 대의 컴퓨터를 사용하는 것이 나은 방법이다"라는 것에서 출발한다. 즉 하나의 컴퓨터에 모든 것을 구축해 놓기 보다는 여러 컴퓨터에 나누어 동작하게 함으로써, 여러 컴퓨터를 하나의 서버처럼 사용할 수 있도록 하는 것이 클라우드이다. 클라우드의 사용자는 자기가 예상되는 서비스 사용자에 맞추어 사용할 가상 서버의 성능을 선택하면 된다. 설사 서비스가 차후 확장되거나 축소되더라도 그에 맞추어 컴퓨터를 추가하거나 빼면 서버의 스펙을 조절하는 것이 가능하다. 다만 클라우드 사양을 맞추는 추가적인 작업이 필요하고, 서비스 일부의 증설 및 변경이 어려우며, 클라우드 서비스 업체 기술에 종속되는 것은 단점으로 작용할 수 있다.

 이 책에서는 기본적으로 서버/클라이언트 구조, 2-tier 방식과, 3-tier 방식의 아키텍처를 염두에 두고 실습이 이루어진다. 가장 보편적인 웹 서비스인 구조인 동시에, 후행하는 아키텍처에서도 서버의 유동성에 초점을 맞추었을 뿐, 기본적인 서버/클라이언트 개념은 유지가 되기 때문이다. 각설하고 이번 역시  실습 위주로 글을 작성할 것이다. 실습 환경은 IDE는 IntelliJ, 빌드 도구는 gradle을 사용할 것이며, 서버는 tomcat 서버를 이용할 것이다. 참고하기를 바라며 이 번 글을 마치겠다.

반응형