¶ó. ÇÑ ¹ø¸¸ ½ÇÇàÇϱâ

À©µµ¿ìÁî¿ë ÀÀ¿ë ÇÁ·Î±×·¥Àº ¿øÄ¢ÀûÀ¸·Î ¿©·¯ ¹ø ½ÇÇàÇÒ ¼ö ÀÖ´Ù. A.txt¿Í B.txt¸¦ µ¿½Ã¿¡ ÆíÁýÇÏ°í ½Í´Ù¸é ¸Þ¸ðÀå µÎ °³¸¦ ½ÇÇàÇÒ ¼ö ÀÖÀ¸¸ç ´ç±Ùµµ ¸¶Âù°¡Áö·Î µÎ ¹ø ½ÇÇàÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù. ¸ÖƼŽºÅ·ÀÌ °¡´ÉÇÑ ¿î¿µÃ¼Á¦À̹ǷΠÀÌ°ÍÀº Áö±ØÈ÷ ´ç¿¬ÇÑ Çö»óÀÌ´Ù. ±×·¯³ª ÇÁ·Î±×·¥ÀÇ Æ¯¼º»ó µÎ °³ ÀÌ»óÀÇ ÀνºÅϽº°¡ ½ÇÇàµÉ ¼ö ¾ø´Ù°Å³ª °¡´ÉÇÏ´Ù ÇÏ´õ¶óµµ ¹Ù¶÷Á÷ÇÏÁö ¸øÇÑ °æ¿ì°¡ ÀÖ´Ù. ¿¹¸¦ µé¾î À̺¥Æ® ·Î±×³ª SQL ¼­¹ö °°Àº ¼­ºñ½º ÇÁ·Î±×·¥Àº ÄÄÇ»ÅÍ ÇÑ´ë¿¡ ÇϳªÀÇ ¼­ºñ½º¸¦ Á¦°øÇϹǷΠµÎ ¹ø ½ÇÇàÇÒ ÇÊ¿ä°¡ ÀüÇô ¾ø´Ù.

MP3 ÆÄÀÏÀ» ¿¬ÁÖÇÏ´Â WinAmp°°ÀÌ µ¶Á¡ÀûÀÎ ÀÚ¿øÀ» »ç¿ëÇÏ´Â ÇÁ·Î±×·¥µµ µÎ ¹ø ½ÇÇàÇÒ ¼ö ¾ø´Ù. ¾îÂ÷ÇÇ ½Ã½ºÅÛ¿¡ »ç¿îµå Ä«µå´Â Çϳª¹Û¿¡ ¾ø°í ¼³»ç º¹¼ö °³ÀÇ ¼Ò¸®¸¦ ¹Í½ÌÇؼ­ µé·ÁÁÙ ¼ö ÀÖ´Ù ÇÏ´õ¶óµµ ±× ¼Ò¸®¸¦ µè´Â »ç¶÷ÀÌ °¢°¢ÀÇ ¼Ò¸®¸¦ ºÐ¸®Çؼ­ µèÁö ¸øÇϱ⠶§¹®ÀÌ´Ù. ½ºÅ¸Å©·¡ÇÁÆ®°°ÀÌ Àüü È­¸éÀ» »ç¿ëÇÏ´Â °ÔÀÓµµ ÀϹÝÀûÀ¸·Î µü ÇÑ ¹ø¸¸ ½ÇÇàµÉ ¼ö ÀÖ´Ù.

±×·¸´Ù¸é ¿ì¸®°¡ Áö±Ý ¸¸µé°í ÀÖ´Â ´ç±Ù ÆíÁý±âÀÇ °æ¿ì´Â ¾î¶³±î? ½Ã½ºÅÛ ¼­ºñ½º¸¦ Á¦°øÇÏ´Â °Íµµ ¾Æ´Ï°í Ưº°È÷ µ¶Á¡ÀûÀÎ ÀÚ¿øÀ» »ç¿ëÇÏ´Â °Íµµ ¾Æ´Ï¹Ç·Î ¿©·¯ ¹ø ½ÇÇàÇصµ º° ¹«¸®´Â ¾ø´Ù. ÇÏÁö¸¸ ÇѲ¨¹ø¿¡ º¹¼ö °³ÀÇ ÆÄÀÏÀ» ÆíÁýÇÒ ¼ö ÀÖ´Â MDI ÇÁ·Î±×·¥À̱⠶§¹®¿¡ ¿©·¯ ¹ø ½ÇÇàÇÏ´Â °ÍÀÌ º° Àǹ̰¡ ¾ø´Â °Íµµ »ç½ÇÀÌ´Ù. ¿ÀÈ÷·Á º¹¼ö °³ÀÇ ÀνºÅϽº¸¦ Çã¿ëÇÒ °æ¿ì ÀáÀçÀûÀ¸·Î µ¥ÀÌÅ͸¦ ÀÒÀ» À§ÇèÀÌ ÀÖ´Ù. µÎ °³ÀÇ ÀνºÅϽº°¡ °°Àº ÆÄÀÏÀ» ÆíÁýÇÏ°í ÀÖÀ» °æ¿ì ¼­·Î ÀÌ ÆÄÀÏÀ» µ¤¾î¾²°Ô µÇ¹Ç·Î ¸ÕÀú ÀúÀåÇÑ ÀνºÅϽºÀÇ ÆíÁý °á°ú°¡ ¼Õ»óµÉ °ÍÀÌ´Ù.

º¹¼ö °³ÀÇ ÀνºÅϽº°¡ º°·Î ¹Ù¶÷Á÷ÇÏÁö ¾ÊÁö¸¸ ±×·¸´Ù°í ²À °­Á¦·Î ¸·¾Æ¾ß ÇÒ ÇÊ¿ä±îÁö´Â ¾ø´Ù. ÀÌ Á¤Ã¥Àº »ç¿ëÀÚÀÇ ÃëÇâ¿¡ µû¸¦ ¹®Á¦À̹ǷΠ¿É¼ÇÀ¸·Î Á¦°øÇÏ´Â °ÍÀÌ °¡Àå ¹«³­ÇÏ´Ù. Option±¸Á¶Ã¼ÀÇ bAllowMulti º¯¼ö°¡ º¹¼ö °³ÀÇ ÀνºÅϽº¸¦ Çã¿ëÇÒ °ÍÀΰ¡ ¾Æ´Ñ°¡¸¦ ÁöÁ¤Çϸç ÀÌ °ªÀÌ FALSEÀÌ¸é µü ÇÑ ¹ø¸¸ ½ÇÇàÇϵµ·Ï ÇÑ´Ù. TRUEÀÏ °æ¿ì º°´Ù¸¥ Á¶Ä¡¸¦ ÃëÇÒ ÇÊ¿ä¾øÀÌ ¾Æ¹«°Íµµ ÇÏÁö ¾ÊÀ¸¸é ÀÚ¿¬½º·´°Ô º¹¼ö °³ÀÇ ÀνºÅϽº°¡ ½ÇÇàµÈ´Ù.

ÇÑ ¹ø¸¸ ½ÇÇàµÇµµ·Ï ÇÏ´Â ¹æ¹ýÀº ¾ÆÁÖ °£´ÜÇÏ´Ù. ½ÇÇàµÉ ¶§ ÀÌ¹Ì ½ÇÇàÁßÀÎ ÀνºÅϽº°¡ ÀÖ´ÂÁö º¸°í ¸¸¾à ÀÖ´Ù¸é ´õ ÀÌ»ó ½ÇÇàÇÏÁö ¸»°í Á¾·áÇÏ¸é µÈ´Ù. °á±¹ ÀÌ ¹®Á¦´Â °°Àº ÇÁ·Î±×·¥ÀÇ ÀÌÀü ÀνºÅϽº¸¦ ¾î¶»°Ô ãÀ» °ÍÀΰ¡ÀÇ ¹®Á¦ÀÌ´Ù. °¡Àå ½¬¿î ¹æ¹ýÀº FindWindow ÇÔ¼ö¸¦ »ç¿ëÇÏ´Â °ÍÀε¥ ´ç±ÙÀº °íÁ¤µÈ À©µµ¿ì Ŭ·¡½º À̸§À» °¡Áö°í ÀÖÀ¸¹Ç·Î ÀÌ ¹æ¹ýÀ» »ç¿ëÇÒ ¼ö ÀÖ´Ù. ÀÌ¿Ü¿¡ ÆÄÀÏ ¸ÅÇÎÀ̳ª ¹ÂÅؽº°°ÀÌ ½Ã½ºÅÛ Àü¿ªÀûÀ¸·Î À¯ÀÏÇÑ Ä¿³Î °´Ã¼¸¦ ÀÌÀü ÀνºÅϽº ½Äº°¿¡ »ç¿ëÇÒ ¼ö Àִµ¥ ¿©±â¼­´Â ¹ÂÅؽº¸¦ »ç¿ëÇغ¸µµ·Ï ÇÏÀÚ. WinMain¿¡ ´ÙÀ½ Äڵ带 ÀÛ¼ºÇÑ´Ù.

 

int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance

            ,LPSTR lpszCmdParam,int nCmdShow)

{

    HANDLE hMutex;

     ....

    Option.bAllowMulti=SHRegReadInt(SHCU,KEY"Setting","bAllowMulti",0);

    if (Option.bAllowMulti==FALSE) {

#ifdef _DEBUG

        hMutex=CreateMutex(NULL,FALSE,"Dangeun_Mutex_For_Debug");

#else

        hMutex=CreateMutex(NULL,FALSE,"Dangeun_Mutex_For_Allow_Unique_Instance");

#endif

        if (GetLastError() == ERROR_ALREADY_EXISTS) {

           ActivateBrood();

           return 0;

        }

    }

 

     hMenu1=LoadMenu(g_hInst,MAKEINTRESOURCE(IDR_MENU1));

     hMenu2=LoadMenu(g_hInst,MAKEINTRESOURCE(IDR_MENU2));

     ....

    if (hMutex) {

        CloseHandle(hMutex);

    }

     return (int)Message.wParam;

}

 

bAllowMulti°¡ FALSEÀÏ ¶§´Â Àü¿ª ¹ÂÅؽº¸¦ »ý¼ºÇ쵂 ´Ù¸¥ ¹ÂÅؽºÆ®¿Í Ãæµ¹ÇÏÁö ¾Êµµ·Ï ÃæºÐÈ÷ ±ä À̸§À» ÁÖ¾ú´Ù. À̶§ ¹ÂÅؽº°¡ ÀÌ¹Ì ÀÖ´Ù¸é, Áï ÀÌÀü ÀνºÅϽº°¡ ¹ÂÅؽº¸¦ ¸¸µé¾î ³õ¾Ò´Ù¸é ÀÌ ÇÁ·Î±×·¥Àº ½ÇÇàµÇÁö ¸»¾Æ¾ß ÇÑ´Ù. ±×·¡¼­ ¾Æ¿¹ ¸ÞÀÎ À©µµ¿ìµµ ¸¸µéÁö ¾Ê°í return 0;·Î Á¾·áÇÏ¿´´Ù. ÀÌ ¹ÂÅؽº´Â ¸Þ½ÃÁö ·çÇÁ°¡ Á¾·áµÇ¾úÀ» ¶§ Æı«µÇ¸ç ¹ÂÅؽº°¡ Æı«µÈ ÈÄ¿¡ ´Ù¸¥ ÀνºÅϽº°¡ ½ÇÇàµÉ ¼ö ÀÖ´Ù.

ÇÑ ¹ø¸¸ ½ÇÇàÀ» Çã¿ëÇϱâ À§ÇØ ¹ÂÅؽº¸¦ »ç¿ëÇÏ´Â ¹æ¹ýÀº ÀϹÝÈ­µÈ ¹æ¹ýÀ̹ǷΠ¹ÂÅؽºÀÇ Á¤ÀǸ¸ ¾Ë°í ÀÖ´Ù¸é ±â¹ý ÀÚü´Â º°·Î ¾î·ÆÁö ¾ÊÀ» °ÍÀÌ´Ù. ÀÌ Äڵ忡´Â ¸î °¡Áö ƯÀÌÇÑ Á¡ÀÌ Àִµ¥ ƯÀÌÁ¡µé¿¡ ´ëÇؼ­¸¸ ¿¬±¸Çغ¸µµ·Ï ÇÏÀÚ. ¿ì¼± µð¹ö±× ¹öÀüÀÏ ¶§¿Í ¸±¸®Áî ¹öÀüÀÏ ¶§ÀÇ ¹ÂÅؽº À̸§ÀÌ ´Ù¸¥µ¥ ÀÌ´Â °³¹ßÁß¿¡´Â ¸±¸®Áî ¹öÀüÀÇ ´ç±ÙÀ» ¾Æ¿¹ ´Ù¸¥ ÇÁ·Î±×·¥À¸·Î ÀνÄÇϵµ·Ï Çϱâ À§Çؼ­ÀÌ´Ù. ÀÌ·¸°Ô ÇÏÁö ¾ÊÀ¸¸é ´ç±Ù °³¹ßÁß¿¡´Â ´ç±ÙÀ» ¾µ ¼ö ¾ø´Ù´Â ¹¦ÇÑ Á¦¾àÀÌ »ý°Ü ¹ö¸°´Ù. ÀÌ ÄÚµå´Â ´Ü¼øÈ÷ °³¹ßÀÚÀÇ ÆíÀǸ¦ À§ÇØ Á¸ÀçÇÒ »Ó ´Ù¸¥ ÀÌÀ¯´Â ¾ø´Ù.

