์น๊ตฌ๋ฅผ ๋นํํ๋ ๊ฒ์ด ๋ง์ ์ํ ๋๋ ๋นํํด๋ ์ข๋ค. ๊ทธ๋ฌ๋ ๊ฑฐ๊ธฐ์ ์กฐ๊ธ์ด๋ผ๋ ์ฆ๊ฑฐ์์ ๋๋ ๋๋ ์
์ ๋ค๋ฌด๋ ๊ฒ์ด ์์ฑ
. โJ.R.
๏ปฟ * ์ฐธ์กฐ๋งํฌ :
http://www.c2.com/cgi/wiki?ModularProgramming
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๋ด์ ์์ฑํด์ค๋๋ค.)
์ด์จ๋ ๋๋ถ๋ถ์ ํด๋์ค๋ค์ ์์ ๊ฐ์ ํํ๊ฐ ๋ ์ ๋ฐ์ ์์ต๋๋ค. ๋ฐ์ธ๋ฉ์ ๋ง์ถ์ด ํด๋์ค ๋์์ธ์ด ํ๊ณ๊ฐ ์จ๋ค๊ณ ๋ ํ ๊น... ๊ฐ๊ฐํ ๋ถ๋ถ์ด๊ฒ ์ฃ .








