본문 바로가기
Server

1.얼랭서버 공부 시작하기

by Doromi 2018. 1. 4.
728x90
반응형

서버를 만들어 보고싶다는 생각이 들어서 책을 찾다보니 눈에 들어온 책이 있었다.

"모바일 서버 프로그래밍 입문 얼랭으로 만들며 배운다" - 이국현 지음

도서관에서 이 책을 빌려보았다.

얼랭이라는 언어를 들어는 보았지만 어떤 언어인지 몰라서 얼랭이야기부터 살펴보니 굉장히 장점이 많은 언어같았다.

이번 기회에 얼랭 언어도 공부해보고 서버도 만들어 보겠다.

 

1. 얼랭을 사용해야 하는 이유

 

1-1.서버란 무엇인가?

 

사실 게임을 할때나 휴대폰을 할때나 여기저기서 들어본 말 '서버'이다. 게임을 할때도 서버가 터졌다 이런말 들어는 보았는데 서버가 도대체 뭔지는 잘 모른다. 이 책에서는 간단하게 서버를 설명해준다.

 

서버는 기업이 운영하는 서비스의 핵심이 가동되는 곳

 

서버에는 정보가 저장되어 있고, 해당 정보를 여러 사람들이 접속해서 이용할 수 있다.

접속을 하는 도구에 설치된 프로그램을 클라이언트

접속을 받아들이는 프로그램을 서버

 

스마트폰으로 인터넷에 접속을 할 때 스마트폰의 브라우저 어플리케이션이 클라이언트가 되는 것이고, 해당 인터넷 서비스의 웹서버 프로그램이 서버.

 

웹 프로그래밍에서 HTML,CSS 부분이 프론트엔드 부분의 개발

서버는 백엔드라고 부르고 서버 프로그램의 이용자는 사람이 아니라 클라이언트 프로그램이다.

서버 프로그램은 주로 클라이언트 프로그램과 정보를 주고 받기 때문에 눈으로 볼 수 있는 디자인이 없으며, 추상적인 데이터를 다룬다.

 

인터넷 접속을 위해서 www로 시작하는 주소를 입력할 때 우리는 서버의 주소를 입력하고 있는 것이다.

화면에 내용이 뜨기 시작하는 것은 브라우저가 서버에 접속이 완료되어 서버에서 보내주는 데이터를 받아서 화면에 보여주고 있다는 것을 의미한다.

 

 

1-2.모바일 세상과 서버

 

전세계 스마트폰 이용자가 17억명을 넘어서고 있다.

카카오톡은 현재 국내시장에서 점유율 1위를 달리고 있고 1억 4천만명의 전체 이용자수를 가지고 있다.

왓츠앱은  모든 시스템이 얼랭으로 구현되었다고 한다. 나중에 더 자세히 왓츠앱은 더 공부해보겠다.

 

모바일이 크게 성장하면서 게임시장도 매우 성장하기 시작했다.

스마트폰 시장이 커지면서 가장 크게 바뀐 것은 이제 전세계적으로 배포가 쉽다.

따라서 모바일 서버는 전세계 서비스를 고려하여 제작해야 한다.

다국어 지원은 물론 IDC 구성도 클라우드 서비스 등을 사용해서 상황에 맞게 자유로운 대응이 가능하도록 해야 한다.

자체적으로 대용량의 서버를 구축하거나 안된다면 최대한 빠르게 물리적인 서버를 확장할 수 있는 클라우드 서비스를

이용하는 것이 좋다.

 

1-3.얼랭에 대해서

 

처음듣는 용어에 대해서 먼저 정리해 보자.

고가용성 - 24시간 365일 가동되어야 함을 의미

대규모의 확장 가능한 실시간 시스템 - 전세계 수백수천만 명의 유저가 접속할 수 있도록 간단하고 쉽게 확장이 가능

얼랭 런타임 시스템 - 얼랭 컴파일러에 의해 컴파일된 코드는 OS에 상관없이 얼랭 롱타임 시스템만 설치되어 있으면

어디서든 동작이 가능

동시성 - 여러 개읭 작업을 동시에 실행하는 것

분산 - 기능이나 데이터를 다른 시스템에 분산 저장하는 것을 의미

 

얼랭은 함수형 언어들에 속한다. 함수형 언어라고 하면 프로그래밍언어론 수업에서 배웠던 LISP, 하스켈 같은 딱 봐도 어려워 보이는 언어들이 옆에 쭉 늘어서 있고 얼래을 동급 취급한다. 얼랭이 함수형 언어의 범주에 포함되는 것이 국내에서 잘 쓰이지 않는 이유 중 하나이다.

 

 

1-4.얼랭과 다른 언어의 비교

얼랭의 용도는 서버 개발이고 C++은 시스템 프로그래밍, java는 웹 서비스 개발이다.

 

"명필은 붓을 가리지 않는다고 하지만, 건물 벽을 칠해야 하는데 붓으로 할 수는 없는 노릇이다. 프로그래머는 무엇을 만들어야 하는가에 따라서 프로그래밍 언어라는 도구를 선택해야 한다."

 

한가지 언어나 도구를 사용해서 전체 시스템을 구성하는 시대는 지났다. 다양한 도구들을 사용해서 빠르고 안정적인 개발을 하는 것이 필요하다.

728x90
반응형

'Server' 카테고리의 다른 글

6.기본 모바일 서버 만들기(2)  (0) 2018.01.10
5.기본 모바일 서버 만들기(1)  (0) 2018.01.07
4.개발 환경 구축하기(3)  (0) 2018.01.07
3.개발 환경 구축해보기(2)  (0) 2018.01.06
2.개발 환경 구축해보기(1)  (0) 2018.01.05