´ÙÀ½Àº bAllowMulti ¿É¼ÇÀ» Àд ½ÃÁ¡¿¡ ´ëÇØ »ý°¢Çغ¸ÀÚ. Option ±¸Á¶Ã¼ ÀÚü´Â OnCreate¿¡¼­ ÀÐÇôÁö´Âµ¥ ÀÌ ¿É¼ÇÀº WinMainÀÇ ¼±µÎ¿¡¼­ Àû¿ëÇϱ⠶§¹®¿¡ ¹Ì¸® ¸ÕÀú Àоî¾ß ÇÑ´Ù. ´Ù¸¥ ¿É¼Ç°ú´Â ´Þ¸® ÇÁ·Î±×·¥ ½ÇÇàÀ» °è¼ÓÇÒ °ÍÀΰ¡ ¾Æ´Ñ°¡¸¦ °áÁ¤ÇÏ´Â ¿ö³« Ư¼öÇÑ ¿É¼ÇÀ̶ó ¸ÞÀÎ À©µµ¿ì°¡ »ý¼ºµÇ°í ³­ ´ÙÀ½¿¡ Àо´Â ³Ê¹« ´Ê´Ù. Àá½Ã ÈÄ¿¡ ´Ù½Ã º¸°Ô µÇ°ÚÁö¸¸ ÀÌ ¿É¼ÇÀ» ÀúÀåÇÏ´Â ½ÃÁ¡µµ ¾ÆÁÖ Æ¯ÀÌÇÏ´Ù.

ÀÌ¹Ì ½ÇÇàÁßÀÎ ÀνºÅϽº°¡ ÀÖÀ» ¶§´Â return 0;·Î WinMainÀ» Á¾·áÇ쵂 ±× Àü¿¡ ½ÇÇàÁßÀÎ ÀνºÅϽº¸¦ È°¼ºÈ­½ÃÄÑ ÁÖµµ·Ï Çß´Ù. ±×³É Á¶¿ëÈ÷ Á¾·áÇÏ¸é »ç¿ëÀÚ´Â ¹«¾ùÀÌ À߸øµÇ¾ú´ÂÁö ¾Ë ¼ö ¾øÀ¸¹Ç·Î È¥¶õ½º·¯¿ï °ÍÀÌ´Ù. ±×·¡¼­ ÀÚ½ÅÀº Á×Áö¸¸ ´ë½Å ÀÚ±â ÇüÀ» ¼Ò°³Çϵµ·Ï ÇßÀ¸¸ç ÀÌ ÀÏÀ» ÇÏ´Â ÇÔ¼ö°¡ ActivateBrood ÇÔ¼öÀÌ´Ù. ÀÌ ÇÔ¼ö´Â À¯Æ¿¸®Æ¼ ÇÔ¼ö°¡ ¾Æ´Ï¹Ç·Î Dangeun.cpp¿¡ ÀÛ¼ºÇÑ´Ù.

 

void ActivateBrood()

{

     HWND hBrood;

     ATOM hAtom;

 

     hBrood=FindWindow(lpszClass,NULL);

     if (hBrood==NULL) {

          return;

     }

 

     if (__argc >1 ) {

          hAtom=GlobalAddAtom(__argv[1]);

          SendMessage(hBrood,WM_USER+1,(WPARAM)hAtom,0);

          GlobalDeleteAtom(hAtom);

     } else {

          SendMessage(hBrood,WM_USER+1,0,0);

     }

 

     SetForegroundWindow(hBrood);

}

 

