brunch

You can make anything
by writing

C.S.Lewis

by 갱그리 Aug 26. 2016

1. 서버/웹서버/호스팅

일단 웹사이트든, 앱이든 사용자들에게 제공되는 IT 서비스를 제작하기로 마음 먹었다면 가장 먼저 해야 할 일은 서버를 대여하는 것이다. 아래 그림처럼, 웹이든 앱이든 모든 서비스의 '뒷단'에는 윙윙 거리고 돌아가는 서버가 있다.

Designed by Madebyoliver from Flaticon


서버, 웹서버


이 서버에는 무엇이 있을까? 일단 html과 같이 사용자가 접속했을 때 볼 수 있는 소스가 있고, 사이트 내에 삽입되는 이미지들이 있다. 그리고 가장 중요한, "웹 서버"가 있다. 서버와 웹 서버는 다르다. 서버는 물리적인 PC이고, 웹 서버는 PC에 설치하는 소프트웨어라고 생각하면 된다. 우리가 사용하는 한글과컴퓨터, 엑셀, 파워포인트 같은 것들 말이다.


이게 바로 서버(server)다. 데스크탑PC와 거의 상동하다. '랙'이라고 하는 커다란 캐비넷에 칸칸히 쌓아놓은 사진이다. 


웹 서버를 정확하게 알 필요까진 없다. 개념만 알아두면 충분하다. url을 입력할 때, 보통 url 맨앞에 http:// 내지 https:// 라고 호출한다. http 라는 네트워크를 사용하여 사용자의 호출을 받고, 또 여기에 응답하기 위해 소스나 이미지들을 전송하는 것- 이 일련의 흐름을 '웹 서버'가 처리한다. 서버를 대여받고 소스를 업로드해도 웹 서버가 없으면 당연히 그 서비스에 접속할 수 없다. 


이제 IT서비스 개발을 위해 가장 먼저 해야 할 일이 정해졌다. (1)서버를 대여하거나 구입하고, (2)취득한 서버에 웹 서버를 설치해야한다.


호스팅 


웹호스팅


(1)와 (2)를 한번에 가장 쉽고 빠르게 해결할 수 있는 방법은 전문 호스팅 업체에서 웹 호스팅을 하는 것이다.(가비아,카페24 등) 웹 호스팅은 성능이 좋고 용량도 빵빵한 대형 서버에 웹 서버를 여러 개 띄워놓고, 웹 서버를 대여해주는 것이다. 당연히 서버는 호스팅 업체의 소유다. 웹 호스팅을 신청하면, 서버 PC 내에 폴더를 하나 신규 생성하여 그 사람이 그 폴더에 파일을 업/다운로드할 수 있도록 권한을 부여한다. 그리고 그 폴더의 있는 소스들이 (사용자가 접속할 수 있는) 웹 페이지가 될 수 있도록, 웹 서버에 그 폴더를 연동시켜 준다.


서버에 웹 서버를 직접 설치하지 않아도 되니 분명 아주 편리한 방법이다. 그러나 여기에도 제약 사항이 있다. 예컨대 엑셀 파일을 서버에 업로드하여 데이터로 전환하는 기능을 개발하려 한다고 하자. 지금은 서버에 엑셀을 설치하지 않고도 가능한 방법이 많지만, 본래 이 기능을 구현할 때는 서버에 엑셀을 설치하여 구현하는 것이 일반적이었다. 그러나 웹 호스팅의 경우에는 (물론 호스팅 업체의 규약에 따라 다르지만) 서버에 프로그램을 설치할 수 없다. 서버를 단독으로 사용하는 게 아니기 때문이다. 우리가 대여하고 있는 서버 안에 다른 업체들도 웹 호스팅으로 들어와 있기 때문에, 자칫 잘못하면 우리가 설치한 프로그램 때문에 다른 업체들의 서비스가 작동되지 않을 수 있기 때문이다. 


그 뿐 아니라 웹 서버 버전 때문에 문제가 될 수도 있다. 예컨대 페이스북/트위터/카카오톡 소셜 로그인 기능을 개발하려고 할 때, 해당 SNS 플랫폼에서 제공하는 소셜 로그인 기능이 웹 서버 버전에 따라 지원이 되지 않는 경우가 왕왕 있다. 이런 때에라도 웹 서버 버전을 임의로 업그레이드하거나 다운그레이드하는 게 거의 불가능하다. 


서버호스팅


보통 위와 같은 시행착오를 겪은 뒤 모두 서버호스팅으로 넘어온다. 서버호스팅은 말그대로 서버를 하나 대여하는 것이다. 보통 클라우드 기반의 AWS, 네이버클라우드BIZ, KT Cloud Biz 등에서 호스팅 받는다. 직접 웹 서버를 고르고, 설치하고, 설정해야 하는 아주 귀찮고 번거로운 작업들을 직.접. 해야 한다. 이 작업이 은근 만만치 않다. 짧으면 하루만에도 끝나지만, 길면 일주일 이상 소요되기도 한다.


개발자라도 여기에 대해서는 잘 모르는 경우가 많다. 이쪽은 '개발'의 영역이라기보다는, '인프라'의 영역이기 때문이다. 보통 대규모 프로젝트에서 개발자를 소싱하면 개발자들은 인프라가 이미 구축되어 있는 상태에서 들어가 말그대로 '개발'만 해주고 나오기 때문에 여기에 대해 경험하지 못하는 사람들도 있다. 그래서 서버 호스팅을 받을 예정이고, 웹 서버 설치와 셋팅이 필요한 경우에는 개발자를 채용하기 전에 미리 여기에 대해 경험이 있는 지 물어보도록 하자. 물론 경험이 없다고 해서 못하는 건 아니다.



심 / 화 / 학 / 습


웹서버와 웹 애플리케이션 서버(WAS)


보통 WEB-WAS 쌍으로 부른다. 위에서 다룬 웹 서버는 사실 반쪽 짜리다. 일반적으로 웹 서버는 정적 컨텐츠만 처리하게 되어있다. 정적 컨텐츠라함은 변동이 없는 컨텐츠, 즉 HTML이나 CSS, images 파일과 같은 것이다. 


동적 컨텐츠는 WAS에서 처리한다. jsp, java 클래스 파일이나 jar와 같은 라이브러리 파일들이다. 어떤 제품을 쓰는가에 따라 웹 서버와 WAS 를 분리하여 설치해야 할 수도 있고, 웹과 WAS를 하나로 쓸 수도 있다. 웹 서버가 요청을 받아서 WAS에 전달해주고, WAS의 응답을 다시 WEB이 받아서 사용자에게 전송한다.

매거진의 이전글 0. 시작하며
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari