IE EOS 이슈와 함께 ActiveX의 사용도 당연히 못하게된 상황에서

기존에 브라우저에서 클라이언트의 exe를 호출하던 기능을 못 사용하게 되었다.

서버에서 클라이언트 PC의 제어는 당연히 불가능 했기 때문에 해결방법을 찾아야 했다.


1. 양자의 사고

1-1. 서버는 클라이언트PC를 제어를 하지 못한다.

1-2. 클라이언트 개발자로부터 웹 소켓을 사용한 SSO 연동 테스트 모듈을 제공할 때 node.js를 사용했다는 점

1-3. npm을 사용해 보면서 Node.js가 다양한 일을 할 수 있구나 정도의 생각을 가지고 있었음

1-4. 스크립트는 애초에 클라이언트 사이드 언어인데 Node.js가 exe 제어를 할 수 있다면 활용할 수 있지 않을까?

1-5. 실제 Node.js에는 exe를 실행 시켜줄 수 있는 기능이 존재하였다.

2. 설계

2-1. 1차, 호출에 대한 구조

2-2. 2차, 실제 모듈 구조

3. 동작

3-1. 클라이언트가 설치, 실행과 동시에 node.js로 로컬서버를 open한다.

3-2. 웹 스크립트에서 이벤트가 발생하면 로컬서버를 호출한다.

3-3. 로컬서버가 실행시켜줘.exe를 실행한다.

4. node.js의 활용

4-1. npm child_process

//자바로 치면 라이브러리 import
const { spawn } = require('child_process');
//실행함수(실행할 exe, args)
spawn('note.exe', ['first arg']);

5. 결론

본문 예제에서의 실행시켜줘.exe의 스팩은 알지 못하며 클라이언트의 영역이였기 때문에 메모장으로 간단한 예제 구현 까지 진행하였다.

나는 클라이언트 제어를 위해 Node.js를 활용하였는데 Node.js가 "확장성 있는 네트워크 애플리케이션과 서버 사이드 개발에 사용되는 소프트웨어 플랫폼" 이라는 위키를 보고 거꾸로 사용한건 아닌지 고민하며

node.js 고수의 답변을 기다려 본다.


https://www.npmjs.com/package/child_process

 

child_process

This package name is not currently in use, but was formerly occupied by another package. To avoid malicious use, npm is hanging on to the package name, but loosely, and we'll probably give it to you if you want it.. Latest version: 1.0.2, last published: 8

www.npmjs.com

 

+ Recent posts