검증된 SSL 인증서를 사용하는 HTTPS 웹 사이트 컨텍스트에 한해서, 그리고 PWA (Progressive Web Application) 컨텍스트에 한해서 디바이스 통신이나 파일 입출력, 로컬 DB 같은 애플리케이션 구현에 필요한 기능들을 자바스크립트를 이용해서 구현할 수도 있을 겁니다.
다만 진짜 네이티브 애플리케이션 같은 자유도는 역시 기대하시면 안되겠지만, 과거에 비해서는 상당히 많은 API들이 열려있으니 한 번 즈음 찾아보시는 것도 유익할 것 같습니다. 그리고 개중에는 실험적인 API들도 많으니 프로덕션에서 실제로 채택할 수 있을지 여부에 대해서는 신중히 판단하시는게 필요할 겁니다.
단, 웹 소켓의 경우, TCP 소켓을 Wrapping하는 Sockifier 류의 에이전트를 추가하시면 소켓 통신을 웹 애플리케이션 수준으로 캐리할 수 있습니다. (이렇게 하면 TCP 통신을 HTTPS로 캐리한 다음, WAF 류 보안 솔루션과 통합하고 일반 네트워크 방화벽에서는 80/443만 개방하는 식으로 처리가 가능합니다.) 제가 이 주제로 만들었던 오픈 소스 라이브러리도 있으니 살펴보시면 좋을 것 같습니다.
참고로 WebsockifySharp은 본래 noVNC (HTML5 기반 VNC 클라이언트)에서 제공하던 VNC 중계를 담당하는 파이썬 서버 코드에서 착안하여 TCP 연결을 중계하는 서버와 웹 소켓을 localhost TCP 소켓으로 뚫어주는 클라이언트를 모두 만든 것입니다. 일종의 터널링이라고 보셔도 괜찮고, 개인적으로는 RDP 연결 중계와 Apache Guacamole 까지 테스트해보았습니다. ㅎㅎ