E D R S I H C RSS
ID
Password
Join
๊ฑฐ์ง“๋ง์„ ์ž˜ํ•˜๋Š” ์š”๋ น์€ ๊ฑฐ์ง“๋ง ์†์— ์•ฝ๊ฐ„์˜ ์ง„์‹ค์„ ์„ž์–ด ๋†“๋Š”๊ฑฐ๋ž˜. - kei toume "์˜ˆ์Šคํ„ฐ๋ฐ์ด๋ฅผ ๋…ธ๋ž˜ํ•˜๋ฉฐ"๋ผ๋Š” ๋งŒํ™”์—์„œ

์ผ๋ฐ˜ #

  • ๋ฉ”์ธ ํ”„๋กœ์ ํŠธ ๋งํฌ : [http]http://libsigc.sourceforge.net
  • ํ˜„์žฌ 2.0๊นŒ์ง€ ๋ฆด๋ฆฌ์Šค.
  • ์‹œ๊ทธ๋„-์Šฌ๋กฏ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ๋Š” boost::signal, libsigc++, Qt signal-slot ์‹œ์Šคํ…œ์„ ๋Œ€ํ‘œ์ ์œผ๋กœ ์–ธ๊ธ‰ํ•˜๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
  • sigcppํŠœํ† ๋ฆฌ์–ผ - ๊ณต์‹ ํŠœํ† ๋ฆฌ์–ผ์ž…๋‹ˆ๋‹ค.
  • [http]http://libsigcx.sourceforge.net/ - sigc++์„ ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ณ ์นœ ๋ฒ„์ „์ž…๋‹ˆ๋‹ค. ์•ˆ์ •์„ฑ์€ ๋ฏธ์ง€์ˆ˜.

์†Œ๊ฐœ #

libsigc++ ๋Š” ํ‘œ์ค€ C++์—์„œ์˜ ํƒ€์ž…์•ˆ์ „์„ฑ์„ ๋ณด์žฅํ•˜๋Š”(typesafe) ์ฝœ๋ฐฑ ์‹œ์Šคํ…œ์„ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‹ ํ˜ธ(signal)์„ ์ •์˜ํ•˜๊ณ  ์ด๋“ค ์‹ ํ˜ธ๋ฅผ ์ „์—ญํ•จ์ˆ˜๊ฑด ๋งด๋ฒ„ํ•จ์ˆ˜์ด๊ฑด๊ฐ„์— ์ •์ ์ด๊ฑฐ๋‚˜ ๊ฐ€์ƒํ•จ์ˆ˜์—ฌ๋ถ€์— ๊ด€๊ณ„์—†์ด ๋ชจ๋“  ํŠน์ • ์ฝœ๋ฐฑ ํ•จ์ˆ˜์— ์—ฐ๊ฒฐํ•˜๋Š” ์ž‘์—…์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ๋น„์Šทํ•œ ํ˜•ํƒœ๊ฐ€ ์•„๋‹Œ ์ฝœ๋ฐฑํ•จ์ˆ˜์™€์˜ ์—ฐ๊ฒฐ์„ ์œ„ํ•œ ์•„๋‹ตํ„ฐ(adaptor)ํด๋ž˜์Šค๋ฅผ ๋‹ด๊ณ  ์žˆ์œผ๋ฉฐ, ๋‹ค๋ฅธ C++ ์ฝœ๋ฐฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์™€ ๋งž์ง€์•Š๋Š” ํ•จ์ˆ˜๊ตฌ์กฐ๋ฅผ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” LGPL ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

