기술스택 2

추억의 오락실 (6/11) - 서비스 아키텍처링

Scalability를 고려한 서비스 레벨로 아키텍쳐링을 다시 해본다. 메타포 개발의 반이 이름짓기라고 했던가. 서비스 컴포넌트들의 이름을 짓기 위해 이런 저런 고민을 하다가 실제 오락실에서 접할 수 있는 요소들을 비유로 지어보면 어떨까 싶었다. 오락실의 문을 열고 들어가면 아줌마가 나를 반긴다. 천원을 드리며 "돈바꿔주세요" / "너 이돈 어디서 났어!?" 하며 아줌마와 가볍게 인사를 나눈뒤, 오는내내 설레였던 그 오락기 앞으로 발을 옮긴다. 오락기는 웅장하다. 큰 화면과 조이스틱 그리고 동전 넣는 곳이 보인다. 오락기 위에 쌓아둔 동전이 야속하게 사라진다. 가끔 오락기가 돈을 먹거나 문제가 생기면 아줌마가 열쇠로 오락기를 연다. 그 틈으로 보이는 오락기 안쪽으로 반짝반짝 빛나는 초록색 기판이 보인다...

추억의 오락실 (3/11) - 초반 리서치

스케치 일단 러프하게 어떻게 구현할 수 있을지 스케치를 해본다. 대충 통밥으로 게임 에뮬레이터, 비디오/오디오 인코딩, 스트리밍 및 컨트롤이 있을 것 같다. 이들이 어떻게 조화를 이룰지 좀더 살을 붙여보자면, 1. 서버에서 돌고 있는 게임 에뮬레이터는 자신의 tick 에 맞춰 열심히 프레임(이미지, 오디오)를 만들어 낼텐데 2. 이 프레임을 넘겨받아 코덱을 이용해 인코딩을 한 후 3. 연결된 클라이언트(브라우저)에 인코딩된 패킷을 전송(스트리밍)하면 4. 클라이언트(브라우저)는 video element를 이용해 동영상 데이터를 플레이한다 5. 유저의 키입력이 발생하면 이걸 서버로 보내고 6. 서버에서는 이 키입력을 게임 에뮬레이터로 전달해 게임에 반영한다 7. 그리고는 1번으로 가서 계속 반복 게임 에뮬..