E D R S I H C RSS
ID
Password
Join
์นœ๊ตฌ๋ฅผ ๋น„ํŒํ•˜๋Š” ๊ฒƒ์ด ๋งˆ์Œ ์•„ํ”Œ ๋•Œ๋Š” ๋น„ํŒํ•ด๋„ ์ข‹๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฑฐ๊ธฐ์„œ ์กฐ๊ธˆ์ด๋ผ๋„ ์ฆ๊ฑฐ์›€์„ ๋А๋‚„ ๋•Œ๋Š” ์ž…์„ ๋‹ค๋ฌด๋Š” ๊ฒƒ์ด ์ƒ์ฑ…. โ€•J.R.

๏ปฟ * ์ฐธ์กฐ๋งํฌ : [http]http://www.c2.com/cgi/wiki?ModularProgramming

"Modular Programming"์€ ํ”„๋กœ๊ทธ๋žจ์„ ๋””์ž์ธํ•˜๊ณ  ์ž‘์„ฑํ•˜๋Š” ํ•˜๋‚˜์˜ ๋ฐฉ์‹์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ ์˜ˆ๊ธฐํ•˜๋ฉด ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ–๋Š” ์ฝ”๋“œ๋“ค์€ ๊ฐ™์€ ๋‹จ์œ„ ํ”„๋กœ๊ทธ๋žจ ์ฝ”๋“œ ๋‚ด์— ํ•จ๊ป˜ ํฌํ•จ์‹œ์ผœ์•ผ ํ•˜๋ฉฐ, ๋‹ค๋ฅธ ๊ธฐ๋Šฅ๋“ค์€ ๋ณ„๋„์˜ ๋…๋ฆฝ์ ์ธ ๋‹จ์œ„ ์ฝ”๋“œ๋กœ ๊ฐœ๋ฐœ๋จ์œผ๋กœ์จ, ์œ ์ง€๋ณด์ˆ˜์™€ ํƒ€ ํ”„๋กœ๊ทธ๋žจ๋“ค์—์„œ ์‰ฝ๊ฒŒ ์ด ์ฝ”๋“œ๋“ค์„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐœ๋ฐœํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฐœ๋…์„ ๋งํ•ฉ๋‹ˆ๋‹ค. (๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ์• ์ดˆ๋ถ€ํ„ฐ ๋ชจ๋“ˆ๋Ÿฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ฐœ๋…์„ ๊ฐ€์ง€๊ณ  ์ถœ๋ฐœํ•œ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค)

๋ชจ๋“ˆ๋Ÿฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋‘๊ฐ€์ง€ ํƒ€์ž…์œผ๋กœ ๊ธฐ๋Šฅ์„ ๋‚˜๋ˆ„๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค : "๊ด€๋ฆฌ์ž" ํ•จ์ˆ˜๋Š” ํ”„๋กœ๊ทธ๋žจ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋ฉฐ, "์ผ๊พผ" ํ•จ์ˆ˜๋“ค์€ ๊ตฌ์กฐ์ฒด๋กœ๋ถ€ํ„ฐ ๋ฐ์ดํƒ€๋ฅผ ์˜ฎ๊ธฐ๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ํ•˜์œ„ ์ˆ˜์ค€ ์„ธ๋ถ€๊ธฐ๋Šฅ๋“ค์„ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

๋ชจ๋“ˆ๋Ÿฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๊ฐ์ฒด์ง€ํ–ฅ์ ์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ๋ฐ์ดํƒ€์™€ ์ฝ”๋“œ๊ฐ€ ์—ฐ๊ด€๋˜์–ด์žˆ์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด์ฃ . ๋ชจ๋“ˆ๋Ÿฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๋งค์šฐ ์ ˆ์ฐจ์ ์ž…๋‹ˆ๋‹ค: ๋ชจ๋“  ์ด›์ ์€ ์ „์ ์œผ๋กœ ์ฝ”๋“œ(ํ•จ์ˆ˜) ์ž‘์„ฑ์— ๋‹ฌ๋ ค์žˆ๊ณ , ๋ฐ์ดํƒ€๋Š” ์ˆ˜๋™์ ์ธ ์š”์†Œ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ์ฝ”๋“œ๋Š” ๋„˜๊ฒจ์ง„ ๋ฐ์ดํƒ€ ๊ตฌ์กฐ๋‚ด์˜ ๋ชจ๋“  ๋‚ด์šฉ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์บก์Аํ™” ๊ฐœ๋…๊ฐ™์€ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค)

