U E D R , A S I H C RSS

erunc0/COM

COM์€ ์‹ค์šฉ์ฃผ์˜๊ฐ€ ๋‚˜์€ ์‚ฐ๋ฌผ์ด๋‹ค. ๋งˆ์€์— ๋“ ๋‹ค. ์ƒ์—…์ ์ธ ์„ฑ๊ณต์„ ์ด๋Œ๊ฒŒ ๋œ ์ด์œ ์•ผ ๋ฌด์—‡์ด๋“  ๊ฐ„์—.. ์ถ”์ƒ์ ์ธ ํ•™๋ฌธ์ด ์•„๋‹Œ ์‹ค์šฉ์ ์ธ ํ•™๋ฌธ์„ ์ ‘ํ•ด ๋ณด๊ณ  ์‹ถ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—.. ๊ณต๋ถ€ํ•˜๊ธฐ๋กœ ๋งˆ์Œ ๋จน์—ˆ๋‹ค. ๋˜, ํ•˜๋‹ค๊ฐ€ ๊ทธ๋งŒ ๋‘๋ฉด ์•ˆ๋ ํ…๋ฐ.. ๋ผ๋Š” ๊ฑฑ์ •์€ ๋’ค๋กœ ์žฌ์ณ ๋‘๊ณ  ์ฑ…ํ•œ๊ถŒ์„ ๊ตฌํ•ด์„œ ์ฐจ๊ทผ ์ฐจ๊ทผ ๋ณด๊ธฐ๋กœ ํ–ˆ๋‹ค.
  • ์ฑ…์ด ์ •๋ง ์–ด๋ ต๋‹ค.
  • ๋•€๋‚œ๋‹ค.


1. Essential COM

1.1. 1. ํ–ฅ์ƒ๋œ C++์œผ๋กœ์จ์˜ COM

  • ๊ฐ„๋‹จํ•œ C++ ํด๋ž˜์Šค๋กœ ์‹œ์ž‘ํ•˜์—ฌ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ด์ง„ Component๋กœ์จ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฒ•์„ ๊ฐ„๋‹จํ•œ ์˜ˆ์ œ๋ฅผ ํ†ตํ•ด์„œ ๋ฐฐ์šฐ๊ฒŒ ๋œ๋‹ค. ์ฒ˜์Œ์€ DLL์„ ํ†ตํ•ด์„œ client ์—๊ฒŒ ์ œ๊ณตํ•˜๋Š” ๋ฌธ์ œ์— ๋Œ€ํ•ด ๋งํ•˜๋ฉฐ. ๋‹ค์Œ์—๋Š” ์ด๋ ‡๊ฒŒ ์ œ๊ณต๋˜์–ด์ง„ ์ปดํฌ๋„ŒํŠธ์— ๋Œ€ํ•œ ๋ฐฉํ™”๋ฒฝ(?)๋“ฑ์— ๋Œ€ํ•ด ๋…ผ์˜ ํ•˜๋ฉด์„œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ํ†ตํ•˜์—ฌ ์ปดํฌ๋„ŒํŠธ ๋‚ด์˜ ์€๋‹‰ํ™”๋ฅผ ์œ„ํ•œ ๋ฐฉ๋ฒ•๋“ค์„ ์„ค๋ช…ํ•ด์ค€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋‹ค์Œ์œผ๋กœ๋Š” abstract class๋ฅผ ์‚ฌ์šฉํ•ด (virtual function์„ ์ด์šฉํ•œ ๋ฐฉ๋ฒ•) ์ธํ„ฐํŽ˜์ด์Šค์˜ ํ™•์žฅ์— ๊ด€ํ•œ ๋ถ€๋ถ„๊นŒ์ง€ ์„ค๋ช…ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋์œผ๋กœ๋Š” RTTI ์ด์šฉํ•˜์—ฌ ๋” ๋‚˜์€ ์ธํ„ฐํŽ˜์ด์Šค์˜ ํ™•์žฅ ๋ฐฉ๋ฒ•๊ณผ ๋‹ค์ค‘์˜ client ์—๊ฒŒ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ œ๊ณตํ• ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“œ๋Š” ๋ถ€๋ถ„๊นŒ์ง€ ์„ค๋ช…ํ•œ๋‹ค. ํ•œ์„œ๋ผ์„œ ๊ทธ๋Ÿฐ์ง€ ์• ๋งคํ•œ ์šฉ์–ด๋“ค์ด ๋งŽ์ด ์žˆ์–ด์„œ ์•„์ง๋„ ์ดํ•ด๊ฐ€ ๊ฐ€์งˆ ์•Š๋Š” ๋ถ€๋ถ„์ด ๋งŽ์•˜๋‹ค. ํ•œ๋ฒˆ๋” chapter 1์‘ ์ฝ์€ ํ›„์— ์ •๋ฆฌํ•˜๊ณ  chapter 2๋กœ ๋„˜์–ด๊ฐ€์•ผ ํ•˜๊ฒ ๋‹ค.

