°¡. ÇÁ·ÎÁ§Æ® ·¹ÄÚµå

ºñ½Áºñ½ÁÇÑ ¿©·¯ Á¾·ùÀÇ ÇÁ·Î±×·¥À» ºÐ¼®Çغ¸¸é ¸ðµç ¸é¿¡¼­ ´Ù ÁÁÀº ÇÁ·Î±×·¥Àº ¹«Ã´ µå¹°°í °¢°¢ Àå´ÜÁ¡À» °¡Áö°í ÀÖ´Ù. ÆíÁý±âµéµµ ¾î¶² ±â´ÉÀº ¾ÆÁÖ ±âº»ÀûÀÎ ¼öÁØÀ̰ųª ¾Æ´Ï¸é »ó´ëÀûÀ¸·Î ¶³¾îÁö´Â ±â´ÉÀÌ ÀÖ´Â ¹Ý¸é ´Ù¸¥ ÆíÁý±â¿Í È®½ÇÇÏ°Ô ±¸ºÐµÇ´Â Àڱ⸸ÀÇ Àå±â¸¦ Çϳª¾¿Àº °¡Áö°í ÀÖ´Ù. ¼ÖÁ÷È÷ ´ç±ÙÀÇ ¸ðµç ±â´ÉÀº ´ëü·Î ±âº» ÀÌ»óÀÇ ¼º´ÉÀ» Á¦°øÇÏÁö ¸øÇÏ°í °Ü¿ì ±â´ÉÀ» Á¦°øÇÏ´Â Á¤µµ¿¡¸¸ ±×Ä¡°í ÀÖÁö¸¸ ±×·¡µµ ´Ù¸¥ ÆíÁý±â¿¡ ºñÇØ »ó´ëÀûÀ¸·Î °­ÇÑ ±â´ÉÀÌ Çϳª Àִµ¥ ¹Ù·Î ¿©±â¼­ ¸¸µé ÇÁ·ÎÁ§Æ® ±â´ÉÀÌ´Ù.

ÇÁ·ÎÁ§Æ®¶õ °£´ÜÈ÷ ¸»ÇØ °ü·Ã ÀÖ´Â ÆÄÀϵéÀÇ ÁýÇÕÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù. À¥ »çÀÌÆ®¸¦ Çϳª ¸¸µé°í ÀÖ´Ù¸é ¼ö¸¹Àº HTML ÆÄÀÏ°ú DB ½ºÅ©¸³Æ®, ASP³ª PHP ½ºÅ©¸³Æ®, ÀÛ¾÷ °èȹ¼­ µîÀÌ ¿©·¯ Æú´õ¿¡ Èð¾îÁ® Á¸ÀçÇÏ°Ô µÇ´Âµ¥ ÀÌ·± ÆÄÀϵéÀÇ ¸ñ·ÏÀ» ÇÁ·ÎÁ§Æ®·Î ÀÛ¼ºÇسõÀ¸¸é ÆÄÀÏÀ» °ü¸®ÇϱⰡ ÇÑ°á Æí¸®ÇØÁø´Ù. ºñÁÖ¾ó ½ºÆ©µð¿ÀÀÇ ¼Ö·ç¼Ç(6.0¿¡¼­´Â ¿öÅ© ½ºÆäÀ̽º)ÀÌ ÇÁ·ÎÁ§Æ®ÀÇ ´ëÇ¥ÀûÀÎ ¿¹Àε¥ ÇϳªÀÇ ¸ðµâÀ» ¸¸µå´Âµ¥ ÇÊ¿äÇÑ CPP, H, RC, °¢Á¾ ¸®¼Ò½ºµéÀ» ÇϳªÀÇ À̸§À¸·Î ¹­¾î ³õ¾Æ °ü¸®Çϱâ Æí¸®ÇÏ´Ù.

