담당자에게 이메일과 문자 발송요청중입니다.
잠시만 기다려주세요.

loading
[개발자가 하는 일1] 서버 구축에 앞서.. 디자인 및 개발
2016.09.06. 11:13

흔히 앱 개발이나 웹 사이트를 개발하게 되었을 때


개발자들은 가장 먼저 하게 되는 일이 무엇일까요?



개발자 마다 약간씩 차이가 있겠지만 대개 아래의 일감을 크게 벗어나지 않습니다.


개발팀들은 상황에 따라 역할을 분리하여 일하게 됩니다.


가칭(우리 앱)을 만들 때 개발자들이 해야 하는 일들이 있습니다.


대개 보면 개발자들은 항상 바쁩니다. 


그럼 대체 개발자들은 도대체 무엇을 하길래 항상 바쁘다고 할까요?


궁금증을 풀어 드리기 위해 개발자가 하는 일을 대략 아래와 같이 나눴습니다.



개발자가 하는 일

 

1. 서버 구축

2. DB 스키마 작성 및 환경 설정

3. 미들 환경설정 및 미들 서버 구축,개발

4. 프론트 환경설정 및 개발






그럼 서버 구축부터 설명하겠습니다.


서버 구축에 앞서


"대체 서버는 왜 필요하고 무엇인지 알고 시작하는게 좋을것 같습니다.


서버의 정의를 찾으려 위키나 인터넷을 검색해봐도 일반 개발자 혹은 컴퓨터에 관심이 없는 사람

은 서버가 무슨 말인지 한 번에 이해하기가 어렵습니다.


단순하게 서버의 정의를 요약하자면 아래와 같습니다.





뭔가 굉장히 어렵게 설명되어 있지만 딱 잘라 말해서 서버도 컴퓨터다.



이제 서버가 컴퓨터라는 건 알겠다.


 

그럼 서버를 왜 구축해야 하는 건가?


나는 앱이나 웹사이트를 만들고 싶다.

그런데 굳이 서버가 필요한지 모르겠다. 라는 말을 할 수 있습니다.




그럼 제가 비유를 하나 해보겠습니다.


제가 커피 장사를 한다고 가정해보았습니다.


커피 장사를 하려면 어딘가에서 커피콩도 쌓아놓고 기계도 들여 놔야하는 장소가 필요하지 않을까요?


이처럼 커피 장사를 하더라도 장소(site)가 필요할 것입니다.



우리는 목 좋은 상가나 노점 혹은 트럭 중 개인의 상황에 맞는 장소를 선택하게 될 것 입니다.


컴퓨터 세상도 마찬가지입니다.


현실에서 우리가 커피 장사를 하는 것과 비슷하다고 생각하시면 됩니다.

 

가상의 세계에서 커피를 판매하려면 가상의 커피를 판매하는 장소가 필요가 필요한 것입니다.



정리하면 커피 장사를 하는 장소를 가리켜 서버라 생각하시면 됩니다.


서버의 본질은 장소라고 생각하시면 좋을 것 같습니다.




 

Web 서버,FTP서버,DB서버,이미지 서버.... 

위에 나열된 서버명 같이 각각의 서버는 서버의 목적을 벗어나지 않습니다.


서버라는 뿌리 위에 역할을 나누는 것 뿐입니다.



때문에 서비스의 성격에 따라 굳이 모든 서버를 갖추고 할 필요가 없습니다.


이제 서버에 대한 대략적인 개념을 알았으니 다시 커피 장사로 돌아가 보겠습니다.




이제 커피 장사를 위해 장소를 임대해야 합니다.


동네에 큰 커피숍처럼 매장을 크게 만들 것인가 작게 만들 것 인가 이런 고민을 하게 됩니다.


그럼 여기서 첫 번째 선택을 하게 됩니다. 


클라우드를 사용할 것인가 호스팅을 사용할 것인가


시각적인 상상을 돕기 위해 이미지를 추가합니다.






 
각각의 특징과 장단점을 구분해보면 아래와 같습니다.




1. 웹 호스팅