๊ธฐ๋Šฅ #

  • ์ปดํŒŒ์ผ๋•Œ ์ฒ˜๋ฆฌ๋˜๋Š” ํƒ€์ž…์— ์•ˆ์ „ํ•œ ์ฝœ๋ฐฑ (์‹ค์‹œ๊ฐ„ ๊ฒ€์‚ฌ๋ณด๋‹ค ๋น ๋ฆ…๋‹ˆ๋‹ค)
  • ํ…œํ”Œ๋ฆฟ ์ด๋ฆ„๊ณผ ํ•จ๊ป˜ ์ •ํ™•ํ•˜๊ฒŒ ์†Œ์Šค๋ผ์ธ์ˆ˜๊ฐ€ ๋ณด๊ณ ๋˜๋Š” ํƒ€์ž…์•ˆ์ „ ์˜ค๋ฅ˜๊ฒฝ๊ณ (ํ—ค๋”ํ™”์ผ์— ํ…œํ”Œ๋ฆฟ ์ถ”์  ์‹คํŒจ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค)
  • ์ปดํŒŒ์ผ๋Ÿฌ ํ™•์žฅ์ด๋‚˜ ๋ฉ”ํƒ€ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋™์  ๊ฐ์ฒด์™€ ์‹ ํ˜ธ๋ฅผ ์ ์ ˆํ•˜๊ฒŒ ๋‹ค๋ฃจ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(๊ฐ์ฒด๋“ค์„ ์ œ๊ฑฐํ• ๋•Œ ๋ฉ”๋ชจ๋ฆฌ ๋ณดํ˜ธ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค)
  • ์–ด๋– ํ•œ ์ˆ˜์ค€์—์„œ๋„ ํ™•์žฅ๊ฐ€๋Šฅํ•œ API: Slot, Connection, Object, Signal
  • ํ™•์žฅ์„ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ๊ธฐ๋ณธ ์ปดํผ๋„ŒํŠธ๋ฅผ ๋ณ€๊ฒฝํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž ์ •์˜๊ฐ€๋Šฅํ•œ ๋งˆ์ƒฌ๋Ÿฌ(marshaller)
  • ๋‹ค์–‘ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ์™€ ํ”Œ๋ ›ํผ ์ง€์›(VC, mingw, gcc, ๋ฆฌ๋ˆ…์Šค, ์†”๋ผ๋ฆฌ์Šค, HP-UNIX, ์œˆ๋„์šฐ์ฆˆ๋“ฑ๋“ฑ)

์‹œ๊ทธ๋„-์Šฌ๋กฏ ๋ฐฉ์‹์ด๋ž€? #

์—ฌ๊ธฐ์„œ๋Š” C++์„ ์–ธ๊ธ‰ํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋จผ์ € ๋งํ•ด๋‘ก๋‹ˆ๋‹ค. ์‹œ๊ทธ๋„-์Šฌ๋กฏ์€ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐœ๋…์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ํด๋ž˜์Šค ๋˜๋Š” ๋ชจ๋“ˆ์„ ์ž‘์„ฑํ•˜๊ณ  ์ด๋“ค ํด๋ž˜์Šค๊ฐ€ ๋ช‡๋ช‡ ๋ฐ์ดํƒ€๋ฅผ ํด๋ž˜์Šค ๋ฐ–์œผ๋กœ ์ „์†กํ•˜๊ธฐ๋ฅผ ์›ํ•  ๊ฒฝ์šฐ, ์˜ˆ๋ฅผ ๋“ค์ž๋ฉด:
class mygame {
public:
  void startgame(); // ์ฆ‰์‹œ ๋ฐ˜ํ™˜๋จ!
};
์ด์ œ ๊ฒŒ์ž„์ด ๋๋‚˜์ž๋งˆ์ž, ํด๋ž˜์Šค๋Š” ๋‹ค๋ฅธ ํด๋ž˜์Šค๋“ค์—๊ฒŒ๋„ ์ด ์‚ฌ์‹ค์„ ๋งํ•˜๊ณ  ์‹ถ์„ ๊ฒ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ด๋ฒคํŠธ์— ์˜ํ•ด ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒ ์ง€๋งŒ, ์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ๊ณจ์น˜์•„ํ”ˆ ๊ฐœ๋…๋“ค์„ ๋„์ž…ํ•ด์•ผํ•˜๊ฒ ์ฃ . ์ด๋ ‡๊ฒŒ ํ•˜๊ธฐ์œ„ํ•ด์„œ ์‹œ๊ทธ๋„-์Šฌ๋กฏ ๋ฐฉ์‹์„ ๋„์ž…ํ•œ๋‹ค๋ฉด, mygame์€ gameterminated()๋ผ๊ณ  ํ•˜๋Š” ์‹ ํ˜ธ(signal)์„ ์ผœ์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ๋˜๋ฉฐ, ๋งŒ์•ฝ ๋‹ค๋ฅธ ์–ด๋–ค ๊ฐ์ฒด๊ฐ€ ์ด ์‹ ํ˜ธ์— ์—ฐ๊ฒฐ๋˜์–ด์žˆ๋‹ค๋ฉด ๊ทธ๊ฒƒ์€ ์ž์‹ ์˜ ์Šฌ๋กฏ ํ•จ์ˆ˜์•ˆ์—์„œ ์ •๋ณด๋ฅผ ๋ฐ›๊ฒŒ ๋  ๊ฒ๋‹ˆ๋‹ค.


Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2010-10-28 12:42:54
Processing time 0.3241 sec