[FSM, ¸ó½ºÅÍ ÀΰøÁö´ÉÀÇ ±¸Çö]

- ¿ìÁ¾ÇÏ(deepseas(AT)sogang.ac.kr)

 


    - ¸¶¿ì½º·Î È­¸éÀ» Ŭ¸¯ÇÑ ÈÄ Å°º¸µå·Î Ç÷¹À̾î Á¶Á¤

    - ¼Ò½ºÄÚµå [Down]

    - ÀÚ¹Ù Runtime [Down] : ¾ÖÇø´ÀÌ ½ÇÇàÀÌ ¾ÈµÉ °æ¿ì ¼³Ä¡, ¼³Ä¡ÈÄ ÀͽºÇ÷ξî Àç½ÇÇà

 

FSM(Finite State Machine) - °ÔÀÓ ÀΰøÁö´ÉÀÇ ÀüÅëÀûÀÎ ¹æ¹ý

°ÔÀÓ¿¡¼­ ÀûµéÀÇ ¿òÁ÷ÀÓÀ» ÀΰøÁö´ÉÀûÀ¸·Î ±¸ÇöÇϱâ À§ÇØ ±âÁ¸ÀÇ °ÔÀӵ鿡¼­ ÀÚÁÖ »ç¿ëµÇ´ø ¹æ¹ýÁß Çϳª°¡ ¹Ù·Î FSM, ÁïÀ¯ÇÑ»óűâ°èÀÌ´Ù. FSMÀº ¿À·¡ÀüºÎÅÍ ´Ù¾çÇÑ ¹æ¹ýÀ¸·Î ³Î¸® ¾²¿©¿Â ÄÄÇ»ÅͰøÇÐ / ¼öÇÐÀû °³³äÀε¥, ¿ë¾î ¶æ ±×´ë·Î À¯ÇÑÇÑ °³¼öÀÇ »óŵé·Î ±¸¼ºµÈ ÇϳªÀÇ °£´ÜÇÑ ±â°è¸¦ ¸»ÇÑ´Ù. ¿©±â¼­ ÇϳªÀÇ »óÅÂ(State)¶ó´Â °ÍÀº ±×³É ÇϳªÀÇ Á¶°ÇÀ» ¶æÇÑ´Ù°í »ý°¢ÇÏ¸é µÈ´Ù.

FSMÀº Å©°Ô ÇöÀç»óÅÂ, ÀÔ·Â, Ãâ·Â»óÅÂ, ÀüÀÌÇÔ¼öÀÇ 4°¡Áö ¿ä¼Ò·Î ³ª´­ ¼ö ÀÖ´Ù. ÇöÀç»óÅ´ ¸»±×´ë·Î ÇöÀç FSMÀÇ »óŸ¦ ¸»Çϰí, ÀÔ·ÂÀº FSM¿¡ µé¾î¿Â ÀÔ·ÂÁ¤º¸, Ãâ·Â»óÅ´ ´ÙÀ½ ´Ü°èÀÇ »óÅÂ, ÀüÀÌÇÔ¼ö´Â ÀÔ·ÂÁ¤º¸¿Í ÇöÀç»óŸ¦ ±â¹ÝÀ¸·Î Ãâ·Â»óŸ¦ °áÁ¤ÇÏ´Â ÇÔ¼ö¶ó ÇÒ ¼ö ÀÖ´Ù.

¿ä¾àÇÏÀÚ¸é, FSMÀ̶ó´Â °ÍÀº À¯ÇÑÇÑ °³¼öÀÇ »óŵéÀ» °¡Áø ÇϳªÀÇ ±â°èÀ̰í, ±× »óŵé Áß Çϳª°¡ ÇöÀç »óÅÂÀÎ °ÍÀÌ´Ù. FSMÀº ÀÔ·ÂÀ» ¹Þ°í ¾î¶°ÇÑ »óÅÂÀüÀÌÇÔ¼ö¿¡ ±â¹ÝÇØ¼­ ÇöÀç»óÅ·κÎÅÍ Ãâ·Â»óÅ·ÎÀÇ »óÅÂÀüÀ̸¦ ÀÏÀ¸Å²´Ù. ±×¸®°í Ãâ·Â»óÅ´ »õ·Î¿î ÇöÀç »óŰ¡ µÈ´Ù. ÄÄÇ»ÅÍ ¿ª½Ã Å©°Ô º¸¸é FSMÀÇ ÇÑ ¿¹¶ó ÇÒ ¼ö ÀÖ´Ù.

 

FSMÀ» »ç¿ëÇÑ ¸ó½ºÅÍÀÇ Çൿ ÀΰøÁö´É

