ÅëÇÕ°Ë»ö
¡¤ ¸¶À»¼­ºñ½º¶õ?  ¡¤ Æ÷·³¸¶À»  ¡¤ ÀϹݸ¶À»  ¡¤ Å׸¶¸¶À»  ¡¤ ¸¶À»·©Å·  ¡¤ Ȱµ¿¿Õ
¡¤ µ¦½ºÆÛÆ®¶õ?  ¡¤ TECBOX   ¡¤ PRSBOX   ¡¤ ÀÌ¿ë¾È³»  
¡¤ DEXTÁ¦Ç°±º  ¡¤ ³»ºÎÅëÁ¦½Ã½ºÅÛ  ¡¤ ¼Ö·ç¼Çº£ÀÌ  ¡¤ S/W & ESD ÄÄÆ÷³ÍÆ®
¡¤ ¾ÆÀÌÆ¼Æ®·£µå  ¡¤ Á¦ÈÞ¹®ÀÇ  ¡¤ Event Mall
¡¤ ImDev-¸®Äí¸£ÆÃ  ¡¤ ImDev-¾Æ¿ô¼Ò½Ì  ¡¤ ´å³ÝÄÁ¼³ÆÃ
¡¤ IT °úÁ¤  ¡¤ DOT Zone
¡¤ LiveSeminar  ¡¤ LiveConference
Visual C++ Æ÷·³¸¶À» ÀÔ´Ï´Ù.
  ¸¶À»µî±Þ Visual C++   ÀÌ ¸¶À»Àº Æ÷·³¸¶À» ÀÔ´Ï´ÙÀÌ ¸¶À»Àº ÀÚÀ¯°¡ÀÔÁ¦ ¸¶À» ÀÔ´Ï´Ù ¸¶À»¼Ò°³ ÆäÀÌÁö·Î À̵¿ ÀüÀÔ½Åû
¸¶À»ÃÌÀåÃÌÀå ³ª¼ºÈÆ ÁֹΠ31566 since 2006-12-29
¿ì¸®¸¶À» °øÁö»çÇ×
Áú¹®&´äº¯
°­ÁÂ&ÆÁ
ÀÚÀ¯°Ô½ÃÆÇ
ÀÚ·á½Ç
¾Ù¹ü
°³ÀÎ°Ô½ÃÆÇ
¸¶À» °Ô½ÃÆÇ
µî·ÏµÈ ¸¶À» °Ô½ÃÆÇÀÌ
¾ø½À´Ï´Ù.
¶ûµ¥ºê °Ô½ÃÆÇ
Ä®·³ °Ô½ÃÆÇ
°³¹ßÀÚ °íÃæ»ó´ã
Dev Talk
ÀÚÀ¯Åä·Ð¹æ
º­·è½ÃÀå
À糪¹Ì ¿ì½º°³
  ITÀ̾߱â
  ³ë¶¥¿£Áö´Ï¾îÀÇ ³ëÆ®
  °í°´Áö¿ø °Ô½ÃÆÇ
¸¶ÀÌ µ¥ºêÇǾÆ
 ³ªÀÇ e-Money ³»¿ª
 È°µ¿¿Õ My Page
 ½ºÅ©·¦ÇÑ °Ô½Ã±Ûº¸±â
 ÂÊÁö°ü¸®
 Áּҷϰü¸®
 ÀÏÁ¤°ü¸®

 °­ÁÂ&ÆÁ
 Standard Annotation Language(SAL)À» ÀÌ¿ëÇÑ ¹öÆÛ¿À¹ö·± ¹æÁö ±â¼ú 1  | VC++ ÀÏ¹Ý 2007-09-03 ¿ÀÈÄ 8:38:38
±è¿ëÇö (kyh2984@hotmail.com)  ±è¿ëÇö´Ô²² ¸Þ½ÃÁö º¸³»±â±è¿ëÇö´ÔÀ» ³» ÁÖ¼Ò·Ï¿¡ Ãß°¡ÇÕ´Ï´Ù.±è¿ëÇö´ÔÀÇ °³ÀÎ°Ô½ÃÆÇ °¡±â ¹øÈ£: 7756  / ÀÐÀ½:973

