zoom

여러분은 웹 프로그래밍이라고 하면 어떤 것을 떠올리시나요? 초보자 분들은 CRUD라고 하는 생성, 읽기, 갱신, 삭제를 익히기 위해 게시판을 만들거나 웹 스크래핑으로 시작하는 경우가 대부분일 것이라고 생각합니다. 그 뒤에 간단한 API를 이용하거나 만들기도 하면서 웹 생태계에 익숙해 지고 계실 것입니다.

클론 코딩 줌은 어떻게 보면 통신에 있어서 기본이라고 할 수 있던 소켓 통신부터 webRTC를 이용한 화상채팅 프로그램인 ZOOM을 만드는 것까지 이 책을 찾아보실 분들께서 익숙하지 않으실 기술들로 여러분의 수준을 한단계 성장시켜 줄 수 있습니다. 프로그래밍은 결국 큰 틀에서 수치를 계산하거나 데이터를 송수신 받아 그 것을 가공해 보여주는 것이 목적이라고 볼 수 있습니다. 우리가 이용할 수 있는 통신 방법은 많습니다. 하지만 한 가지 마스터키는 존재하지 않습니다. 필요에 따라선 서버의 DB를 이용할 수도 있고, socket을 이용하거나 WebRTC를 이용해 peer-to-peer 연결로 서버 부하를 줄인 채 워할한 통신을 할 수도 있습니다.

하지만 이 책을 찾아보는 우리의 가장 큰 문제는 이런 기술들이 언제 어디에 적용되어야 하는지 모르고 있고, 심지어 그런 기술이 존재하는지조차 모르는 것이 가장 큰 문제입니다. 그래서 가이드를 이용해 길을 덜 헤매는 것도 중요합니다.

JS가 너무 생소하지만 않다면 어렵게 느껴질 수 있는 웹소켓과 WebRTC가 어렵지 않게 개념을 잡을 수 있게 친절한 예시와 함께 설명하고 있습니다. 하나하나 작동하는 기능을 키워가면서 만드는 재미도 느낄 수 있고, 응용해보고 싶은 부분들에 실습 이 후에 커스텀을 해볼 여지가 많다는 것도 이 책의 장점이었습니다. 클론 코딩을 하는 책이기 때문에 절대 기계적으로 코드를 따라치면 안됩니다. 이 코드가 어떤 논리적 구조로 예제의 결과를 내놓는지 확인을 하면서 읽고, 막히는 부분이 있다면 따로 찾아보는 것이 이 책을 온전히 이용한 방법입니다.

JS의 이벤트 핸들러에 대해 전혀 모르고 책을 시작하시면 웹소켓이 문제가 아니라 이벤트 핸들러의 적용과 익숙하지 않은 함수 이용 방법에 당황 할 수 있습니다. 그래서 JS 기초 문법은 익힌 상태에서 실습하는 것을 권장하고 싶습니다. 물론 예제를 따라가다가 순간의 깨달음을 얻는 무공처럼 이해하며 비급을 얻을 수도 있겠습니다. 하지만 프로그래밍도 무공도 깨달음을 위해서 어느 정도의 기반이 필요하다는 사실을 명심하세요.


이지스퍼블리싱에서 서평용 책을 제공받아 쓰여진 글입니다.