토론:컴포넌트 오브젝트 모델

위키백과, 우리 모두의 백과사전.
이동: 둘러보기, 검색

올바르지 않은 문장[편집]

싱글 쓰레디드 아파트먼트는 매우 일반적으로 사용되는 모델이다. 여기서의 COM 오브젝트는 일반 데스크탑 애플리케이션의 사용자 인터페이스가 (프로그래밍적으로) 동작하는 방식과 유사한 방식으로 동작한다. STA 모델에서는 하나의 오브젝트 전용 쓰레드에서 오브젝트의 메서드들이 실행된다. 따라서 해당 아파트먼트의 외부 쓰레드로부터 메서드 호출이 있으면 마샬되어 시스템에 의해 자동적으로 큐에 쌓이게 된다(여기서 표준 윈도우 메시지 큐가 사용된다.).

위 문장에서, 굵게 표시된 부분에서, “자동적으로 큐에 쌓이게 된다”의 주어가 없습니다. 도대체 무엇이 쌓인다는 뜻인지요? (아는 사람은 다 안다는 식의 답변은 정중히 사양합니다. 이 글은 전문가가 아닌 사람도 보는 글입니다.) --Knight2000 2007년 8월 19일 (일) 13:45 (KST)

안녕하세요. 이 글은 제가 위키백과 초창기에 번역했던 글입니다. 그래서 약간 직역투나 말끔하지 않은 문장들이 있습니다. 양해를 부탁드리고요. 초창기 이후부터는 될 수 있으면 최대한 쉽게 쓰려고 노력하고 있습니다. 답변을 드리자면, 큐에 쌓이는 건 말 그대로 메소드 호출(요청)입니다. 특정 STA 에 있는 COM 오브젝트의 코드를 실행하려면, 해당 COM 오브젝트가 속한 아파트먼트의 코드를 실행하도록 할당된 쓰레드에서 실행이 되어야 하기 때문에, 호출자의 쓰레드에서 코드를 바로 실행하지 않고 큐에 요청을 넣어 호출받는 쪽의 쓰레드에서 코드가 실행되도록 하는 것입니다. 현재 윈도의 STA 구현은 이 큐에 표준 윈도우 메시지 큐를 사용합니다. 그렇기 때문에 STA에 속한 COM을 구현할 때 따로 동기화 코드를 추가할 필요가 없는 것이고요. 저의 COM 관련 배경지식은 "COM/DCOM 프라이머 플러스", "Essential COM", "ATL Internals"에 기반합니다만, 모든 내용을 완벽히 이해하지는 못했을 뿐만 아니라, 관련 내용을 본 지 벌써 꽤 시간이 흘러 기억이 가물가물하네요. 혹시 틀린 부분이 있으면 지적 부탁드립니다. --Johyeongryeol 2007년 8월 19일 (일) 16:06 (KST)
죄송하지만, 내용은 저 역시 모릅니다. 제가 고친 부분은 “~에 의한”이라는 번역투였고, 위의 문장에 그것이 있었는데, 하필이면 주어가 없는 문장이라서 “~에 의한”을 고치지 못했을 뿐입니다. --Knight2000 2007년 8월 19일 (일) 16:49 (KST)