ÃÑ ÆäÀÌÁö ¼ö : 3224
![]()
|
Facebook Joinc ±×·ì
Joinc QA »çÀÌÆ®
![]()
Tweet
joinc´Â Firefox¿Í chrome¿¡¼ Å×½ºÆ® Çß½À´Ï´Ù. IE¿¡¼´Â Å×À̺íÀÌ ±úÁö°Å³ª À̹ÌÁö°¡ º¸ÀÌÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. ƯÈ÷ ±¸±Û DocsÀ̹ÌÁöÀÇ °æ¿ì ¿¢¹Úó¸®µÉ ¼ö ÀÖ½À´Ï´Ù. 1 À©µµ ÆÄÀÏ ÇÁ·Î±×·¡¹Ö
¹¹´Ï ¹¹´Ï ÇØµµ ½Ã½ºÅÛ ÇÁ·Î±×·¡¹ÖÀÇ ÇÙ½ÉÀº ÆÄÀÏ. ¸®´ª½º ÇÁ·Î±×·¡¹Ö¿¡ Àͼ÷ÇÑ °ü°è·Î ¸®´ª½º ÆÄÀÏ ÇÁ·Î±×·¡¹Ö°úÀÇ ºñ±³°¡ ¸¹À» °ÍÀÌ´Ù.
À©µµ¿¡¼ ÆÄÀÏÀº Ä¿³Î Object·Î °ü¸®µÈ´Ù. ÆÄÀÏÀ» Æ÷ÇÔÇÑ ¸ðµç Ä¿³Î Object´Â Create·Î ½ÃÀÛÇÏ´Â ÇÔ¼ö·Î handleÀ» ¾òÀ» ¼ö ÀÖ´Ù. ÇÚµéÀº Ä¿³Î Object¸¦ °¡¸®Å²´Ù. ÆÄÀϿܿ¡ °ü¸®ÇÏ´Â Ä¿³Î °´Ã¼·Î´Â ¾Æ·¡¿Í °°Àº °ÍµéÀÌ ÀÖ´Ù.
1.1 ÆÄÀÏ »ý¼º°ú ÀÐ°í ¾²±â1.1.1 ÆÄÀÏ ¸¸µé±â/¿±â
CreateFileÇÔ¼ö·Î ÆÄÀÏÀ̳ª ÀÔÃâ·Â ÀåÄ¡¸¦ ¿ ¼ö ÀÖ´Ù. ÀÔÃâ·Â ÀåÄ¡´Â ÆÄÀÏ, ÆÄÀÏ ½ºÆ®¸², µð·ºÅ丮, ¹°¸®ÀûÀÎ µð½ºÅ©, º¼·ý, ÄÜ¼Ö ¹öÆÛ, Å×ÀÌÇÁ µå¶óÀ̹ö, mailslot, pipeµîÀÌ´Ù. 16ºñÆ® ¹öÀü À©µµ¿¡¼´Â OpenFileÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö Àִµ¥, Áö±ÝÀº °ÅÀÇ »ç¿ëÇÏÁö ¾Ê´Â´Ù.
¸®´ª½ºÀÇ ÆÄÀÏ ¿±â ÇÔ¼öÀÎ open(2)¿¡ ºñÇØ ¸¹Àº ¸Å°³ º¯¼ö¸¦ ÇÊ¿ä·Î ÇÑ´Ù. HANDLE WINAPI CreateFile( __in LPCTSTR lpFileName, __in DWORD dwDesiredAccess, __in DWORD dwShareMode, __in_opt LPSECURITY_ATTRIBUTES lpSecurityAttributes, __in DWORD dwCreationDisposition, __in DWORD dwFlagsAndAttributes, __in_opt HANDLE hTemplateFile );lpfileNameÀ¸·Î ¿°íÀÚ ÇÏ´Â ÆÄÀÏ À̸§À» ÁöÁ¤ÇÑ´Ù.
dwDesiredAccess·Î ÀÏ¹Ý Á¢±Ù ¹æ¹ýÀ» ÁöÁ¤ÇÒ ÀÖ´Ù. GENERIC_READ¿Í GENERIC_WRITE¸¦ »ç¿ëÇÑ´Ù. ÀüÀÚ´Â Àбâ Àü¿ë, ÈÄÀÚ´Â ¾²±âÀü¿ëÀ¸·Î ¿±â À§Çؼ »ç¿ëÇÑ´Ù. Àбâ¿Í ¾²±â ¸ðµÎ¸¦ À§Çؼ´Â GENERIC_READ | GENERIC_WRITE¸¦ »ç¿ëÇÏ¸é µÈ´Ù. ¶ÇÇÑ »ó¼¼ Á¢±Ù ¹æ¹ýÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. »ó¼¼ Á¢±Ù ¹æ¹ýÀº MSDN¹®¼¸¦ Âü°íÇÑ´Ù.
dwShareMode´Â ¿¸° ÆÄÀÏ¿¡ ´Ù¸¥ ÇÁ·Î¼¼½º³ª ¾²·¹µå·Î ºÎÅÍÀÇ Á¢±Ù±ÇÇÑÀ» ¼³Á¤ Çϱâ À§Çؼ »ç¿ëÇÑ´Ù. 0À» »ç¿ëÇÑ´Ù¸é ´Ù¸¥ ÇÁ·Î¼¼½º³ª ¾²·¹µå´Â Àбâ, ¾²±â, »èÁ¦¸¦ ÇÒ ¼ö ¾ø´Ù. FILE_SHARED_DELETE, FILE_SHARED_READ, FILE_SHARED_WRITE¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
lpSecurityAttribute´Â º¸¾È¼Ó¼ºÀ» ÁöÁ¤Çϱâ À§ÇØ »ç¿ëÇÑ´Ù. NULLÀ» ÁöÁ¤ÇÏ¸é ±âº» º¸¾È¼Ó¼ºÀÌ »ç¿ëµÇ´Âµ¥, ÀÌ °æ¿ì ÆÄÀÏÀº ÀÚ½Ä ÇÁ·Î¼¼½º¿¡¼ »ó¼ÓÇÒ ¼ö ¾ø°Ô µÈ´Ù.
dwCreationDispositionÀº »ý¼º ¹æ¹ýÀ» °áÁ¤Çϱâ À§Çؼ »ç¿ëÇÑ´Ù. »õ·ÎÀÌ »ý¼ºÇÏ·Á¸é CREATE_NEW¿Í CREATE_ALWAYS¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. CREATE_NEW´Â ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾ÊÀ» °æ¿ì »ý¼ºÇϰí CREATE_ALWAYS´Â ÆÄÀÏÀÌ Á¸ÀçÇÒ°æ¿ì µ¤¾î¾´´Ù´Â Â÷ÀÌÁ¡ÀÌ ÀÖ´Ù. Á¸ÀçÇÏ´Â ÆÄÀÏÀ» ¿±â À§Çؼ´Â OPEN_ALWAYS¿Í OPEN_EXISTING¸¦ »ç¿ëÇÒ ¼ö ÀÖ´Ù. OPEN_ALWAYS´Â ÆÄÀÏÀÌ Á¸ÀçÇÏµç ±×·¸Áö ¾Êµç ÂüÀ» ¹ÝȯÇÑ´Ù. ¸¸¾à ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é, »õ·Î ÆÄÀÏÀ» ¸¸µç´Ù. OPEN_EXISTING´Â Á¸ÀçÇÏ´Â ÆÄÀϸ¸ ¿¬´Ù. ¸¸¾à ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾Ê´Â´Ù¸é °ÅÁþÀ» ¹ÝȯÇÑ´Ù. TRUNCATE_EXISTING´Â Á¸ÀçÇÏ´Â ÆÄÀÏÀÇ Å©±â¸¦ 0À¸·Î ÇØ¼ ¿¬´Ù. ÀÌ °ªÀ» »ç¿ëÇϱâ À§Çؼ´Â ¹Ýµå½Ã GENERIC_WRITE°¡ ¼³Á¤µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù.
¼º°øÀûÀ¸·Î ¼öÇàµÇ¸é ÆÄÀÏ HANDLEÀ» ¹ÝȯÇÑ´Ù. ½ÇÆÐÇϸé INVALID_HANDLE_VALUE¸¦ ¹ÝȯÇÑ´Ù. 1.1.2 Àб⠾²±â
ReadFileÇÔ¼ö¿Í WriteFileÇÔ¼ö·Î·Î ÀÐ°í ¾µ ¼ö ÀÖ´Ù. BOOL WINAPI ReadFile( __in HANDLE hFile, __out LPVOID lpBuffer, __in DWORD nNumberOfBytesToRead, __out_opt LPDWORD lpNumberOfBytesRead, __inout_opt LPOVERLAPPED lpOverlapped );ÆÄÀÏ ÇÚµé hFile·Î ºÎÅÍ ÀÐÀº µ¥ÀÌÅ͸¦ lpBuffer¿¡ ÀúÀåÇÑ´Ù. ÀÐÀ» µ¥ÀÌÅÍÀÇ Å©±â´Â nNumberOfBytesToRead·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. ½ÇÁ¦ ÀÐÀº µ¥ÀÌÅÍÀÇ Å©±â´Â lpNumberOfBytesRead·Î ¾Ë¾Æ³¾ ¼ö ÀÖ´Ù. ¸¶Áö¸· ¸Å°³ º¯¼öÀÎ lpOverlapped´Â ÆÄÀÏÀÌ FILE_FLAG_OVERLAPPED (ºñµ¿±â ¸ðµå)·Î ¿·ÈÀ» ¶§ »ç¿ëÇÑ´Ù. ÀÚ¼¼ÇÑ ³»¿ëÀº ºñµ¿±â ÀÔÃâ·Â¿¡¼ ´Ù·çµµ·Ï ÇÑ´Ù. µ¿±â ¸ðµå·Î ¿¸° ÆÄÀÏÀ̶ó¸é NULLÀ» ÁöÁ¤ÇÑ´Ù. BOOL WINAPI WriteFile( __in HANDLE hFile, __in LPCVOID lpBuffer, __in DWORD nNumberOfBytesToWrite, __out_opt LPDWORD lpNumberOfBytesWritten, __inout_opt LPOVERLAPPED lpOverlapped );ÆÄÀÏ ÇÚµé hFile¿¡ lpBufferÀÇ µ¥ÀÌÅ͸¦ ¾´´Ù. ¾µ µ¥ÀÌÅÍÀÇ Å©±â´Â nNumberOfBytesToWrite·Î ÁöÁ¤ÇÑ´Ù. ½ÇÁ¦ ¾´ µ¥ÀÌÅÍÀÇ Å©±â´Â lpNumberOfBytesWrittenÀ¸·Î ¾Ë¾Æ³¾ ¼ö ÀÖ´Ù. lpOverlapped´Â ºñµ¿±â ¸ðµå¿¡¼ »ç¿ëÇÑ´Ù. µ¿½Ã ¸ðµå·Î ¿¸° ÆÄÀÏÀ̶ó¸é NULLÀ» ÁöÁ¤ÇÑ´Ù. 1.1.3 ´Ý±â
´õÀÌ»ó CloseHandle »ç¿ëÇÏÁö ¾Ê´Â ÆÄÀÏÀº CloseHandle·Î ´Ý¾ÆÁØ´Ù. 1.1.4 ¸®´ª½º ÇÔ¼öÀÇ Â÷ÀÌ
ÆÄÀÏ »ý¼º ¸Å°³ º¯¼ö°¡ ¸¹À» »Ó´õ·¯, ¸Å°³ º¯¼ö¿¡ »ç¿ëÇÒ ¼ö ÀÖ´Â °ªµéµµ ¸¹¾Æ¼ ¸®´ª½ºÀÇ openÇÔ¼ö¿¡ ºñ±³Çؼ º¹ÀâÇÏ´Ù´Â ´À³¦À» ¹Þ´Â´Ù. ¸®´ª½º¿¡¼ ÆÄÀÏÀÇ Á¢±ÙÀº °øÀ¯°¡ ¾Æ´Ñ À¯Àúº° ÆÄÀÏ °ü¸® ±ÇÇÑÀÇ ÇüÅ·Π´Þ¼ºÇϴµ¥, ¸®´ª½ºÀÇ À¯Àúº° ±ÇÇÑ ºÎ¿© ¹æ½ÄÀÌ Á» ´õ ¸íÈ®ÇØ º¸ÀδÙ.
¿¹ÄÁµ¥ ¸Å°³ º¯¼ö dwShareMode´Â ÆÄÀÏÀÌ ¿¸° µ¿¾È ´Ù¸¥ ÇÁ·Î¼¼½º¿Í °øÀ¯¿©ºÎ¸¦ °áÁ¤Çϱâ À§Çؼ »ç¿ëÇϴµ¥, ÆÄÀÏ Àá±Ý°ú °°Àº È¿°ú¸¦ °¡Á®¿Ã ¼ö ÀÖ´Ù. ÀÌ·± °ªÀ» ±»ÀÌ ¹ø°Å·Ó°Ô ÆÄÀÏ »ý¼º½Ã ¸Å°³ º¯¼ö·Î ¹Þ¾Æ¿Ã Çʿ䰡 ÀÖ³ª¶ó´Â »ý°¢ÀÌ µç´Ù. fcntl(2)·ùÀÇ ÇÔ¼ö·Î ºÐ¸®½ÃŰ´Â°Ô ³´Áö ¾ÊÀ»±î ? ÀÛÀº°Ô ¾Æ¸§´ä´Ù¶ó´Â öÇÐÀ» ÇÔ¼ö¿¡µµ ±¸ÇöÇϰí ÀÖ´Â ¸®´ª½º ȯ°æ¿¡ Àͼ÷ÇØÁ®Àֱ⠶§¹®ÀÏÁöµµ ¸ð¸£°Ú´Ù.
ÆÄÀÏ Á¢±Ù ¹æ½ÄÀº À©µµ¿Í ¸®´ª½º µ¿ÀÏÇÏ´Ù.
¸®´ª½ºÀÇ read(2) write(2)ÇÔ¼ö°¡ ¹Ýȯ °ªÀ¸·Î ½ÇÁ¦ ÀÐ°í ¾´ µ¥ÀÌÅÍÀÇ Å©±â¸¦ ¾Ë¾Æ¿À´Â °Í¿¡ ¹ÝÇØ, À©µµÀÇ ÇÔ¼ö´Â ¸Å°³ º¯¼ö·Î ÀÐ°í ¾´ µ¥ÀÌÅÍÀÇ Å©±â¸¦ °¡Á® ¿Â´Ù´Â °Í ¿Ü¿¡´Â µ¿ÀÏÇÏ´Ù. 1.1.5 ¿¹Á¦
ÆÄÀÏ¿¡ ³»¿ëÀ» Ãß°¡ÇÏ´Â ÇÁ·Î±×·¥ a.txtÀÇ ³»¿ëÀ» ÀÐ¾î¼ b.txtÀÇ ¸¶Áö¸·¿¡ Ãß°¡ÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù. a.txt´Â Àб⠸ðµå·Î ¿°í, b.txt´Â ¾²±â¸ðµå·Î ¿¬´Ù. À̶§ FILE_APPEND_DATA¸¦ ¸Å°³ º¯¼ö °ªÀ¸·Î Á༠ÆÄÀÏ ÇÚµéÀÇ À§Ä¡¸¦ ¸¶Áö¸·À¸·Î ¸¸µé¾îÁØ´Ù. #include <windows.h> #include <stdio.h> #define MAX_LINE 1024 int main(int argc, char **argv) { char buf[MAX_LINE]; HANDLE source_fh,dest_fh; int readn, writen; if (argc != 3) { printf("Usge : %s [source file] [dest file]\n", argv[0]); return 0; } source_fh= CreateFile( argv[1], GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); if(source_fh == INVALID_HANDLE_VALUE) { printf("FILE Open Error %d\n", GetLastError); return 1; } dest_fh = CreateFile( argv[2], FILE_APPEND_DATA, // append ¸ðµå·Î ¿¬´Ù. 0, NULL, OPEN_EXISTING, // ÆÄÀÏÀÌ Á¸ÀçÇÏ´ÂÁö È®ÀÎÇÑ´Ù. FILE_ATTRIBUTE_NORMAL, NULL ); if (dest_fh == INVALID_HANDLE_VALUE) { if (GetLastError() == ERROR_FILE_NOT_FOUND) printf("Dest File not found\n"); else printf("Dest File Open Error\n"); return 1; } while(1) { memset(buf, 0x00, MAX_LINE); ReadFile(source_fh, buf, MAX_LINE-1, &readn, NULL); if(readn <= 0) break; WriteFile(dest_fh, buf, readn, &writen, NULL); printf("%d\n", writen); } return 0; } 1.2 ÆÄÀÏ Á¦¾î1.2.1 ÆÄÀÏ Ã£±â ¹× ÆÄÀÏ Á¤º¸ È®ÀÎ
CreateFile·Îµµ ÆÄÀÏ Á¸À縦 È®ÀÎÇÒ ¼ö ÀÖÁö¸¸ °¡´ÉÇϸé Àü¿ë ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â °É ±ÇÀåÇÑ´Ù.
FindFirstFile HANDLE WINAPI FindFirstFile
{
__in LPCTSTR lpFileName,
__out LPWIN32_FIND_DATA lpFindFileData
};
winapiÇÔ¼ö·Î ¸µÅ© ¾øÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â ÀåÁ¡ÀÌ ÀÖ´Ù. ¸Å°³ º¯¼ö lpFindFileData·Î ãÀº ÆÄÀÏÀÇ Á¤º¸¸¦ ¾Ë ¼ö ÀÖ´Ù. ÆÄÀÏ Á¤º¸´Â WIN32_FIND_DATA±¸Á¶Ã¼¸¦ Âü°íÇÑ´Ù.#include <windows.h> #include <stdio.h> int main(int argc, char **argv) { WIN32_FIND_DATA FindFileData; HANDLE fh; SYSTEMTIME SystemTime; if(argc != 2) { fprintf(stderr, "Usage : %s [file name]\n", argv[0]); return 1; } fh = FindFirstFile(argv[1], &FindFileData); if(fh == INVALID_HANDLE_VALUE) { printf("Error %d\n", GetLastError()); return 1; } printf("File Name : %s\n", FindFileData.cFileName); printf("File Size : %d\n", FindFileData.nFileSizeLow); FileTimeToSystemTime(&FindFileData.ftCreationTime,&SystemTime); printf("File Creeation time : %d/%d/%d \n", SystemTime.wYear, SystemTime.wMonth, SystemTime.wDay); FindClose(fh); }´Ü ÆÄÀÏ ÇÚµéÀ» ¹ÝȯÇϱ⠶§¹®¿¡ FindCloseÇÔ¼ö·Î ÇÚµéÀ» ´Ý¾ÆÁà¾ß ÇÑ´Ù. 1.2.2 ÆÄÀÏ ¸µÅ©
À©µµ´Â CreateSymbolicLink¿Í CreateHardLinkÇÔ¼ö·Î ½Éº¼¸¯ ¸µÅ©¿Í ÇÏµå ¸µÅ©ÆÄÀÏÀ» ¸¸µé ¼ö ÀÖ´Ù.
½Éº¼¸¯ ¸µÅ© ¸¸µé±â BOOLEAN WINAPI CreateSymbolicLink( __in LPTSTR lpSymlinkFileName, __in LPTSTR lpTargetFileName, __in DWORD dwFlags );lpTargetFileName À̸§À» °¡Áö´Â ¿øº» ÆÄÀÏÀ» °¡¸®Å°´Â lpSymlinkFileNameÀ̸§ÀÇ ½Éº¼¸¯ ¸µÅ© ÆÄÀÏÀ» ¸¸µç´Ù. ¿øº» ÆÄÀÏÀÌ µð·ºÅ丮ÀÏ °æ¿ì dwFlagsÀÇ °ªÀ» SYMBOLIC_LINK_FLAG_DIRECTORY·Î ÇÏ¸é µÈ´Ù. ÀÏ¹Ý ÆÄÀÏÀ̶ó¸é 0À¸·Î ÇÑ´Ù.
windows vista, windows server 2008 À̻󿡼 »ç¿ëÇÒ ¼ö ÀÖ´Ù. #include <stdio.h> #include <windows.h> int main(int argc, char **argv) { if(argv != 3) { fprintf(stderr, "Usage : %s [target file name] [symbolic name]\n", argv[0]); return 1; } if(CreateSymbolicLink(argv[2], argv[1], 0) == 0) { printf("Error %d\n", GetLastError()); } return 0; }
ÇÏµå ¸µÅ© ¸¸µé±â BOOL WINAPI CreateHardLink( __in LPCTSTR lpFileName, __in LPCTSTR lpExistingFileName, __reserved LPSECURITY_ATTRIBUTES lpSecurityAttributes );lpExistingFileNameÀ̸§À» °¡Áö´Â ¿øº»ÆÄÀÏÀÇ lpFileName ÇÏµå ¸µÅ©¸¦ ¸¸µç´Ù. lpSecurityAttributes´Â »ç¿ëÇÏÁö ¾Ê´Â´Ù. ¹Ýµå½Ã NULLÀ» ¾´´Ù.
windows 2000 professional, windows 2000 server À̻󿡼 »ç¿ëÇÒ ¼ö ÀÖ´Ù.
À¯´Ð½º¿¡¼ ¸µÅ©´Â ¸Å¿ì ¿À·¡Àü ºÎÅÍ »ç¿ëµÇ¾ú´Âµ¥, À©µµ´Â ºñ±³Àû ÃÖ±Ùµé¾î Áö¿øµÇ¾ú´Ù. ÀÌÀ¯¸¦ È®ÀÎÇØ ºÁ¾ß ÇÒ °Í °°´Ù. ¿¹Á¦ ÇÁ·Î±×·¥Àº xp¿¡¼ ½ÇÇàµÇÁö ¾Ê¾Ò´Ù. 1.2.3 ÆÄÀÏ Ä«ÇÇ
1.3 µð·ºÅ丮 °ü¸®
2 ±âŸ2.1 STDIN_FILENO¿¡ ´ëÇÑ ÀÔÃâ·Â ´ÙÁßÈ
äÆÃ Ŭ¶óÀÌ¾ðÆ® ÇÁ·Î±×·¥À» ¸¸µç´Ù°í °¡Á¤Çغ¸ÀÚ. äÆÃÀº Ç¥ÁØÀԷ°ú ¼ÒÄÏ ÀÔÃâ·ÂÀ» µ¿½Ã¿¡ ó¸®ÇØ¾ß ÇÑ´Ù. ¸®´ª½º´Â ¼ÒÄϵµ ÆÄÀÏÀÌ´Ï select¸¦ ÀÌ¿ëÇÑ ÀÔÃâ·Â ´ÙÁßÈ·Î °£´ÜÈ÷ ¹®Á¦Èê ÇØ°áÇÒ ¼ö Àִµ¥, ¾Æ À©µµ´Â ±×°Ô ¾ÈµÈ´Ù.
À©µµ´Â STDIN_FILENO¸¦ ºñ ºÀ¼â·Î ÇÒ ¼ö ¾ø´Ù. ÀÏ´Ü ÆÄÀϰú ¼ÒÄÏÀ» ´Ù¸£°Ô Ãë±ÞÇϱ⠶§¹®¿¡ select¸¦ ÀÌ¿ëÇÒ ¼öµµ ¾ø°í, ºñ ºÀ¼â·Î ÇÒ ¼öµµ ¾øÀ¸´Ï °á±¹ ¾²·¹µå·Î ó¸®ÇÏ´Â ¼ö ¹Û¿¡ ¾øÀ» °Í °°´Ù. ´Ù¸¥ ¹æ¹ýÀÌ ÀÖÀ»·Á³ª ?
Âü°í·Î Ç¥ÁØÀÔ·ÂÀº ReadFileEx¿¡¼µµ ºí·°µÇ¸ç, Áßø ÀÔÃâ·Â ¿¡¼µµ ºí·°µÈ´Ù°í ÇÑ´Ù. ÂÁ. Á» ´õ Å×½ºÆ®¸¦ ÇØºÁ¾ß °Ú´Âµ¥, ¿ì¼±Àº ¾²·¹µå·Î ±¸Çö ÇϷôÙ.
|
|
||||||||||||||||||||||||||||
|
EmailÀ» ±âÀÔÇϸé, ´ñ±ÛÀÌ ¸ÞÀÏ·Î Àü´ÞµË´Ï´Ù. |
|