์ด ๊ฐœ๋…์„ ์ž˜ ํ™œ์šฉํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด C๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด ๋น„์Šค๋ฌด๋ฆฌํ•˜๊ฒŒ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  /* customer.h */
  typedef struct customer {
     int id;
     char *name;
     int n_orders;
     order_t *orders;
  } customer_t;

  int customer_new (customer_t **);
  int customer_read (id_t const *, customer_t **);
  int customer_write (customer_t const *);
  int customer_delete (customer_t *);
  int customer_num_orders (customer_t *, int *);

์œ„ ํ•จ์ˆ˜๋“ค์€ ๋ชจ๋‘ C๋กœ ๊ตฌํ˜„๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ๋งˆ์น˜ class์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒ๋‹ˆ๋‹ค.

๋”ด์†Œ๋ฆฌ #

์ด ๋ฐฉ์‹์€ luabind์™€ C/C++ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ณต์šฉ์œผ๋กœ ๊ตฌ์ถ•ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. luabind์—์„œ๋Š” virtual๋กœ ์ƒ์†๋œ ํด๋ž˜์Šค์˜ ๋ฐ”์ธ๋”ฉ์„ ์ง€์›ํ•˜๊ธด ํ•˜์ง€๋งŒ ์‚ฌ์šฉํ•˜๊ธฐ ๊นŒ๋‹ค๋กœ์šด๋ฐ๋‹ค ์ปดํŒŒ์ผ์‹œ๊ฐ„์„ ๋” ๋Š˜๋ ค์ฃผ๊ณ , ๊ทธ๋‹ค์ง€ ํšจ์œจ์ ์ด์ง€ ์•Š๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ๋”๊ตฐ์š”. ์ œ ๊ฒฝ์šฐ๋Š” lua์— ๋ฐ˜์˜ํ•  ์š”์†Œ๋“ค์„ ๋ชจ๋‘ struct๋กœ๋งŒ ๊ตฌํ˜„ํ•˜๊ณ , ํ•„์š”ํ•˜๋‹ค๋ฉด struct๋ผ๋ฆฌ ์ƒ์†์‹œํ‚ต๋‹ˆ๋‹ค. (์ƒ์„ฑ์ž, ์†Œ๋ฉธ์ž์ •๋„๋งŒ ์ค๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฉ”์†Œ๋“œ๋Š” ์™ ๋งŒํ•˜๋ฉด ์ง€์–‘ํ•ฉ๋‹ˆ๋‹ค!) ๊ทธ๋Ÿฐ๋‹ค์Œ ์ตœ์ข… ๋ฐ˜์˜๋  ํ•จ์ˆ˜๋“ค์€ ๋ชจ๋‘ C ํ•จ์ˆ˜๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. (.property์— ๋ถ™์ผ ํ•จ์ˆ˜๋“ค์€ ์ตœ์ข… ์ƒ์†๋œ struct๋‚ด์— ์ž‘์„ฑํ•ด์ค๋‹ˆ๋‹ค.)

์–ด์จŒ๋“  ๋Œ€๋ถ€๋ถ„์˜ ํด๋ž˜์Šค๋“ค์€ ์œ„์™€ ๊ฐ™์€ ํ˜•ํƒœ๊ฐ€ ๋  ์ˆ˜ ๋ฐ–์— ์—†์Šต๋‹ˆ๋‹ค. ๋ฐ”์ธ๋”ฉ์— ๋งž์ถ”์–ด ํด๋ž˜์Šค ๋””์ž์ธ์ด ํ•œ๊ณ„๊ฐ€ ์˜จ๋‹ค๊ณ ๋‚˜ ํ• ๊นŒ... ๊ฐ‘๊ฐ‘ํ•œ ๋ถ€๋ถ„์ด๊ฒ ์ฃ .

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