ºí·Î±×¿¡ ¾´±ÛÀ» ºÙ¿© ³Ö°í º¸´Ï ±Û¸ð¾ç»õµµ Çϳªµµ ¸Â°í ±×¸²µµ ÀÌ»óÇÏ°í ³­°¨Çϱº¿ä. Ȥ½Ã ´Ù¸¥°÷¿¡ º¹»çÇØ°¡½Ã·Á¸é Á¦ ºí·Î±×¿¡

Àִ°ÍÀ» Âü°í Çϼ¼¿ä. ¿ÀŸµµ ¸¹ÀÌ º¸À̴µ¥ ¼öÁ¤ÇϰڽÀ´Ï´Ù.

 

 

 static_cast¿Í c typeÀÇ °­Á¦ castÀÇ Àå´ÜÁ¡Àº ÀÍÈ÷µé ¾Ë°í ÀÖÀ» °ÍÀÌ´Ù. ´Ùµé static_cast¸¦ ½á¶ó¶ó°í °­Á¶ ÇÑ´Ù.

ÄÚµå ÀÛ¼ºÀÚ ÀÔÀå¿¡¼­´Â º°·Î Â÷ÀÌÁ¡ÀÌ ¾ø´Âµ¥ static_cast¸¦ »ç¿ëÇÏ´Â ÀÌÀ¯´Â ¿©·¯°¡Áö°¡ ÀÖ°ÚÁö¸¸, ·±Å¸Àӽÿ¡ ¹ß»ýÇÒ ¼ö ÀÖ´Â

¿À·ù¸¦ ÄÄÆÄÀÏ Å¸ÀÓ¿¡ Àâ¾Æ³» ÁÙ¼ö ÀÖ´Ù´Â°Ô ÇϳªÀÇ ÀÌÀ¯ÀÏ ¼öµµ ÀÖ´Ù.


¼­·Î casting ÇÒ ¼ö »óȲÀÇ °ÍÀÎ °æ¿ì c typeÀÇ cast´Â ¹ö±×ÀÇ °¡´É¼ºÀ» ¸¸µé¾î ÁÖÁö¸¸ static_cast´Â ¾ÈÀüÇÏ°Ô casting ÇØÁְųª

ÄÄÆÄÀÏ Å¸ÀÓ¿¡ ¿À·ù¸¦ ³½´Ù.


call by reference ¹æ¹ýÀ¸·Î´Â reference¸¦ ¾²´Â ¹æ¹ý°ú pointer¸¦ ¾²´Â ¹æ¹ýÀÌ ÀÖ´Ù. »ç½Ç ¹®¹ýÀûÀÎ ¸ð¾ç»õ³ª ±×µ¿¾È¿¡ °ü½ÀÀûÀ¸·Î

¾²ÀÓÀ» ¼±ÅÃÇϰï Çϴµ¥, ¾î¶»°Ô º¸¸é ¿ö³« ±âÃÊÀûÀÎ ºÎºÐÀÌ´Ù¶ó°í »ý°¢ÇÒ ¼ö ÀÖÁö¸¸, ÄÚµùÀÇ ½Å³äÀ̳ª ÀڽŸ¸ÀÇ ÄÚµùÄÁº¥¼ÇÀ»

°¡Áö°í ÀÖÁö ¾ÊÀ¸¸é µÎ°³»çÀÌ¿¡¼­ »ç¿ëÇÔÀÇ ¸Á¼³ÀÓÀ» °®°Ô µÇ´Â °æ¿ì°¡ ÀÖ´Ù.

¿À¸®Áö³Î C ½ÃÀýºÎÅÍ ÀÇ·Ê °ªÀÌ º¯°æµÇ´Â call by reference´Â Æ÷ÀÎÅ͸¦ ÀÌ¿ëÇßÀ¸¹Ç·Î °ªÀÌ º¯°æµÇ´Â OUT ÀÎÀÚÀϰæ¿ì Æ÷ÀÎÅÍ·Î

