안녕하세요. OCF를 프로젝트에 적용해 보려고 열심히 작업 중인 한 사람입니다.

OCF 컴포넌트를 작성하여 테스트 중 궁금한 점이 있어 질문 드립니다.
현재 만들어야 할 OCF 컴포넌트의 모습이 2가지 인데,
- 첫번째 컴포넌트는 컴포넌트 내부에서 Legacy 시스템에 TCP client로 붙어서 통신을 해야 함
- 두번째 컴포넌트는 다른 회사에서 제공한 DLL을 사용하여 TCP client로 붙어서 통신을 해야 함
입니다.

[질문1]
현재 상황은 다른 회사에서 제공받은 DLL을 사용하여 OCF 컴포넌트를 작성하여 테스트했는데, 이상상황이 발생하여 나름 조사를 해본 결과
해당 DLL이 MFC의 Socket class를 사용하여 작성되었다는 걸 알게되었습니다. 즉, 해당 DLL을 UI thread에서 호출하면 아무 문제가 되지 않는데, worker thread에서 호출하면 문제가 발생합니다.
이런 경우, 제 생각에는 해당 DLL을 OCF 컴포넌트에서 무리없이 사용하려면, 작성 중인 OCF 컴포넌트가 message loop를 가져야 되는데, In-Proc 컴포넌트일 경우 자체적으로 message loop를 갖질 못하는 걸로 알고 있습니다. 만약 상황이 이렇다면, OCF 컴포넌트와 DLL사이에 Local Server를 끼워 넣어서 해결해야 되는지 문의 드립니다. 즉,

OCF 컴포넌트 <-> Message Loop를 갖는 Out of Proc 컴포넌트 작성 및 Local Server에서 DLL 함수 호출 <-> TCP Server

이런 모습이 맞을지 궁금합니다.

[질문2]
제 생각에는 위에서 말씀드린 첫번째 컴포넌트의 경우에도 같은 상황이 발생할 것 같은데, OCF 컴포넌트가 다른 시스템의 통신 클라이언트로 작성되려면, 늘 OCF컴포넌트 <-> Local Server <-> 통신서버의 모습이 맞는 것인지 궁금합니다.

혹시 제가 잘못 생각하고 있거나, 해결책이 있으시면 설명 좀 부탁드리겠습니다.

감사 합니다.

그럼 수고하십시오.
이 게시물을..