ÇÁ·ÎÁ§Æ® ÆÄÀÏÀº ¼Ò¼Ó ÆÄÀÏÀÇ ¸ñ·ÏÀ» °¡Áö´Â Á¤º¸ ÆÄÀÏÀ̸ç ÇÁ·ÎÁ§Æ®¿¡ ´ëÇÑ Á¤º¸ ¹× ¼Ò¼Ó ÆÄÀÏÀÇ À̸§°ú °æ·Î°¡ ÀúÀåµÈ´Ù. ºñÁÖ¾ó ½ºÆ©µð¿ÀÀÇ sln ÆÄÀÏ(6.0¿¡¼­´Â dswÆÄÀÏ)ÀÌ ÇÁ·ÎÁ§Æ® ÆÄÀÏÀÇ ¿¹ÀÌ´Ù. ´ç±ÙÀÇ ÇÁ·ÎÁ§Æ® ÆÄÀÏÀº È®ÀåÀÚ DGP(DanGeun Project)¸¦ °¡Áø´Ù. ´Ü¼øÈ÷ ¼Ò¼Ó ÆÄÀÏÀÇ Á¤º¸°¡ ³ª¿­µÇ¾î ÀÖ´Â °£´ÜÇÑ ±¸Á¶°¡ ¾Æ´Ï¸ç ÇÁ·ÎÁ§Æ® ³»¿¡¼­ ³ª¸§´ë·ÎÀÇ °èÃþÀ» ±¸¼ºÇϴµ¥ ¿ì¼± ±× Æ÷¸ËºÎÅÍ ¼³°èÇغ¸ÀÚ. ÇÁ·ÎÁ§Æ®´Â ÇϳªÀÇ Çì´õ¿Í º¹¼ö °³ÀÇ ·¹ÄÚµå·Î ±¸¼ºµÇ´Âµ¥ ÀÏ´Ü ´ÙÀ½ µÎ ±¸Á¶Ã¼¸¦ Dangeun.cpp¿¡ ¼±¾ðÇÏÀÚ.

 

enum {DGP_SUB=1, DGP_FILE, DGP_FOLDER};

 

struct ProjectHeader

{

     TCHAR Text[64];

     int Ver;

     TCHAR Name[32];

     TCHAR Desc[128];

     BOOL bAbsolute;

};

 

struct ProjectRecord

{

     int Parent;

     BYTE Type;

     TCHAR Path[400];

};

 

ProjectHeader¿¡´Â ÇÁ·ÎÁ§Æ® Àü¹Ý¿¡ °ÉÄ£ °£´ÜÇÑ Á¤º¸°¡ µé¾î°¡¸ç ÇÁ·ÎÁ§Æ® Çϳª´ç Çϳª¾¿ÀÇ Çì´õ¸¦ °¡Áø´Ù. Text´Â ÇÁ·ÎÁ§Æ® ÆÄÀÏÀÓÀ» ¾Ë¸®´Â ¾È³»¹®À» ³Ö´Âµ¥ ÀÌ´Â ´Ù¸¥ ÅؽºÆ® ÆíÁý±â·Î ÇÁ·ÎÁ§Æ® ÆÄÀÏÀ» ¿­¾úÀ» ¶§ ¾î¶² Á¾·ùÀÇ ÆÄÀÏÀÎÁö ¾Ë¸®±â À§ÇØ ÇÊ¿äÇÏ´Ù. ÇÁ·ÎÁ§Æ® ÆÄÀÏÀº ÀÌÁø Æ÷¸ËÀ¸·Î µÇ¾î ÀÖÀ¸¹Ç·Î ¾ÕÂÊ¿¡ º°µµÀÇ ¼³¸í ÅؽºÆ®¸¦ ÀÛ¼ºÇÏ¿´´Ù.