웹호스팅 – 호스팅 업체가 보유한 서버 한 대의 나뉜 일부분을 분양해서 운영 


    관리주체 : 설정 및 관리는 호스팅 업체 

하나의 건물 안에서 일종의 오피스텔 월세와 비슷합니다.


트래픽(방문자)이 많지 않은 보통 홈페이지 사이트들은 대부분 웹 호스팅을 이용합니다.



장점 : 많은 사람이 하나의 서버 자원을 나눠 사용하므로 그만큼 비용 부담도 분배되어 저렴하게 이용할 수 있습니다.


단점 : 원하는데 대로 리모델링을 한다거나 조건을 바꾸는 등에 부분에 있어 제약조건이 많이 있습니다.


비용 : 월 비용이 정해져 있습니다. 월 비용을 초과하게 되면 트래픽(방문자)이나 초과 되었다고 안내가 나오며 홈페이지가 더는 보이지 않습니다.


총평 : 비용이 많이 들지 않으나 권한이 없어 개발자가 할 수 있는 일이 없으므로
         소규모 서비스(회사 홈페이지 등)에 부합


 

2. 서버 호스팅


서버호스팅 – 호스팅 업체가 보유한 데이터센터(IDC)에 서버 한 대를 임대하거나 구매하여 운영


관리주체 :  설정 및 관리는 사용자

서버 호스팅은 일종의 건물주가 되는 것과 같습니다. 


일반적인 웹서비스나 앱 서비스들이 많이 이용합니다.

전통적인 서비스(대형쇼핑몰,ERP 등)를 하던 곳에서 많이 이용합니다.



장점 : 내 서버 전체를 혼자 사용하기 때문에 웹 호스팅과 비교해서 높은 성능이 보장됩니다.

       건물 안에서의 리모델링을 하거나 조건을 바꾸는 부분에 있어서 수정이 용이합니다.

단점 : 대신 건물주가 되는 만큼 비용은 증가하게 됩니다.

비용 : 보통 월 비용이 정해져 있습니다. 


총평 : 초기 구축 비용에 시간과 비용이 많이 들지만 서버에 대한 모든 권한을 갖고 서버의 모든자원을 사용하기 때문에 대형 서비스에 부합




 

3. 클라우드


클라우드 호스팅  – 서버 한 대 혹은 여러 대를 가상화 기술로 나누어 개별의 서버호스팅 개념으로 운영


관리주체 : 설정 및 관리는 사용자


클라우드는 사무실 임대와 비슷합니다.

사무실 임대는 보통 한층 안에 한 부분만을 임대하여 사용할 수도 있고 여러 층을 임대하거나 혹은 건물 여러 채를 임대하여 사용할 수 있습니다.


요즘 새로 시작하는 스타트업, 초창기 게임서비스 들이 많이 이용합니다.

 

장점 여러 건물 안에서 필요한 만큼 필요에 따라 건물을 임대하여 사용한다고 보면 됩니다.

       사용자가 폭증하는 경우 서버 호스팅 보다 빠르게 대응할 수 있습니다.

단점 : 비용이 유동적입니다.


비용 : 요금이 후불제이다 보니 높은 트래픽(방문자)에도 대응할 수 있습니다. 


총평 : 자유롭게 서버를 축소 및 확장 가능 사용한 만큼 요금이 부과되기 때문에 경제적인 편입니다.
          
 
이제 커피 장사를 위해 장소를 임대할 수 있는 부분에 대해서 알아보았습니다.

그럼 나는 어디서 커피 장사를 해야 하는가 생각하게 됩니다.

여기 부터는 주관적인 생각인데 일반적인 앱서비스의 경우

기존에 개발되어 있는 서비스가 아니고 일반적인 앱/웹 서비스의 경우 3(클라우드) 서비스를 추천합니다.


이유는 상황의 유동성에 따라 자유롭게 서버를 축소 및 확장하기 때문입니다.



이제 서비스의 성격과 자금 사정에 따라 서버를 임대했습니다.

이어서 이제 본격적으로 서버구축에 관해 글을 작성하겠습니다.  




개발의뢰