¼±¾ðÀ» Çϰí, reference´Â ±¸Á¶Ã¼µîÀÇ ÀÎÀÚ Àü´Þ½Ã space complexity¿¡ ÀÌÀ±À» ³²±â±â À§Çؼ­ ¾´´Ù¶ó°í ±â¼úµÇ¾î Àִ åµµ ÀÖ°í,

¾î¶²°ÍÀº Æ÷ÀÎÅÍÀÇ ´ÜÁ¡À» ³ª¿­Çϸç ÁÖ·Î reference¸¦ ½á¶ó ¶ó´Â ¾ÆÆ¼Å¬µµ ÀÖ´Ù.

#define OUT
void foo(OUT Obj& a)
{
 
    a++;
}
void main()
{
    Obj a(0);
    foo(a);
    printf("%d", a.value);
}
 

Àú·± °æ¿ì¿¡ foo ÇÔ¼öÀÇ ÀÎÀÚ´Â call by reference¶ó´Â °ÍÀ» OUTÀ» ÅëÇØ¼­ ¾Ë·ÁÁáÀ¸¹Ç·Î °ü½ÀÀûÀÎ ºÎºÐ¿¡ ¾î´ÀÁ¤µµ ¸éÁ˺ΰ¡

ÀÖ´Ù°í ÇϰڴÙ. ±×¸®°í, pointer¸¦ ³Ñ±è¿¡ ºñÇØ reference´Â ¹Ýµå½Ã ÃʱâÈ­¸¦ ÇØÁà¾ß ÇÑ´Ù´Â Á¶°ÇÀÌ Àֱ⠶§¹®¿¡ NULL üũÁ¤µµ´Â

¾ÈÇØµµ µÇ´Â °£ÆíÇÑ ÀåÁ¡µµ ÀÖ´Ù. ÇÏÁö¸¸ Èʳ¯ °¡µ¶¼ºÀ» À§Çؼ­ Æ÷ÀÎÅ͸¦ ½á¶ó, Èì, ÀÌ·¡¼­ °¥ÆÎ ÁúÆÎ ÇÏ°Ô µÇ´Â °æÇâÀÌ ÀÖ¾ú´ø°Í °°´Ù.

Àú·¸°Ô OUT°ú °°ÀÌ ÁÖ¼®Àº ¾Æ´ÏÁö¸¸, ÇÔ¼ö »ç¿ëÀÚ¿¡°Ô ÈòÆ®¸¦ ÁÖ´Â °ÍÀ» Annotation À̶ó°í ÇÑ´Ù.


C¿¡¼­ ¹®ÀÚ¿­Àº ´Ü¼øÈ÷ ¸¶Áö¸·¿¡ NULL üũ¿¡ ÀÇÁöÇϰí Àֱ⠶§¹®¿¡ ¹öÆÛ¿À¹ö·±À» ¹ß»ý½Ãų ¿äÁö°¡ ¸¹´Ù. ±×¸®°í ÀÌ·± ¹öÆÛ

¿À¹ö·± ¹ß»ýÀº ²À ¸±¸®Áî ÈÄ¿¡ Ä¡¸íÀûÀÎ ÀÏÀÌ ÀÖ°ÔµÈ ÈÄ¿¡ ¾Ë°Ô µÈ´Ù.

¹®ÀÚ¿­ °ü·Ã ÇÔ¼ö¸¦ »ìÆì º¸¸é ÀÌ·¯ÇÑ ¹öÆÛ¿À¹ö·±¿¡ Ãë¾àÇÑ ÇüÅ·Π¼±¾ðµÈ ÇÔ¼öµéÀÌ ¸¹´Ù. ´ÙÀ½ÀÇ strcpy °°Àº°æ¿ì´Â ¹Þ´Â ¹öÆÛÀÇ

Å©±â°¡ ÀÛÀº°æ¿ì ¹®Á¦°¡ ¹ß»ýµÈ´Ù.

char *strcpy(char *strDestination, const char *strSource);
 