VerÀº ÇÁ·ÎÁ§Æ® ÆÄÀÏÀÇ ¹öÀüÀ̸ç 100À¸·Î ÃʱâÈ­µÈ´Ù. ÀÌ ¹öÀüÀº ÇÁ·ÎÁ§Æ® ÆÄÀÏÀÇ ±¸Á¶¸¦ ¼³¸íÇϱâ À§ÇØ ºÙÀÌ´Â °ÍÀ̹ǷΠ´ç±ÙÀÇ ¹öÀü°ú´Â ±»ÀÌ ÀÏÄ¡½Ãų ÇÊ¿ä°¡ ¾ø´Ù. ´ç±ÙÀÌ 1.2³ª 1.5·Î ¾÷±×·¹À̵åµÇ´õ¶óµµ ÇÁ·ÎÁ§Æ®ÀÇ Æ÷¸ËÀÌ ¹Ù²îÁö ¾ÊÀ¸¸é ÀÌ ¹öÀüÀº ¿©ÀüÈ÷ 1.0À¸·Î À¯ÁöµÈ´Ù. ¸¸¾à ´ç±Ù 2.0¿¡¼­ ÇÁ·ÎÁ§Æ® ±â´ÉÀÌ º¸°­µÇ¾î Æ÷¸ËÀÌ ¹Ù²ï´Ù¸é ±×¶§ ÇÁ·ÎÁ§Æ® ÆÄÀÏÀÇ ¹öÀüÀÌ ¿Ã¶ó°¥ °ÍÀ̸ç ÀÌ Æ÷¸ËÀº ´ç±Ù 1.0¿¡¼­ ÀÐÁö ¸øÇÒ °ÍÀÌ´Ù. ÇÏÀ§ ȣȯ¼ºÀ» À¯ÁöÇÏÁö ¸øÇÒ Á¤µµ·Î Æ÷¸ËÀÌ ¹Ù²ð ¶§ ÇÏÀ§ ¹öÀü¿¡¼­ ¿¡·¯ 󸮸¦ Á¦´ë·Î Çϱâ À§ÇØ ¹öÀü Á¤º¸°¡ ¹Ýµå½Ã ÇÊ¿äÇÏ´Ù.

NameÀº ÇÁ·ÎÁ§Æ®ÀÇ À̸§Àε¥ ±â¾ïÇϱ⠽¬¿î ÀÓÀÇÀÇ À̸§À» ºÙÀÏ ¼ö ÀÖ´Ù. ÀÌ À̸§Àº ÇÁ·ÎÁ§Æ®°£ÀÇ ±¸ºÐÀ» À§ÇØ »ç¿ëµÇ¸ç ÇÁ·ÎÁ§Æ®¸¦ ´ëÇ¥ÇÏ´Â À̸§ÀÌ µÈ´Ù. Desc´Â ´Ü¼øÇÑ ¼³¸í¿¡ ºÒ°úÇÏ¸ç º°´Ù¸¥ ±â´ÉÀº ¾ø´Ù. ¸¶Áö¸· ¸â¹öÀÎ bAbsolute´Â ´Ù¼Ò ¼³¸íÀÌ ÇÊ¿äÇѵ¥ ¼Ò¼Ó ÆÄÀÏÀÇ °æ·Î¸¦ ¾î¶»°Ô ±â¾ïÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤ÇÏ´Â ÇÁ·ÎÁ§Æ® ¿É¼Ç°ªÀÌ´Ù. ÀÌ °ªÀÌ TRUEÀÌ¸é ¼Ò¼Ó ÆÄÀÏÀÇ °æ·Î¸¦ Àý´ë°æ·Î·Î ÀúÀåÇÏ°í FALSEÀÌ¸é °¡´ÉÇÑ ÇÑ ÇÁ·ÎÁ§Æ® ÆÄÀÏÀÇ À§Ä¡¸¦ ±âÁØÀ¸·Î ÇÑ »ó´ë°æ·Î·Î ÀúÀåÇÑ´Ù.

Àý´ë°æ·Î·Î ÀúÀå½Ã ÇÁ·ÎÁ§Æ® ÆÄÀÏÀ» ¾îµð·Î ¿Å±âµçÁö ¼Ò¼Ó ÆÄÀÏÀ» °è¼Ó ÂüÁ¶ÇÒ ¼ö ÀÖ´Ù. ¹Ý¸é ¼Ò¼Ó ÆÄÀÏÀÇ À§Ä¡°¡ ¹Ù²î¸é ÇÁ·ÎÁ§Æ®°¡ ±â¾ïÇÏ°í ÀÖ´Â Àý´ë°æ·Î·Î´Â ´õ ÀÌ»ó ÆÄÀÏÀ» ÂüÁ¶ÇÒ ¼ö ¾ø°Ô µÈ´Ù. »ó´ë°æ·Î·Î ÀúÀå½Ã ÇÁ·ÎÁ§Æ®¿Í ±× ÇÏÀ§ Æú´õÀÇ ÆÄÀϵéÀÌ °°ÀÌ ¿òÁ÷¿©µµ ÂüÁ¶ °¡´ÉÇÏ´Ù´Â ÀåÁ¡ÀÌ ÀÖ´Â ¹Ý¸é ¸ðµç ÆÄÀÏÀÇ °æ·Î°¡ ÇÁ·ÎÁ§Æ® ÆÄÀÏÀÌ ÀÖ´Â À§Ä¡¸¦ ±âÁØÀ¸·Î ÇϹǷΠÇÁ·ÎÁ§Æ® ÆÄÀϸ¸ ´Üµ¶À¸·Î ¿òÁ÷ÀÏ ¼ö ¾ø´Ù´Â ´ÜÁ¡ÀÌ ÀÖ´Ù.

