[[TableOfContents]] = COM? = {{|Component Object Model, or COM, is a Microsoft technology for software componentry. It is used to enable cross-software communication and dynamic object creation in many of Microsoft's programming languages. Although it has been implemented on several platforms, it is primarily used with Microsoft Windows. COM is expected to be replaced to at least some extent by the Microsoft .NET framework. COM has been around since 1993 - however, Microsoft only really started emphasizing the name around 1997. |}} COMì€ ì†Œí”„íŠ¸ì›¨ì–´ ì»´í¬ë„ŒíŠ¸ë¥¼ 위해 만들어진 Microsoft ì‚¬ì˜ ê¸°ìˆ ì´ë‹¤. ì´ëŠ” ìˆ˜ë§Žì€ MSì‚¬ì˜ í”„ë¡œê·¸ëž˜ë° ì–¸ì–´ì—서 소프트웨어간 í†µì‹ ê³¼ ë™ì ê°ì²´ìƒì„±ì„ 가능케한다. ë¹„ë¡ ì´ ê¸°ìˆ ì´ ë‹¤ìˆ˜ì˜ í”Œëž«í¼ìƒì—서 êµ¬í˜„ì´ ë˜ê¸°ëŠ” 하였지만 MS Windows ìš´ì˜ì²´ì œì— 주로 ì´ìš©ëœë‹¤. ì‚¬ëžŒë“¤ì€ .Net í”„ë ˆìž„ì›Œí¬ê°€ COMì„ ì–´ëŠì •ë„까지는 대체하리ë¼ê³ 기대한다. COM ì€ 1993ë…„ì— ì†Œê°œë˜ê³ 1997즈ìŒí•´ì„œ MSê°€ 강조한 ê¸°ìˆ ì´ë‹¤. 90년대 마ì´í¬ë¡œì†Œí”„트가 ë‚´ë†“ì€ ê°€ìž¥ 핵심ì ì¸ ê¸°ìˆ ë¡œ 차후 ActiveX 를 ì´ë£¨ëŠ” ê¸°ë°˜ê¸°ìˆ ì´ ëœë‹¤. COMì€ ì–¸ì–´ê°€ ì•„ë‹ˆë¼ ê°ì²´ì§€í–¥ì„ 지향하는 ë°”ì´ë„ˆë¦¬ë¥¼ 만들어 내는 í‘œì¤€ì„ ì§€ì •í•´ë†“ì€ ê²ƒì´ë‹¤. ë”°ë¼ì„œ ì–´ë–¤ 언어ì´ë˜ì§€ COM í‘œì¤€ì— ë¶€í•©í•˜ëŠ” ë°”ì´ë„ˆë¦¬ 형태를 ìƒì„±í• 수 있다면 ê·¸ 언어로 작성한 ë°”ì´ë„ˆë¦¬ëŠ” 언어 ë…립ì 으로 COMì„ ì§€ì›Œí•˜ëŠ” ê³³ì—서 ì»´í¬ë„ŒíŠ¸ë¡œì„œ ì‚¬ìš©ì´ ê°€ëŠ¥í•˜ë‹¤. ê³ ì§ˆì 으로 ì§„ìž…ìž¥ë²½ì´ ì—…ì²ë‚˜ê²Œ ë†’ì€ ê¸°ìˆ ë¡œ ìœ ëª…í•˜ì§€ë§Œ... -_-; .NET ì´ ë‚˜ì˜¤ë©´ì„œ 어떻게 ì“°ì´ê²Œ ë 런지는 미지수가 ë˜ì–´ë²„린 ê¸°ìˆ ì´ë‹¤. Vista ê°€ 나오면 ì™„ì „ížˆ legacy 로 취급ë˜ê²Œ ë 것ì¸ì§€... -_-;; ì´ì œ MFC는 ì‚¬ìž¥ì˜ ê¸¸ë¡œ 걸어가는 것 ê°™ê³ ... 당장ì´ì•¼ ì›Œë‚™ì— ê¸°ë°˜ì´ ì´ ê¸°ìˆ ì´ë‹¤ë³´ë‹ˆ ì–´ì©” 수 ì—†ê² ì§€ë§Œ .net ì‚¬ìš©ì´ ê¶¤ë„ì— ì˜¤ë¥´ë©´ ì•„ë§ˆë„ COM ë„ ë¨¸ì§€ì•Šì•„ ê·¸ë ‡ê²Œ ë˜ì§€ 않ì„까 싶다. = Migration from COM to .NET = {{| The COM platform has largely been superseded by the Microsoft .NET initiative and Microsoft now focuses its marketing efforts on .NET. To some extent, COM is now deprecated in favour of .NET. Despite this, COM remains a viable technology with an important software base – for example the popular DirectX 3D rendering SDK is based on COM. Microsoft has no plans for discontinuing COM or support for COM. There exists a limited backward compatibility in that a COM object may be used in .NET by implementing a runtime callable wrapper (RCW), and .NET objects may be used in COM objects by calling a COM callable wrapper. Additionally, several of the services that COM+ provides, such as transactions and queued components, are still important for enterprise .NET applications. |}} COM 플랫í¼ì€ Microsoft .NETí”„ë ˆìž„ì›ì´ 나오면서 ë§Žì€ ë¶€ë¶„ 대체ë˜ì—ˆë‹¤. ë˜í•œ Microsoft 사는 ì´ì œ .NETì— ëŒ€í•œ ë§ˆì¼€íŒ…ì„ í•˜ëŠ”ë° ë…¸ë ¥í•œë‹¤. 약간 ë” ë‚˜ì•„ê°€ ìƒê°í•´ë³´ë©´ .NETì„ ì„ í˜¸í•˜ëŠ” 환경ì—서 ì´ì œ ì‚¬ì–‘ì˜ ê¸¸ë¡œ ì ‘ì–´ë“¤ì—ˆë‹¤. ê·¸ë ‡ì§€ë§Œ COMì€ ì—¬ì „ížˆ ì†Œí”„íŠ¸ì›¨ì–´ì˜ ì¤‘ìš”í•œ 기반들과 함께 실용ì ì¸ ê¸°ìˆ ì´ë‹¤. 예를 들ìžë©´ DirectX 3Dì˜ ë ˆë”ë§ SDK 는 COMì— ê¸°ë°˜í•˜ê³ ìžˆë‹¤. Microsoft 는 COM를 ê³„ì† ê°œë°œí• ê³„íšë„, ì§€ì›í• 계íšë„ ê°€ì§€ê³ ìžˆì§€ 않다. RCW를 êµ¬í˜„í•˜ê³ ìžˆëŠ” .Net 하ì—서는 COM ê°ì²´ëŠ” ì•„ë§ˆë„ ì œí•œì 으로 í˜¸í™˜ì„±ì˜ ì¸¡ë©´ì—서 사용ë 것ì´ë‹¤. ë˜í•œ .NET ê°ì²´ë“¤ì€ ì•„ë§ˆë„ COM callable wrapper를 호출하는 것 ë•Œë¬¸ì— COM ê°ì²´ë“¤ì•ˆì—서 사용ë 것ì´ë‹¤. ë§ë¶™ì—¬ì„œ COM+ê°€ ì œê³µí•˜ëŠ” ì¼ë¶€ë¶„ì˜ ì„œë¹„ìŠ¤ë“¤(transaction, queued components)ì€ ì—¬ì „ížˆ .NET ì‘용프로그램ì—ì„œë„ ì¤‘ìš”í•œ 부분ì´ë‹¤. [http://www.microsoft.com/com/ Microsoft COM Page] {{{ Is COM still supported? Is it going away? COM is a feature of Windows. Each version of Windows has a support policy described in the Windows Product Lifecycle. COM continues to be supported as part of Windows. COM is a planned feature of the coming version of Windows, code-named "Longhorn". }}} = Related = [[FullSearch("_COM_")]] = Thread = COM ì€ '언어'ê°€ 아닌 'ê¸°ìˆ 'ì´ë‹¤. ì´ëŠ” ASP ê°€ VBScript 언어를 ì˜ë¯¸í•˜ì§€ 않는 것과 같다. ì˜ˆì „ì— COM 프로그래ë°ì„ 하다가 Java ì—ì„œì˜ ê²°ê³¼ë¬¼ë“¤ì„ ë³´ë©´ì„œ 'COM ì€ OS 플랫í¼/C & C++ 한계 ë‚´ì—ì„œì˜ ì»´í¬ë„ŒíЏ 모ë¸ì´ë¼ë©´, Java ì—ì„œì˜ Component (Beans) 는 VM 위ì—ì„œì˜ ìžìœ 로운 ì»´í¬ë„ŒíЏ 모ë¸ì´êµ¬ë‚˜' ë¼ëŠ” ìƒê°ì´ 들기ë„. .NET í”Œëž«í¼ ì´í›„ì— COM ì´ ì‚¬ë¼ì§€ê²Œ ë˜ëŠ”ê±´ 어쩌면 당연한 ìˆ˜ìˆœì¼ ê²ƒì´ë‹¤. COM ì„ ì²˜ìŒ ê³µë¶€í•˜ê³ ì§ì ‘ êµ¬í˜„í• ë•Œì—는 ëª¨ë“ ê²ƒë“¤ì´ ì‹ ê¸°í•´ë³´ì¸ë‹¤. íŒ©í† ë¦¬ë„¤ 스마트 í¬ì¸í„°ë„¤ 스í…-ìŠ¤ì¼ˆë ˆí†¤ì´ë„¤ ì¸í„°íŽ˜ì´ìŠ¤ë„¤ 구현ìƒì†ê³¼ ì¸í„°íŽ˜ì´ìФìƒì†ì€ 다르네 등등. 하지만, ë™ê¸‰ì— 해당ë˜ì–´ë³´ì´ëŠ” Java í”Œëž«í¼ ë‚´ì—ì„œì˜ ì†”ë£¨ì…˜ë“¤ì„ ë³´ë©´ 너무나 ë‹¹ì—°í•œê±´ë° ëŒ€ë‹¨í•˜ê²Œ 표현ë˜ì–´ìžˆë‹¤ê±°ë‚˜ (예를 들면 'ì¸í„°íŽ˜ì´ìФ ìƒì†'. COM ì±…ì—서는 ì´ê±¸ 왜 무언가 새로운 대단한 ê¸°ìˆ ì¸ ì–‘ ì„œìˆ í–ˆì„까?) ì•„ì— í•„ìš”ê°€ 없는 ê¸°ìˆ ì¼ ìˆ˜ë„ ìžˆë‹¤. (스마트 í¬ì¸í„° : VM ì§€ì›ì„ 받는 플랫í¼ì—ì„ ì „í˜€ 필요가 없다.) (ë¬¼ë¡ , ì´ê±´ COM ì„ ì„¤ëª…í•˜ë˜ ì±…ë“¤ì¤‘ì— C++ 로 COM ì„ êµ¬í˜„ì„ ì„¤ëª…í•˜ëŠ” ì±…ë“¤ì— í•œí•¨) COM ì„ ê³µë¶€í•˜ë˜ ë‹¹ì‹œ ë“¤ë˜ ìƒê° : 무언가 íŠ¹ì • ê¸°ìˆ ì— ëŒ€í•´ì„œ 공부를 í• ë•Œ 너무나 ìƒì†Œí•œ ìš©ì–´ë“¤ì´ ë§Žì´ ë‚˜ì™€ì„œ '대단해보ì´ëŠ”' í˜¹ì€ '무언가 있어보ì´ëŠ”' ë…€ì„ë“¤ì´ ìžˆê³¤ 하다. ê·¸ 경우, ë™ê¸‰ì˜ ë” ë‚˜ì€ ê¸°ìˆ ë“¤ì´ í•´ë‹¹ ë¬¸ì œë“¤ì„ ì–´ë–»ê²Œ í•´ê²°í•˜ëŠ”ì§€ì— ëŒ€í•œ ê´€ì°°ì´ í•„ìš”í•˜ë‹¤. --[1002] ---- [COM] [MFC/ObjectLinkingEmbedding]