±×·¡¼­ ´ÙÀ½°ú °°Àº ¾ÈÀüÇÑ ½ºÆ®¸µ ó¸® ÇÔ¼ö ÇüŰ¡ µîÀåÇß´Ù. (strsafeÇÔ¼ö¿¡ ´ëÇØ¼­´Â ½Å¿µÁø´Ôºí·Î±×¿¡ ±ò²ûÇÑ °­Á°¡ ÀÖ´Ù.)

STRSAFEAPI StringCchCopy(STRSAFE_LPSTR pszDest, size_t cchDest, STRSAFE_LPCSTR pszSrc);
 

ÇÁ·Î±×·¡¸Ó ÀÔÀå¿¡¼­´Â ¹öÆÛÀÇ »çÀÌÁ ¸í½ÃÇØ¼­ Çѹø ´õ °¢¼ºÇÏ°Ô µÇ´Â È¿°ú°¡ ÀÖ´Ù.


À̰ÍÀ» Èä³»³»¾î ´ÙÀ½°ú °°Àº ½ºÆ®¸µ°ªÀ» ¹öÆÛ¿¡ ä¿öÁÖ´Â ÇÔ¼ö¸¦ ¸¸µé¾ú´Ù°í °¡Á¤ÇØ º¸¸é,

void FillChar(TCHAR* buffer, int cchBuf, TCHAR c)
{
	for(int i = 0; i < cchBuf; ++i)
		buffer[i] = c;
}
 

±×¸®°í ´ÙÀ½°ú °°ÀÌ À߸ø »ç¿ëÇß´Ù°í °¡Á¤ÇØ º¸ÀÚ.

TCHAR* buf = (TCHAR*)malloc(128 * sizeof(TCHAR));
FillChar(buf, 256, 'a');
 


sal000.JPG

 

À§È­¸é°ú °°ÀÌ ºñÁÖ¾ó ½ºÆ©µð¿À 2005¿¡¼­ Warning level 4·Î Çϰí ÄÄÆÄÀÏÀ» ÇÑ´Ù°í ÇÏ´õ¶óµµ, ÀÌ ÇÔ¼ö¿¡ ´ëÇÑ ¾Æ¹«·± °æ°í¸¦ ÁÖÁö

¾Ê´Â´Ù. °á±¹ ¸±¸®Áî ÈÄ ¹®Á¦ ¹ß»ýÇÑ ´ÙÀ½¿¡¾ß °ü·Ã ¹öÆÛ¸¦ °Ë»öÇÏ´Ù°¡ ¼öÁ¤ÀÌ µÉ È®·üÀÌ ³ô¾Æ Áø´Ù.


StrSafe.h¿¡ ÀÖ´Â ÇÔ¼öµé ó·³ ±ò²ûÇÏ°Ô ÇÔ¼ö ¼³°è¸¦ ÇÑ´Ù¸é¾ß ÁÁ°ÚÁö¸¸, ÇÁ·Î±×·¡¹ÖÀ» ÇÏ´Ù º¸¸é ÇÔ¼ö¶ó´Â°Ô óÀ½ ¸¶À½¸ÔÀº

ÇüÅ´ë·Î¸¸ ¼±¾ðÀÇ ¸ð¾ç»õ¸¦ °®Ãߴ°ÍÀº ¾î·Æ´Ù.


±×¸®°í ¹«ÇÑÁ¤ ¹æ¾îÄÚµùÀ» ÇØÁÙ¼öµµ ¾ø´Â ³ë¸©ÀÌ´Ù. FillCharÀ̶õ ÇÔ¼ö´Â cchBuf°ª¸¸ ¹®Á¦¾ø´Ù¸é ¿ÀÄÉÀÌÀÎ °£´ÜÇÑ ±â´ÉÀ» Çϱâ

¶§¹®ÀÌ´Ù.


Standard Annotation Language¸¦ »ç¿ëÇϸé cchBuf°ªÀ» ÄÄÆÄÀÏ Å¸ÀÓ¿¡ °Ë»çÇØ ÁÙ ¼ö ÀÖÀ» »Ó ¾Æ´Ï¶ó ¿©·¯°¡ÁöÀÇ ´Ù¾çÇÑ ¹öÆÛ¸¦