ÀÌ·±ÇÑ FSMÀº °ÔÀÓ³»¿¡¼­ ÀΰøÁö´ÉÀ» ±¸ÇöÇϱâ À§ÇØ ´Ù¾çÇÏ°Ô »ç¿ëµÉ ¼ö Àִµ¥, ±× Áß ´ëÇ¥ÀûÀÎ »ç¿ë¿¹°¡ Àû ¸ó½ºÅÍÀÇ ÇൿÀ» °áÁ¤ÇÏ´Â ÀΰøÁö´ÉÀÇ ±¸ÇöÀ̶ó ÇÒ ¼ö ÀÖ´Ù. FSMÀÇ °¢°¢ÀÇ »óŸ¦ ¸ó½ºÅÍÀÇ °¨Á¤ÀÌ¶ó¼­ Çϸé, ÀÌ´Â ÇöÀç »óÅÂ¿Í FSMÀ¸·ÎÀÇ ÀԷ¿¡ µû¶ó º¯Çϸç, ¾î¶² ½ÄÀ¸·Î º¯ÇÒ °ÍÀÎÁö´Â »óÅÂÀüÀÌ ±ÔÄ¢µé¿¡ ÀÇÇØ °áÁ¤µÈ´Ù. ¸ó½ºÅÍÀÇ °¨Á¤¿¡ ±â¹ÝÇØ¼­ ¼­·Î ´Ù¸¥ ÇൿÀ» ¼öÇàÇÏ´Â Äڵ带 ¸¸µé¸é ¸ó½ºÅͰ¡ ¸¶Ä¡ °¨Á¤À» °¡Áø ½ÇÁ¦ ±«¹°Ã³·³ ¿òÁ÷ÀÌ°Ô µÉ °ÍÀÌ´Ù.

º¹ÀâÇÑ Ä³¸¯ÅͶó¸é ÈξÀ ´õ ¸¹Àº »óŵé°ú ÀԷµé, ±×¸®°í »óÅÂÀüÀÌ ±ÔÄ¢µéÀ» °¡Áú °ÍÀÌ´Ù. ¾î¶² »óŵé°ú ÀԷµéÀ» ±¸ºÐÇÒ °ÍÀÌ¸ç ±×°ÍµéÀÌ ¾î¶² ¹æ½ÄÀ¸·Î ÀüÀÌµÉ °ÍÀÎÁö¸¦ °áÁ¤ÇÏ´Â °ÍÀÌ ¹Ù·Î FSM¿¡ ±â¹ÝÇÑ ÀΰøÁö´ÉÀ» ¸¸µå´Â ±âº»ÀûÀÎ °úÁ¤ÀÌ´Ù.

 

½ÇÁ¦ FSMÀÇ °ÔÀÓ ÀΰøÁö´É ±¸Çö, FSM Monster Hunter

À§ÀÇ ¹æ¹ýÀ» »ç¿ëÇØ¼­ °£´ÜÇÑ °ÔÀÓÀ» ¸¸µé¾î º¸¾Ò´Ù. Java AppletÀ» ±â¹ÝÀ¸·Î ÀÛ¼ºÇÏ¿´°í, °ÔÀÓÀÇ ¸ñÀûÀº Ç÷¹À̾ Á¶Á¤Çؼ­ ¸ó½ºÅ͸¦ ¹°¸®Ä¡´Â °ÍÀÌ´Ù. À̶§ ¸ó½ºÅÍÀÇ ¿òÁ÷ÀÓÀ» ¸ó½ºÅÍÀÇ ÇöÀç»óÅ¿¡ µû¶ó °áÁ¤µÈ´Ù. ¸ó½ºÅÍÀÇ »óÅÂ¿Í ±×¿¡µû¸¥ ÇൿÀº ´ÙÀ½°ú °°´Ù

     REST(¾ÈÁ¤)   - ·£´ýÇÏ°Ô ¿òÁ÷ÀÌ¸ç °ø°ÝÀ» ÇÏÁö ¾Ê´Â´Ù
     ANGRY(È­³²) - À̵¿¼Óµµ°¡ µÎ¹è·Î »¡¶óÁø´Ù. ³ª¸ÓÁø REST¿Í µ¿ÀÏ
     RAGE(ºÐ³ë)   - Ç÷¹À̾ ÁÖº¯¿¡ ÀÖÀ¸¸é °ø°Ý¼öÇà. ¾ø´Ù¸é Ç÷¹À̾ ÇâÇØ À̵¿. À̵¿¼Óµµ´Â µÎ¹è
 

ÇöÀç»óȲ, Áï FSMÀÇ ÀÔ·ÂÀº ´ÙÀ½°ú °°´Ù

     Ç÷¹À̾î Á¢±Ù     - Ç÷¹À̾ ¸ó½ºÅÍ ±Ùó¿¡ ÀÖÀ½
     Ç÷¹ÀÌ¾î ¸Ö¾îÁü   - Ç÷¹À̾ ¸ó½ºÅÍ¿¡°Ô¼­ ¶³¾îÁ® ÀÖÀ½
     Ç÷¹ÀÌ¾î °ø°Ý      - Ç÷¹À̾ ¸ó½ºÅÍ¿¡°Ô °ø°Ý
 

À̸¦ ÀÌ¿ëÇØ »óÅÂÀüÀ̰úÁ¤À» µµÇ¥·Î ±×¸®¸é ´ÙÀ½°ú °°´Ù

                      

 

[Âü°íÀÚ·á]

    - Game Programming Gems 1±Ç, p.319 ~ p.332

 

[1]