ÀÌÀü ÀνºÅϽºÀÇ ¸ÞÀÎ À©µµ¿ì¸¦ FindWindow·Î °Ë»öÇß´Ù. À©µµ¿ì Ŭ·¡½º¸íÀÌ ¡®Dangeun¡¯À̶ó´Â °íÀ¯ÇÑ À̸§À¸·Î µÇ¾î ÀÖÀ¸¹Ç·Î ½±°Ô ¸ÞÀÎ À©µµ¿ì¸¦ ãÀ» ¼ö ÀÖ´Ù. ÀÌ·¸°Ô ãÀº À©µµ¿ì¸¦ È°¼ºÈ­½ÃÄÑÁÖµÇ ¸¸¾à Àμö°¡ ÀÖ´Ù¸é ÀÌ Àμöµµ Àü´ÞÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î ù ¹ø° ÀνºÅϽº°¡ ½ÇÇàÁßÀÌ°í Ž»ö±â Æ˾÷¸Þ´º¿¡¼­ Readme.txt¸¦ ¿­¾ú´Ù¸é µÎ ¹ø° ÀνºÅϽº°¡ ÀÌ ÆÄÀϸíÀ» ¹Þ¾Æ¼­ ù ¹ø° ÀνºÅϽº¿¡°Ô ´ë½Å ¿­¾î ´Þ¶ó°í ºÎŹÀ» ÇÏ´Â °ÍÀÌ´Ù.

ÆÄÀϸíÀº ¹®ÀÚ¿­À̹ǷΠÇÁ·Î¼¼½º³¢¸® ÀÌ ¹®ÀÚ¿­À» Àü´ÞÇϱâ À§Çؼ­´Â IPC¸¦ »ç¿ëÇØ¾ß ÇÑ´Ù. WM_COPYDATA, ÆÄÀÏ ¸ÅÇÎ, ÆÄÀÌÇÁ µîÀÇ ¿©·¯ °¡Áö IPC ¹æ¹ýÀÌ ÀÖÁö¸¸ ¿©±â¼­´Â °¡Àå °£´ÜÇÑ ±Û·Î¹ú ¾ÆÅèÀ» »ç¿ëÇß´Ù. ÆÄÀϸíÀ» ±Û·Î¹ú ¾ÆÅèÀ¸·Î µî·ÏÇÏ°í ±× ÇÚµéÀ» WM_USER+1ÀÇ wParamÀ¸·Î Àü´ÞÇß´Ù. ±×¸®°í ¾ÆÅèÀ» »èÁ¦ÇÑ ÈÄ ÀÌÀü ÀνºÅϽº¸¦ È°¼ºÈ­½ÃÅ°¸é µÈ´Ù. ÀÌ ÇÔ¼ö°¡ ÇÏ´Â ÀÏÀ» Á» Àͻ콺·´°Ô Ç¥ÇöÇÏÀÚ¸é ¡®¿ì¸® Çü ¾îµð ÀÖ³ª? ¿©±â ÀÖ±º! Çü ³ª °©´Ï´Ù. ´ë½Å ÀÌ ÆÄÀÏÀ» Á» ¿­¾î Áà¿ä¡¯ ÇÏ´Â ²ÃÀÌ´Ù. ¸¸¾à ÇüÀÌ ÀÚ°í ÀÖ´Ù¸é(ÃÖ¼ÒÈ­) ±ú¾îÁÖ±â±îÁö ÇÑ´Ù.

±×·¸´Ù¸é ÀÌÀü ÀνºÅϽºÀÎ ÇüÀº µ¿»ýÀÌ Àü´ÞÇÏ´Â ÆÄÀϸíÀ» ¹Þ¾Æ ÀÌ ÆÄÀÏÀ» ¿­¾î¾ß ÇÒ Àǹ«°¡ ÀÖ´Ù. WM_USER+1 ¸Þ½ÃÁö(=Çü ÀϾ) Çڵ鷯¸¦ ¸¸µé°í ÀÌ Çڵ鷯¿¡¼­ wParamÀ¸·Î Àü´ÞµÇ´Â ¾ÆÅè ÇÚµé·ÎºÎÅÍ ÆÄÀϸíÀ» ÃßÃâÇÏ¿© ¿­¾î ÁÖ¸é µÈ´Ù. ¹°·Ð wParamÀÌ NULLÀ̸é ÆÄÀÏÀ» ¿­ ÇÊ¿ä°¡ ¾ø´Ù.

 

LRESULT CALLBACK DGWndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)

{

     switch(iMessage) {

          ....

        case WM_USER+1:OnUser1(hWnd,wParam,lParam);return 0;

     }

     return(DefFrameProc(hWnd,g_hMDIClient,iMessage,wParam,lParam));

}

 