´Ù·ç´Â °ËÁõÀ» ÄÄÆÄÀÏ Å¸ÀÓ¿¡ ¼öÇàÇØ ÁÙ ¼ö ÀÖ´Ù. À§¿¡¼­ ¿¹·Îµç cchBuf°ªÀ» ÄÄÆÄÀÏŸÀÓ¿¡ °Ë»çÇÏ´Â SALÀ» Àû¿ëÇÏ¸é ´ÙÀ½°ú

°°ÀÌ ÇÔ¼ö¿¡ AnnotationÀ» Ãß°¡ÇÒ ¼ö ÀÖ´Ù.


#include <sal.h>
void FillChar(__out_ecount(cchBuf) TCHAR* buffer, int cchBuf, TCHAR c)
{
    for(int i = 0; i < cchBuf; ++i)
        buffer[i] = c;
}
 


±×·±µ¥ ¿ä°É ÄÄÆÄÀÏ ÇÏ·Á¸é ¸î°¡Áö ÁغñÇØ¾ß µÉ °ÍµéÀÌ ÀÖ´Ù. ÇÔ²² ¼³Á¤ÇØ º¸µµ·Ï ÇϰڴÙ.

 

¸ÕÀú Visual Studio 2005 Team FoundationÀÌ ÇÊ¿äÇѵ¥, ´ëºÎºÐÀÇ Visual Studio 2005 »ç¿ëÀÚ´Â 2005 team suite ȤÀº professional

´ÜÀϹöÀüÀÌ ±ò·ÈÀ» °ÍÀε¥, ±×·¸´Ù¸é SDK for Vista°¡ ÇÊ¿äÇÏ´Ù. ¾Æ¸¶ ´ëºÎºÐÀÇ °³¹ßÀÚ¶ó¸é SDK for Vista°¡ ±ò·Á ÀÖÀ» °ÍÀ̶ó »ý°¢µÈ´Ù.

 

sal0.JPG


óÀ½ SDK for Vista¸¦ ¼³Ä¡Çß´Ù¸é ±× ´ÙÀ½ Visual Studio¿¡¼­ SDKÀÇ path ¼³Á¤À» ÇØ ÁÖ¾î¾ß ÇÑ´Ù. Tools - Options - Projects and

Solutions - VC++ Directories¿¡ ¼³Ä¡µÈ SDK°¡ °¡Àå À­ÂÊ¿¡ ¹Ý¿µµÇµµ·Ï ¿Ã·ÁÁÖ¾î¾ß Çϴµ¥, ÀÏÀÏÀÌ ¼öµ¿À¸·Î ¼³Á¤ ÇØÁÖÁö ¾Ê¾Æµµ µÈ´Ù.


sal1.JPG

 

À­ ±×¸²¿¡ ÀÖ´Â ¹èÄ¡ÆÄÀÏÀ» ½ÇÇàÇϸé ÀÚµ¿À¸·Î ¼ÂÆÃÇØÁֹǷÎ, ¿¹Àü SDK ±ò°í ¼öµ¿À¸·Î Àû¾î¼­ ¿Ã·ÁÁá´ø ³ë°¡´Ù´Â ÇÏÁö ¾Ê¾Æµµ µÈ´Ù.


±×´ã, Project ¿É¼Ç¿¡¼­ SALÀ» Ȱ¼ºÈ­ ½ÃŰ´Â ¿É¼ÇÀ» ÁÖ¾î¾ß Çϴµ¥ Áö±Ý pc°¡ Team FoundationÀÌ ¾Æ´Ï¶ó¼­, ¿É¼Ç¿¡ ³ª¿ÍÀÖ´Â UI

½º¼¦Àº ÂïÁö ¸øÇϰí, ProfessionalÀ̶ó¸é È­¸é¿¡¼­ ó·³ ¿É¼ÇÀ» Command Line¿¡ ³Ö¾î ÁÖ¸é µÈ´Ù. ¾îÂ¥ÇÇ ÄÄÆÄÀÏÀ̶õ ÀÛ¾÷Àº IDE°¡

