아키텍쳐 /대용량 아키텍쳐

소셜 시스템의 필수기술들..

Terry Cho 2012. 6. 5. 22:57

소셜 시스템이라고 이름은 지었는데,

정의는 Google,FaceBook,Twitter들과 같이 B2C 서비스를 지향하면서 대용량 서비스를 제공하는 웹서비스 시스템을 정의한다.

이 시스템들은 기존의 J2EE나 APM (Apache PHP MySQL) 다음 세대의 기술셋을 사용하는데

특징적으로

- 오픈 소스를 많이 이용한다.

- NoSQL을 이용한 대용량 데이타 저장 구조

- 분산 처리 아키텍쳐

등등이다.

 

J2EE 시대에 Servlet/JSP + EJB + JDBC가 필수 기술이었고

J2EE 다음 시대인 오픈 소스 과도기에는 Spring + IBatis (or Hibernate) + Struts 가 필수 기술이었다면

다음은 무엇일까?

 

나름 여러 문건이나 트랜드들을 조사해본 결과

1. NoSQL

- 대용량 데이타 처리에는 Cassandra나 HBase가 주류

- MongoDB는 NoSQL과 RDB의 중간적 특성으로 Rich Data Handling의 경우 사용

2. DataGrid

- memcached와 같은 메모리 캐쉬로 요즘은 Redis가 대세

3. MessageQ

- RabbitMQ

4. Distributed File System

- Gluster가 대세

- 경우에 따라서 SWIFT등의 Object Storage등 사용

5. 분산 처리 프레임웍

- Hadoop

정리해보자면, MongoDB,Cassandra,HBase,Redis,RabbitMQ,Gluster,Hadoop 정도 알면 소셜 시스템에 대한 기반 기술들은 어느정도 습득했다고 생각해도 되지 않을까? 물론 프로그래밍 언어와 미들웨어는 별도고.. ^^;

 

여기에 양념으로 AWS, ZooKeeper등은 알고 있어야 한다.