void OnUser1(HWND hWnd,WPARAM wParam,LPARAM lParam)

{

     TCHAR Path[MAX_PATH];

 

     if (wParam) {

          GlobalGetAtomName((ATOM)wParam,Path,MAX_PATH);

          OpenFromFile(Path);

     }

     if (IsIconic(hWnd)) {

          ShowWindow(hWnd,SW_RESTORE);

     }

}

 

¾ÆÅè¿¡ µî·ÏµÈ ¹®ÀÚ¿­Àº ´ë»ó ÆÄÀÏÀÇ Àý´ë°æ·ÎÀ̹ǷΠOpenFromFile ÇÔ¼ö¸¸ È£ÃâÇÏ¸é µÈ´Ù. ¾ÆÅèÀº ÇöÀç ÀνºÅϽº°¡ ¸¸µç °ÍÀÌ ¾Æ´Ï¹Ç·Î ¿©±â¼­ Æı«ÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. ¸¸¾à ÀÚ½ÅÀÌ ÃÖ¼ÒÈ­µÇ¾î ÀÖ´Â »óȲÀ̶ó¸é º¹±¸ÇÏ¿© »ç¿ëÀÚ°¡ Áö½ÃÇÑ ÆÄÀÏÀ» Á¦´ë·Î ¿­¾úÀ½À» ¸íÈ®È÷ º¸¿©ÁÖµµ·Ï Çß´Ù.

bAllowMulti ¿É¼Çµµ »ç¿ëÀÚ°¡ ÃëÇâ¿¡ µû¶ó ¼±ÅÃÇÒ ¼ö ÀÖ´Â ¿É¼ÇÀ̹ǷΠ¼³Á¤ ´ëÈ­»óÀÚ¿¡¼­ °ªÀ» º¯°æÇÒ ¼ö ÀÖ´Ù. ÀÌ ¿É¼ÇÀÌ ±â·ÏµÇ´Â ½ÃÁ¡Àº ´Ù¸¥ ¿É¼Ç°ú´Â ´Þ¸® ¾ÆÁÖ Æ¯ÀÌÇÏ´Ù. ApplyNow¿¡ ´ÙÀ½ Äڵ带 ÀÛ¼ºÇϵµ·Ï ÇÏÀÚ.

 

void ApplyNow()

{

     HWND hChild;

     SInfo *pSi;

     HDC hdc;

     LOGFONT tFont;

 

    if (Option.bAllowMulti != NewOption.bAllowMulti) {

        SHRegWriteInt(SHCU,KEY"Setting","bAllowMulti",NewOption.bAllowMulti);

    }

     ....

 

»ç¿ëÀÚ°¡ ÀÌ ¿É¼ÇÀ» º¯°æÇßÀ¸¸é ±× Áï½Ã ·¹Áö½ºÆ®¸®¿¡ ±â·ÏÇØ ¹ö¸°´Ù. ¿Ö³ÄÇϸé ÀÌ ¿É¼ÇÀÇ È¿°ú´Â ÇöÀç ÀνºÅϽº¿¡¸¸ ±¹ÇѵǴ °ÍÀÌ ¾Æ´Ï¶ó ÀÌÈĺÎÅÍ ½ÇÇàµÉ ¸ðµç ÀνºÅϽº°¡ ÂüÁ¶ÇØ¾ß Çϱ⠶§¹®ÀÌ´Ù. ¿É¼Ç º¯°æÀÇ È¿°ú°¡ Áï½Ã ³ªÅ¸³ª±â À§Çؼ­´Â Option::Save ÇÔ¼ö°¡ È£ÃâµÉ ¶§±îÁö ±â´Ù¸± ¼ö ¾ø´Ù. ApplyNow¿¡¼­ ±â·ÏÀ» ÇϹǷΠSave ÇÔ¼ö´Â ÀÌ ¿É¼ÇÀ» ±â·ÏÇÏÁöµµ ¾Ê´Â´Ù. Àû¿ë ½ÃÁ¡, ÀúÀå½ÃÁ¡, Àд ½ÃÁ¡¿¡ À־ ´Ù¸¥ ¿É¼Çµé°ú´Â Á¤¸» ¸¹ÀÌ ´Ù¸¥ ƯÀÌ ¿É¼ÇÀÌ´Ù.