cl.exe ¿¡ ¿É¼ÇµéÀ» ÀÎÀÚ·Î ³Ö¾î Áֱ⸸ Çϴ°ÍÀ̹ǷΠcl.exe¸¸ /analyze¸¦ ÀνÄÇÑ´Ù¸é »ó°ü¾ø´Ù.


sal2.JPG


¸¸ÀÏ ´ÙÀ½°ú °°Àº 9040 WarningÀÌ ¶á´Ù¸é È­¸é°ú °°ÀÌ Executable Path¸¦ Ãß°¡ ¼³Á¤ÇØ ÁØ´Ù. À­ ¹®Àå¿¡¼­ ³ÍÁî½Ã ¾ê±â ÇßÁö¸¸

professional ¹öÀüÀÇ cl.exe´Â /analyze ¿É¼ÇÀ» ÀÎÁö ÇÏÁö ¸øÇÑ´Ù. Vista SDK¿¡ ÀÖ´Â cl.exe¸¦ »ç¿ëÇϱâ À§ÇÑ ÀÛ¾÷ÀÌ´Ù.


sal3.JPG


cl : Command line warning D9040 : ignoring option '/analyze'; Code Analysis warnings are not available in this edition 
of the compiler 


sal4.JPG

C:\Program Files\Microsoft SDKs\Windows\v6.0\VC\Bin 


ÀÌÁ¦ À§¿¡ ¸¶·ÃµÈ ¼Ò½º¸¦ ÄÄÆÄÀÏ ÇØº¸¸é 3°³ÀÇ warningÀÌ ¶á´Ù. À߸øµÈ ºÎºÐÀ» Á¦´ë·Î ¤¾î ÁÖ°í ÀÖ´Ù.


sal5.JPG

1>c:\documents and settings\yhkim\my documents\visual studio 2005\projects\testtest\main.cpp(13) : warning C6057: 
Buffer overrun due to number of characters/number of bytes mismatch in call to 'FillChar' 

1>c:\documents and settings\yhkim\my documents\visual studio 2005\projects\testtest\main.cpp(13) : warning C6386: 
Buffer overrun: accessing 'argument 1', the writable size is '128*sizeof(TCHAR)' bytes, but '512' bytes might be written: Lines: 12, 13 


1>c:\documents and settings\yhkim\my documents\visual studio 2005\projects\testtest\main.cpp(13) : warning C6387: 
'argument 1' might be '0': this does not adhere to the specification for the function 'FillChar': Lines: 12, 13 

¿ö´×¸¸ ÇØ°áÇÑ´Ù¸é FillCharÀº ³ª¸§´ë·Î È¿À²ÀûÀÌ°í ¾ÈÀüÇÏ°Ô ¾²¿´´Ù°í ÇÒ ¼ö ÀÖ°Ú´Ù.

/analyze ¿É¼Ç°ú °ü·ÃÇØ¼­ ¼ö½Ê°³ÀÇ »õ·Î¿î warningÀ» ´ÙÀ½¸µÅ©¿¡¼­ Ãß°¡·Î º¼¼ö°¡ ÀÖ´Ù. ¿øÇÏÁö ¾Ê´Â WarningÀÌ ÀÖ´Ù¸é Àü󸮱â·Î

²ô¸é µÇ°Ú´Ù.

http://msdn2.microsoft.com/en-us/library/a5b9aa09(VS.80).aspx


SAL¿¡ ´ëÇÑ °¡Àå ÁÁÀº ¸Þ´º¾óÀº sal.h¿¡ ¾ÕºÎºÐ¿¡ ±â¼úµÇ¾î ÀÖ´Â ÁÖ¼®ÀÌ´Ù. ½Ã°£À» ³»¾î ÀÚ¼¼È÷ »ìÆì º¸¸é ¸Å¿ì À¯¿ëÇÑ ¸ÅÅ©·ÎµéÀ»

¹ß°ßÇÒ ¼ö ÀÖ°í, assertó·³ °è¼ÓÀûÀ¸·Î »ç¿ëÇÏ·Á´Â ½À°üÀ» µéÀÌ´Â ³ë·ÂÀ» ÇØ¾ß ÇÑ´Ù.


