Creo 4.0 이전 버전에서는 Web.Link 응용 프로그램 작업을 위해 내장 브라우저가 사용되었고, 이 브라우저는 Creo 프로그램 자체와는 별개의 프로세스로 실행되었는데. 이로 인해 프로세스 간 통신 오버헤드가 발생하여 성능 문제가 있었습니다.
▣ Creo 프로세스 외부 브라우저 실행으로 인한 성능 문제
1. 프로세스 간 통신 오버헤드
- 프로세스란 컴퓨터에서 실행되는 프로그램의 인스턴스를 의미합니다. 각 프로세스는 자체적인 메모리 공간과 자원을 사용합니다.
- Creo 프로그램과 Web.Link 응용 프로그램이 별개의 프로세스로 실행되면서, 두 프로그램 간에 데이터를 주고받기 위해서는 프로세스 간 통신 (Inter-Process Communication, IPC)이라는 과정을 거쳐야 했습니다.
- IPC는 운영체제의 도움을 받아야 하며, 이 과정에서 상당한 오버헤드 (추가적인 작업 부담)가 발생합니다. 데이터 전송, 동기화, 오류 처리 등에 많은 자원이 소모되기 때문입니다.
2. 성능 저하
- 프로세스 간 통신 오버헤드는 Web.Link 응용 프로그램의 실행 속도를 느리게 만드는 주요 원인이었습니다.
- 특히 Web.Link 응용 프로그램이 Creo 프로그램과 빈번하게 데이터를 주고받을수록 오버헤드는 더욱 커졌고, 사용자 경험에 부정적인 영향을 미쳤습니다.
- 응용 프로그램의 반응 속도 저하, 잦은 멈춤 현상 등이 발생할 수 있었습니다.
3. 자원 낭비
- 별개의 프로세스로 실행되는 브라우저는 추가적인 시스템 자원 (CPU, 메모리 등)을 소비했습니다.
- 이는 전체 시스템의 성능 저하를 초래할 수 있으며, 다른 프로그램의 실행에도 영향을 미칠 수 있었습니다.
4. 개발 및 유지보수의 어려움
- Web.Link 응용 프로그램을 개발하고 유지보수하는 과정에서 프로세스 간 통신을 고려해야 했기 때문에 복잡성이 증가했습니다.
- 디버깅 또한 어려워졌으며, 문제 해결에 더 많은 시간과 노력이 필요했습니다.
Creo 4.0 M080 릴리스 및 이후 버전에서는 새로운 툴킷인 Creo.JS가 제공됩니다. 이 툴킷은 Creo 프로세스 내에서 실행되는 Chrome V8 JavaScript 엔진을 사용합니다. 이를 통해 프로세스 간 통신 오버헤드가 제거됩니다. 이 엔진은 ECMAScript 2018 사양을 지원합니다. Creo.JS 프레임워크는 JavaScript로 작성된 Creo 응용 프로그램을 실행합니다.
▣ Creo.JS 응용 프로그램
Creo.JS 응용 프로그램은 JavaScript로 작성되며, 단일 웹 페이지(html 파일)에 배포됩니다. 이 응용 프로그램은 분산된 형태로 두 부분으로 구성됩니다.
- 동적 HTML 사용자 인터페이스 및 사용자 상호 작용을 제어하는 JavaScript 섹션:
이 스크립트는 DOM 조작을 위한 HTML 브라우저 API와 Web.Link API의 조합을 포함할 수 있습니다.
이 부분은 브라우저에서 실행됩니다. - Creo 툴킷 API와 상호 작용하는 JavaScript 섹션:
이 스크립트는 Creo 프로세스에 로드되며 Creo 프로세스의 일부인 Creo.JS 엔진에 의해 실행됩니다.
Creo 세션과 상호 작용하는 응용 프로그램 부분은 브라우저에서 실행되는 Web.Link 코드와 Creo에서 실행되는 Creo.JS 코드의 조합일 수 있습니다. 이를 통해 응용 프로그램을 Web.Link에서 Creo.JS로 점진적으로 마이그레이션할 수 있습니다. 응용 프로그램의 두 부분은 서로 다른 프로세스에서 실행되므로 런타임 객체에 대한 직접적인 참조를 교환할 수 없습니다. JSON 객체를 전달하여 상호 작용합니다. 환경 간의 모든 호출은 비동기적입니다. JavaScript에서 분산 응용 프로그램 개발을 위해 AJAX 구독 스타일 또는 Node.js의 반응형 개발과 같은 프로그래밍 패턴을 사용해야 합니다.
AJAX란 무엇인가 ?
AJAX (Asynchronous Javascript And XML) AJAX란, JavaScript의 라이브러리중 하나이며 Asynchronous Javascript And Xml(비동기식 자바스크립트와 xml)의 약자이다. 브라우저가 가지고있는 XMLHttpRequest 객체를 이용해서 전
99geo.tistory.com
[개발 기본 지식] Node.js란?
"Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다" ?? 🤔그래서 뭔데요?
velog.io
▣ Creo.JS 설치 위치
PTC.SetUp을 사용하여 Creo를 설치할 때, 선택적 구성 요소 중 하나가 "API 툴킷"입니다.
이 툴킷에 Creo.JS 툴킷이 포함되어 있습니다. 별도의 선택 없이 자동으로 설치 됩니다. Creo.JS는 Web.Link를 설치할 때 함께 설치됩니다. Creo.JS 설치 시 다음 폴더가 생성됩니다.
C:\PTC\Creo 9.0.6.0\Common Files\apps\creojs에 creojs라는 디렉터리가 생성됩니다. 이 디렉터리에는 Creo.JS 관련 문서가 포함되어 있습니다. 여기에는 모듈, 클래스 및 메서드 정의를 포함하는 온라인 브라우저인 Creo.JS APIWizard가 있습니다. PDF 형식의 Creo.JS 사용자 안내서도 이 폴더에 설치됩니다.
PTC Help Center
Your browser has DOM storage disabled. Make sure DOM storage is enabled and try again.
support.ptc.com
'JavaScript For Creo' 카테고리의 다른 글
자비스크리트 예제 사이트 (0) | 2025.02.06 |
---|---|
자바스크립트 예시 #1 (0) | 2025.02.05 |
현재 모델의 파일 이름을 가져오는 코드 #2 (1) | 2025.02.04 |
현재 모델의 파일 이름을 가져오는 코드 #1 (0) | 2025.02.02 |
자바스크립트 사칙연산 (0) | 2025.02.02 |