ÇÑ ÇÁ·ÎÁ§Æ®¸¦ ±¸¼ºÇÏ´Â ÆÄÀϵéÀº º¸Åë ÇϳªÀÇ ÇÁ·ÎÁ§Æ® ·çÆ® ¾Æ·¡¿¡ ¸ð¿© ÀÖ´Â °æ¿ì°¡ ¸¹°í ¼Ò¼Ó ÆÄÀϵéÀÇ »ó´ëÀûÀÎ À§Ä¡°¡ º¯ÇÏ´Â °æ¿ì´Â °ÅÀÇ ¾ø´Ù. ¹Ý¸é ÇÁ·ÎÁ§Æ® ·çÆ® Æú´õ¸¦ Åë°·Î ´Ù¸¥ À§Ä¡·Î ¿Å±â´Â °æ¿ì´Â Á¾Á¾ ÀÖ´Ù. ±×·¡¼­ ¿©·¯ ¸ð·Î º¼ ¶§ »ó´ë°æ·Î·Î ÀúÀåÇÏ´Â °ÍÀÌ À¯¸®Çϸç bAbsolute ¿É¼ÇÀÇ µðÆúÆ®°ªÀº FALSEÀÌ´Ù.

ProjectRecord ±¸Á¶Ã¼´Â ¼Ò¼Ó ÆÄÀÏ ÇϳªÀÇ Á¤º¸¸¦ °¡Áø´Ù. ÇÁ·ÎÁ§Æ®³»ÀÇ ¼Ò¼Ó ÆÄÀϵéÀº ÆÄÀÏ ½Ã½ºÅÛó·³ °èÃþ °ü°è¸¦ ÀÌ·ê ¼ö Àִµ¥ ÇÏÀ§ ¹­À½À» ¸¸µé°í ÀÌ ¹­À½¾È¿¡ °ü·ÃµÈ ÆÄÀÏÀ» µÑ ¼ö ÀÖ´Ù. ÇÏÀ§ ¹­À½À̶ó´Â °³³äÀº ÆÄÀÏ ½Ã½ºÅÛÀÇ Æú´õ¿Í µ¿ÀÏÇÑ °³³äÀ̸ç ÇÏÀ§ ¹­À½ ¾È¿¡ ÆÄÀÏÀ̳ª ¶Ç ´Ù¸¥ ÇÏÀ§ ¹­À½ÀÌ Æ÷Ç﵃ ¼ö ÀÖ´Ù. °èÃþÀÇ ±íÀÌ¿¡´Â Á¦ÇÑÀÌ ¾øÀ¸¹Ç·Î ÇÏÀ§ ¹­À½À» ¹«ÇÑ´ë±îÁö ¸¸µé ¼ö ÀÖ´Ù.