1.2. 2. Interface

1.3. 3. Class

1.4. 4. ...

2. Thread

  • ์ •๋ง ์‹œ๊ฐ„์ด ์—†๋‹ค. ํšŒ์‚ฌ์—์„œ ํ•˜๋Š”์ผ๋„ ์—„์ฒญ ์‰ฌ์šด ๊ฒƒ๋“ค์ธ๋ฐ ์™œ์ด๋ฆฌ ์‹œ๊ฐ„์ด ๋งŽ์ด ๋“œ๋Š”์ง€.. ์•„์ด๋Ÿฌ๋‹ˆ ํ•˜๋‹ค. chapter1์„ ์–ด์„œ ์ •๋ฆฌ ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ๊ฝค ๊ดœ์ฐฎ์€ ๋‚ด์šฉ ๊ฐ™์•˜๋‹ค. ๋‹ค์‹œ reviewํ•˜๋ฉด์„œ ์ •๋ฆฌํ•ด์•ผ ํ•˜๋Š” ์‹œ๊ฐ„์ด ๋‚˜๊ธธ. ์ฃผ๋ง์ด๋‚˜ ๊ฐ€๋Šฅ ํ•˜๊ฒ ๋‹ค.


  • ๊ฐœ์ธ์ ์œผ๋กœ COM ๊ตฌํ˜„ํ• ๋•Œ๋Š” (์ •ํ™•ํžˆ์•ผ ๋ญ ActiveX Control) ์†์ˆ˜ COM ๊ตฌํ˜„ํ•˜๋Š”๋ฐ ํ•˜๋Š” ์ผ๋“ค์ด ๋งŽ์•„์„œ -_-.. (Interface ์ž‘์„ฑํ•˜๊ณ  IDL ์ปดํŒŒ์ผํ•ด์ฃผ๊ณ , COM Component DLL Register ํ•ด์ฃผ๊ณ  ๊ทธ๋‹ค์Œ COM Component ์ž˜ ๋Œ์•„๊ฐ€๋Š”์ง€ ํ…Œ์ŠคํŠธ ๋“ฑ๋“ฑ) ๊ฑฐ์˜ Visual Studio ์˜ ์œ„์ž๋“œ๋กœ ์ž‘์„ฑํ•œ๋‹ค๋Š”. --a ๊ทธ๋ฆฌ๊ณ  COM ์„ ์ดํ•ดํ• ๋•Œ์—๋Š” OOP ์— ๋Œ€ํ•œ ์ข€ ๋ฐ”๋ฅธ ์ดํ•ด๋ฅผ ์ค‘๊ฐ„์— ํ•„์š”๋กœ ํ• ๊ฒƒ์ด๋ผ ์ƒ๊ฐ. ๋””์ž์ธ ํŒจํ„ด์—์„œ์˜ Factory, FacadePattern ์— ๋Œ€ํ•ด์„œ๋„ ์•„๋งˆ ์ฝ์–ด๋ณผ ์ผ์ด ์ƒ๊ธฐ๊ธฐ๋ผ ์ƒ๊ฐ.
    • '์ •๋ฆฌ'์— ์–ฝ๋งค์ด์ง€ ์•Š๊ธฐ๋ฅผ. ๋ญ, ์˜ํ˜„ ์ž๋„ค๊ฐ€ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์„ฑ์žฅํ–ˆ๋‹ค๋ฉด ๊ทธ๊ฒƒ์œผ๋กœ ์กฑํ•œ๊ฒƒ.. (์˜ˆ์ „์—๋Š” '์ •๋ฆฌ'ํ•ด์•ผ ์„ฑ์žฅํ•œ๋‹ค ์‹์œผ๋กœ ์—ด์‹ฌํžˆ ์‚ฌ๋žŒ๋“ค์„ ์„ค๋“ํ–ˆ์ง€๋งŒ. ๋ญ.) ๋‹จ, ํ•œ๊ฐ€์ง€ ๋” ์ถฉ๊ณ ๋ผ๋ฉด '๊ธ€๋กœ ์ •๋ฆฌํ–ˆ์„๋•Œ์™€ ์•ˆํ–ˆ์„๋•Œ'์˜ ํ•™์Šต ํšจ๊ณผ๋Š” ์•Œ์•„์„œ ๋น„๊ตํ•ด๋ณด๊ธฐ ๋ฐ”๋ž€๋‹ค๋Š”. ํํ -_-v ๊ฐ€์žฅ ํ•™์Šตํšจ๊ณผ๋ฅผ ๋†’์ด๋Š”๊ฑด, ์ฑ…๋ณด๊ณ  ์ •๋ฆฌํ•˜์ง€ ๋ง๊ณ  '์ž๊ธฐ ๋จธ๋ฆฟ์†์œผ๋กœ ์•„๋Š” ํ•œ๋„๋งŒํผ๋งŒ ์ •๋ฆฌํ•˜๋ผ' ๋ผ๋Š”๊ฒƒ. --1002
  • ํ•™๊ต ์ˆ˜์—… ๋”ฐ๋ผ๊ฐ€๊ธฐ๋„ ๋ฒ…์ฐจ๋„ค. ์•Œ๋ฐ”๋„ ํž˜๋“ค๊ณ , ๋ˆ์€ ์—†๊ณ .. -_-; ์•„.. ์‚ด๊ธฐ ํž˜๋“ค์–ด๋ผ.. ์–ธ์ œ ๋ณด๋ƒ.. COM์€.. ใ…œใ…ก ์•„.. ์‚ด๊ธฐ ์‹ซ์–ด๋ผ.. -- guts
  • COM ๋ณด๋Š”๊ตฌ๋‚˜ ๋‚˜๋„ ๊ฐœํ•™ํ•˜๊ณ  ๋ถ€ํ„ฐ ๋ณด๊ณ ์žˆ๋Š”๋ฐ Standard C++๋กœ ๊ตฌํ˜„ํ•œ๊ฒƒ์€ ๋ฐ˜๋„ ์ดํ•ด๋ชปํ•˜๊ณ ~ MFC๋กœ ๊ตฌํ˜„ํ•˜๋Š”๊ฑฐ ๋ณด๊ณ ์žˆ๋‹ค. ์ฒ˜์Œ์—” ์›น์—์„œ ์„ค์น˜๋˜๋Š” ActiveX ๋ณด๋ ค๊ณ ํ–ˆ๋Š”๋ฐ ์–ด์ฉŒ๋‹ค ๋ณด๊ณ ์žˆ๋Š”์ง€ ~ ์ •๋ฆฌ์ž˜ํ•ด๋ผ ๋ณด์•„์ค„๊ป˜ --๊ด‘์‹

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:31:40
Processing time 0.0071 sec