ActiveX 인스톨러를 만들려면 무엇을 공부해야 합니까?

C++ COM이라는 기술이 있던데 무척이나 복잡하더라구요…

IE에서 ActiveX 허용시 인스톨파일이 실행되게 하고 싶은데

무엇을 공부해야 하는지 알려주십시요ㅜ

2개의 좋아요

이 문서가 시작점이 될것 같습니다. ActiveX는 기본적으로 캐비넷 파일로 패키징해서 object 태그와 함께 쓰이며, 이 때 cab 파일은 디지털 서명이 되어있어야 배포가 원활합니다. (특히 B2C 대상 배포인경우 디지털 서명은 의무사항에 가깝고, 공증 업체를 통해 인증서 구매가 되어야 합니다.)

그러나 2023년 9월 현재 IE는 지원 종료된지 이미 1년 이상 넘었고, 위 문서에서 설명한 방식으로 애플리케이션을 배포하는것이 매우 어렵거나 불가능합니다.

그럼에도 IE를 강제로 실행시키고, CAB 파일 방식, 혹은 regsvr32를 호출해서 ActiveX 컨트롤을 시스템에 배포하는 시나리오가 무슨 일이 있어도 필요한 상황이라면, 제가 가지고 있는 과거 경험을 토대로 조언을 드려볼 수는 있을것 같습니다.

2개의 좋아요

COM (Component Object Model)은 마이크로소프트에서 개발한 컴포넌트 기반의 객체지향 프로그래밍 모델입니다. ActiveX는 COM을 기반으로 하는 기술 중 하나로, 웹 브라우저에서 다양한 응용 프로그램을 실행할 수 있게 해줍니다.

하지만 COM과 ActiveX를 사용하여 IE에서 인스톨 파일을 실행하는 것은 여러 가지 문제점이 있습니다:

  1. 보안 문제: ActiveX 컨트롤은 사용자의 시스템에서 쉽게 실행될 수 있기 때문에, 악의적인 소프트웨어에 대한 주요 경로가 되었습니다. 따라서 대부분의 웹 브라우저와 환경에서 ActiveX는 제한되거나 사용되지 않게 되었습니다.
  2. 호환성 문제: ActiveX는 주로 인터넷 익스플로러와 윈도우 플랫폼에 종속적입니다. 다른 웹 브라우저나 운영체제에서는 실행되지 않습니다.
  3. 현대 웹 기술: 현재 웹의 트렌드는 플러그인 없이 웹 표준 기술을 사용하여 빠르고 안전하게 애플리케이션을 개발하는 것입니다.

그럼에도 불구하고 COM과 ActiveX를 학습하고자 한다면, 다음 주제들을 공부해야 합니다:

  1. COM 기초: COM의 기본 개념, 인터페이스, 구성요소, IDL (Interface Definition Language) 등
  2. ActiveX: ActiveX 컨트롤의 생성과 배포, 인증 및 보안 등
  3. ATL (Active Template Library): COM 컴포넌트 개발을 위한 C++ 템플릿 라이브러리
  4. 등록 및 배포: COM 객체의 등록, DLL/OCX 등록, 배포 문제 해결 등

그렇지만, 현대의 웹 환경에서는 COM이나 ActiveX를 사용하는 대신, 더 표준적이고 안전한 방법을 사용하는 것을 권장합니다. 예를 들어, 웹 기반 설치 프로그램 또는 다른 현대적인 방법을 사용할 수 있습니다.

GPT 4.0

3개의 좋아요

우선 간략히 말씀 드리면 ActiveX 는 권장 드리지 않으며, ActiveX가 왜 필요한지
궁금하네요. 요즘엔 앱 실행으로 많이 하는 걸로 알고 있습니다.

postman 을 예로 들어 보여 드리면

요런 식으로 하는걸로 알고 있습니다.
(Registering an Application to a URI Scheme (Windows) | Microsoft Learn)

ActiveX를 권장 하지 않는 이유는 필요 하시면 알려 드릴게요 ㅎㅎ

4개의 좋아요

기술적인 내용에 대한 질문으로 보여 모두의 Q&A로 옮깁니다.

2개의 좋아요