1.2 왜 자바스크립트와 머신 러닝을 합쳐야 하나요?
인공 지능과 데이터 과학의 다른 분야처럼 머신 러닝은 일반적으로 파이썬, R과 같이 전통적으로 주로 백엔드(backend)에 사용되는 언어로 수행되어 웹 브라우저가 아닌 서버나 워크스테이션에서 실행됩니다.18 이런 현상은 놀라운 것은 아닙니다. 심층 신경망의 훈련은 종종 브라우저 탭에서는 직접 사용할 수 없는 멀티코어(multicore)와 GPU 가속 컴퓨팅이 필요합니다. 이런 모델을 훈련하기 위해 필요한 엄청난 양의 데이터는 백엔드에서 입력하는 것이 가장 편리합니다. 예를 들어 사실상 무제한 용량을 가진 네이티브(native) 파일 시스템을 사용합니다. 최근까지 많은 사람이 ‘자바스크립트에서 딥러닝’을 하는 것을 신선하게 생각했습니다. 이 절에서는 많은 애플리케이션에서 자바스크립트로 브라우저 환경에서 딥러닝을 수행하는 것이 현명한 선택인 이유를 제시하고, 특별히 TensorFlow.js를 사용해 딥러닝의 성능과 웹 브라우저를 결합하여 독창적인 애플리케이션을 만드는 방법을 설명하겠습니다.
먼저 머신 러닝 모델이 훈련되고 나면 (이미지와 텍스트를 분류하거나 오디오와 비디오 스트림에서 이벤트를 감지하는 등) 실전 데이터에서 예측을 만들기 위해 어딘가에 배포되어야 합니다. 배포하지 않는다면 모델 훈련은 컴퓨팅 성능의 낭비일 뿐입니다. 이 어딘가가 웹 프런트엔드(frontend)라는 것은 종종 바람직하거나 필수적입니다. 여러분은 전반적인 웹 브라우저의 중요성을 알 것입니다. 데스크톱과 노트북에서 인터넷의 콘텐츠와 서비스를 사용하는 데 있어 웹 브라우저는 독보적인 도구입니다. 데스크톱과 노트북 사용자는 웹 브라우저를 사용하는 데 대부분의 시간을 쓰며, 2위와도 차이가 큽니다. 사람들은 웹 브라우저를 사용해 매일 많은 일을 처리하고, 온라인 상태를 유지하고, 여가를 보냅니다. 웹 브라우저에서 실행되는 광범위한 애플리케이션은 클라이언트 측 머신 러닝을 적용하기 위해 풍부한 기회를 제공합니다. 모바일 프런트엔드에서는 웹 브라우저가 사용자 참여나 소비 시간 측면에서 네이티브 모바일 앱보다 뒤처져 있습니다. 하지만 모바일 브라우저는 넓은 도달 범위, 즉각적인 접속, 빠른 개발 주기 때문에 고려해 볼 만한 도구입니다.19 사실 유연하고 사용하기 쉽기 때문에 트위터나 페이스북 같은 많은 모바일 앱은 특정 종류의 콘텐츠를 위해 자바스크립트가 구동되는 웹 뷰(web view)로 전환합니다.