Parent´Â ÀÌ·± °èÃþ ±¸Á¶¿¡¼­ ·¹ÄÚµåÀÇ À§Ä¡¸¦ ÁöÁ¤Çϴµ¥ -1ÀÌ¸é ·çÆ® ¹Ù·Î ¾Æ·¡¿¡ ÀÖ´Â °ÍÀÌ°í 0ÀÌ»óÀ̸é ÀÌ ¹øÈ£°¡ °¡¸®Å°´Â ·¹ÄÚµåÀÇ ÇÏÀ§ ¹­À½¿¡ ¼Ò¼ÓµÈ´Ù. TypeÀº ·¹ÄÚµåÀÇ Á¾·ù¸¦ ³ªÅ¸³»´Âµ¥ 1À̸é ÇÏÀ§ ¹­À½, 2À̸é ÆÄÀÏ, 3À̸é Æú´õ ¸µÅ©ÀÌ´Ù. ¸¶Áö¸· ¸â¹öÀÎ Path´Â ¼Ò¼Ó ÆÄÀÏÀÇ °æ·ÎÀε¥ FTP, HTTP ÆÄÀϵµ Æ÷Ç﵃ ¼ö ÀÖÀ¸¹Ç·Î ±æÀ̸¦ Á» ±æ°Ô Àâ¾Ò´Ù. ÇÁ·ÎÁ§Æ® ·¹ÄÚµåÀÇ ¿¹¸¦ µé¾î º¸ÀÚ.

¡®³ªÀÇ ÅؽºÆ®¡¯¶ó´Â ÇÁ·ÎÁ§Æ®¿¡ ¿©¼¸ °³ÀÇ ·¹Äڵ尡 Àִµ¥ µÎ °³ÀÇ ÇÏÀ§ ¹­À½°ú ¼¼ °³ÀÇ ÆÄÀÏÀÌ Æ÷ÇԵǾî ÀÖ´Ù. ¡®ÇÒÀÏ ¸ñ·Ï.txt¡¯´Â ·çÆ® ¹Ù·Î ¾Æ·¡¿¡ ÀÖ´Â ÆÄÀÏÀ̹ǷΠParent´Â -1À̸ç TypeÀº 2ÀÌ´Ù. ¡®ÆíÁö¡¯¿Í ¡®Àϱ⡯´Â ·çÆ® ¹Ù·Î ¾Æ·¡ÀÇ ÇÏÀ§ ¹­À½À̹ǷΠParent´Â -1ÀÌ°í TypeÀº 1ÀÌ´Ù. ¡®°³¶ËÀÌ¿¡°Ô.txt¡¯´Â 1¹ø ÇÏÀ§ ¹­À½ÀÎ ¡®ÆíÁö¡¯¿¡ ¼Ò¼ÓµÇ¾î ÀÖÀ¸¹Ç·Î Parent°¡ 1¹øÀ» °¡¸®Å°°í ÀÖ´Ù. ÀÌ·± ½ÄÀ¸·Î ·¹ÄÚµå ¹è¿­·Î ÀÔüÀûÀÎ Æ®¸®¸¦ Ç¥ÇöÇϴµ¥ ÀÌ ±â¹ýÀº µ¥ÀÌÅÍ º£À̽º¿¡¼­µµ ÈçÈ÷ »ç¿ëµÇ´Â ¹æ¹ýÀÌ´Ù.

Æú´õ ¸µÅ©¶ó´Â °³³äÀº À©µµ¿ìÁîÀÇ ¹Ù·Î°¡±â(ShortCut) °³³ä°ú À¯»çÇÏ´Ù. ÇÁ·ÎÁ§Æ®´Â Æú´õÀÇ °æ·Î¿¡ ´ëÇÑ Á¤º¸¸¸ °¡Áö°í ÀÖÀ¸¸ç ÀÌ Æú´õ¸¦ ¿­¸é ½ÇÁ¦ ÆÄÀÏ ½Ã½ºÅÛÀÇ Æú´õ¿¡¼­ ÆÄÀÏ°ú ¼­ºêÆú´õÀÇ ¸ñ·ÏÀ» °¡Á®¿Â´Ù. ÇÁ·ÎÁ§Æ®¸¦ ±¸¼ºÇÏ´Â ¿ä¼ÒµéÀÌ ÇÑ Æú´õ¿¡ ÀÖ´Ù¸é Æú´õÀÇ ÆÄÀϵéÀ» ÇÁ·ÎÁ§Æ®¿¡ Æ÷ÇÔ½ÃÅ°´Â °Íº¸´Ù´Â Æú´õÀÇ ¸µÅ©¸¦ Æ÷ÇÔ½ÃÅ°´Â °ÍÀÌ ´õ ÁÁ´Ù.