__in °ú °°Àº°ÍÀ» »ç¿ëÇÏ¸é ¾Õ¼­ ¸»Çß´ø referenceÀÇ ÀåÁ¡À» ±×´ë·Î °¡Àú°¡¸é¼­ °ü½À´ë·Î point¸¦ À¯¿¬ÇÏ°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù.


¸¶Áö¸·À¸·Î, strsafe.h ¿¡ Á¤ÀÇµÈ StringCchCopy¸¦ ´Ù½Ã »ìÆì º¸¸é ´ÙÀ½°ú °°ÀÌ µÇ¾î ÀÖ´Ù.

STDAPI StringCchCopy(

   __out_ecount(cchDest) LPTSTR  pszDest,
   __in  size_t  cchDest,
   __in  LPCTSTR pszSrc
   );

°¢ ÀÎÀÚµé ¾Õ¿¡ SAL°ú °°Àº AnnotationÀÌ ºÙ¾î ÀÖ´Ù. Windows Vista¿¡¼­ strcpy °°Àº ºÒ¾ÈÇÑ ÇÔ¼ö¸¦ »ç¿ëÇÏÁö ¾Ê°í ÀÌ·¸°Ô SALÀ»

»ç¿ëÇßÀ» °æ¿ì ±âÁ¸ÀÇ ¹öÆÛ¿À¹ö·± ¿¡·¯À²À» 84%³ª °¨¼Ò½Ãų¼ö ÀÖ¾ú´Ù°í ÇÑ´Ù. À̰ÍÀº strsafe.h¿¡ ÀÖ´Â ÇÔ¼ö¸¦ Àû±Ø »ç¿ëÇ϶ó´Â

ÀÌÀ¯Áß Çϳª°¡ µÇ±âµµ ÇÏ´Ù.

ÄÚ¸àÆ®¾²±â
  ÁÁÀ½   ³î¶÷   ±Ã±Ý   È­³²   ½½ÇÄ   ÃÖ°í   ħ¹¬   ½Ã¹«·è   ºÎ²ô·³   ³­°¨
* ÄÚ¸àÆ®´Â 500ÀÚ À̳»(¶ç¾î¾²±â Æ÷ÇÔ)·Î Àû¾îÁÖ¼¼¿ä.
¸ñ·Ï º¸±â   Áö±Ý º¸°í °è½Ã´Â ±ÛÀ» ȸ¿ø´ÔÀÇ my Mblog >> ½ºÅ©·¦¿¡ ³Ö¾îµÎ°í ´ÙÀ½¿¡ ¹Ù·Î º¸½Ç ¼ö ÀÖ½À´Ï´Ù.  

 µ¦½ºÆÛÆ®(dExpert)
15,000¿ø
15,000¿ø
15,000¿ø
10,000¿ø
15,000¿ø
15,000¿ø
10,000¿ø
3,000¿ø
50,000¿ø
3,000¿ø
3,000¿ø
10,000¿ø
5,000¿ø
3,000¿ø
ȸ»ç¼Ò°³  |   °³ÀÎÁ¤º¸Ãë±Þ¹æÄ§  |   Á¦ÈÞ¹®ÀÇ  |   ±¤°í¹®ÀÇ  |   E-Mail ¹«´Ü¼öÁý°ÅºÎ  |   °í°´Áö¿ø  |   ÀÌ¿ë¾È³»  |   ¼¼±Ý°è»ê¼­
°øÁ¤°Å·¡À§¿øÈ¸ °í½Ã Á¦ 2000-1È£¿¡ µû¸¥ »ç¾÷ÀÚµî·Ï¹øÈ£ ¾È³»: 220-81-90008 / ´ëÇ¥: È«¿µÁØ
¼­¿ï½Ã °­³²±¸ ¿ª»ïµ¿ 662-18 °­³²ÅÚ·¹ÇǾƺôµù 9Ãþ / TEL. 02_511_4824 / FAX. 02_511_4823
Copyright ¨Ï (ÁÖ) µ¥ºêÇǾÆ. All rights reserved.