안녕하십니까 홍익대학교 컴퓨터공학과 3학년 2학기까지 이수한 이장호입니다.
발표 시작하겠습니다.
전체적인 구조는 다음과 같이 간단하게 나타낼 수 있습니다.
우선 서버는 컴퓨팅 요구사항에 따라 유동적으로 서버를 확장하거나 축소할 수 있는 클라우드 서비스인 Amazon Web Service를 사용했습니다.
그 중 서버구성을 위해 Amazon에서 제공하는 EC2를 사용하였고 OS는 우분투 13.04버전을 설치하였습니다.
서버플랫폼은 single Thread 기반의 non-blocking I/O를 지원하는 Node.js를 사용하여 개발하였습니다.
데이터베이스도 마찬가지로 Amazon에서 제공하는 RDS를 사용하여 MySQL을 이용해 관리하였습니다.
클라이언트에서 요청이 오게 되면 JSON객체를 통해 응답을 하고 동영상은 Streaming 방식으로 재생하도록 하였습니다.
서버 내부 동작에 대해 좀더 자세히 설명 드리겠습니다.
서버는 HTTP방식으로 RESTful API를 설계하여 클라이언트와 통신하였습니다. 내부적으로는 미디어 프로세서와 모듈, 그리고 JSON과 DB형식으로 되어 있습니다.
Media Process에서는 File Manager, Thumbnail Manager, Crop Manager 등을 사용하여 미디어 처리를 하였습니다.
모듈은 Async 모듈을 사용했고, DB와 매번 커넥션을 연결하는 부하를 줄이기 위해서 커넥션 풀을 사용하여 DB와 연결 하였습니다. 그리고 최종적으로 클라이언트에게 응답을 주기 위해, 설계한 RESTful API에 맞는 요청에 따라 클라이언트 개발자와 상의를 하여 JSON객체를 통해 데이터를 보내주는 형식으로 서버를 구성하였습니다.