ºê·¯½Ã´Â ¸éÀ» ä»öÇÏ´Â GDI ¿ÀºêÁ§Æ®ÀÌ´Ù. ÆæÀº Pen Ŭ·¡½º Çϳª·Î ¸ðµÎ Ç¥ÇöÇÒ ¼ö ÀÖÁö¸¸ ºê·¯½Ã´Â ä»öÇÏ´Â ¹«´Ì¸¦ ¸¸µå´Â ¹æ¹ý¿¡ µû¶ó ¿©·¯ °¡Áö Á¾·ù·Î ³ª´©¾îÁö¸ç º¹ÀâÇÏÁö´Â ¾ÊÁö¸¸ Ŭ·¡½º °èÃþÀ» ±¸¼ºÇÏ°í ÀÖ´Ù.
Brush´Â ºê·¯½Ã ¿ÀºêÁ§Æ®ÀÇ ·çÆ® Ŭ·¡½ºÀÌµÇ º°´Ù¸¥ ±â´ÉÀº ¾ø°í ¿¡·¯ Äڵ带 Á¶»çÇÏ´Â GetLastStatus¿Í ºê·¯½ÃÀÇ Á¾·ù¸¦ ÆǺ°ÇÏ´Â GetType Á¤µµÀÇ ¸â¹ö ÇÔ¼ö¸¸ °¡Áö°í ÀÖ´Ù. Ãß»ó Ŭ·¡½ºÀ̹ǷΠÀνºÅϽº¸¦ »ý¼ºÇÒ ¼ö ¾øÀ¸¸ç ´Ù¸¸ ¸ðµç ºê·¯½Ã¸¦ ´ëÇ¥Çϴ ŸÀÔÀ¸·Î¼¸¸ »ç¿ëµÈ´Ù. ÇÔ¼öÀÇ Àμö·Î ºê·¯½Ã¸¦ Àü´ÞÇÒ ¶§ ÀϹÝÀûÀÎ ºê·¯½Ã¸¦ Ç¥ÇöÇÒ ¼ö ÀÖ´Â ´ëÇ¥ ŸÀÔÀÌ ÇÊ¿äÇÏ¸ç ±×·¡¼ »ó¼Ó °èÃþÀ» ±¸¼ºÇÏ´Â °ÍÀÌ´Ù. ¸éÀ» ä¿ì´Â Fill* ÇÔ¼öµéÀº ù ¹ø° Àμö·Î Ç×»ó Brush *¸¦ ¿ä±¸ÇϹǷΠBrush·ÎºÎÅÍ ÆÄ»ýµÈ Ŭ·¡½ºÀÇ ¸ðµç °´Ã¼¸¦ Àü´ÞÇÒ ¼ö ÀÖ´Ù.
¿¹ Á¦ : GdiPlusBrush |
´Ù¼¸ Á¾·ùÀÇ ºê·¯½Ã Áß °¡Àå °£´ÜÇÑ ºê·¯½Ã´Â ´Ü»öÀ¸·Î¸¸ ¸éÀ» ä¿ì´Â SolidBrushÀÌ¸ç »ý¼ºÀÚ·Î ¿øÇÏ´Â »ö»ó¸¸ Àü´ÞÇÏ¸é µÈ´Ù.
SolidBrush(const Color &color);
ÀÌ ºê·¯½Ã·Î ¸éÀ» ä¿ì¸é color »ö»óÀ¸·Î µµÇü ³»ºÎ°¡ ±×·ÁÁø´Ù. ºê·¯½Ã°¡ ¸¸µé¾îÁø ÈÄ¿¡µµ GetColor, SetColor ÇÔ¼ö·Î ¾ðÁ¦µçÁö »ö»óÀ» Á¶»ç ¹× º¯°æÇÒ ¼ö ÀÖ´Ù. ´ÙÀ½ ÄÚµå´Â ÃÊ·Ï»ö ºê·¯½Ã¸¦ ¸¸µç ÈÄ Å¸¿ø ³»ºÎ¸¦ Ä¥ÇÏ°í »¡°£»ö ÆæÀ¸·Î ¿øÁÖ¸¦ ±×¸°´Ù.
SolidBrush S(Color(0,255,0));
Pen P(Color(255,0,0),3);
Rect R(10,10,300,150);
G.FillEllipse(&S,R);
G.DrawEllipse(&P,R);
ÇØÄ¡ ºê·¯½Ã´Â ¹«´Ì°¡ ÀÖ´Â ºê·¯½ÃÀÌ¸ç ´Ü»öÀÇ ºê·¯½Ãº¸´Ù Á¶±Ý ´õ º¹ÀâÇÑ Ã¤¿ì±â¸¦ ÇÒ ¼ö ÀÖ´Ù. »ý¼ºÀÚ´Â ´ÙÀ½°ú °°´Ù.
HatchBrush(HatchStyle hatchStyle, const Color &foreColor, const Color &backColor);
ù ¹ø° Àμö·Î ¹«´ÌÀÇ Á¾·ù¸¦ ÁöÁ¤Çϴµ¥ ¹«·Á 52°³³ª µÇ´Â ¹«´Ì°¡ Á¦°øµÈ´Ù. °¢ ¹«´ÌÀÇ À̸§Àº HatchStyle ¿°Å »ó¼ö·Î Á¤ÀǵǾî Àִµ¥ ³Ê¹« Á¾·ù°¡ ¸¹±â ¶§¹®¿¡ À̸§À¸·ÎºÎÅÍ ½ÇÁ¦ ¸ð¾çÀ» À¯ÃßÇϱâ´Â ¾î·Æ´Ù. foreColor´Â ¹«´Ì¸¦ ±¸¼ºÇÏ´Â ¼±ºÐµéÀÇ »ö»óÀ̸ç backColor´Â ¼±ºÐ µÚÂÊÀÇ ¹è°æ »ö»óÀÌ´Ù. »ö»óÀ» ÀÚÀ¯·Ó°Ô ÁöÁ¤ÇÒ ¼ö´Â ÀÖÁö¸¸ µÎ °¡Áö »ö»ó¸¸ »ç¿ëÇÒ ¼ö ÀÖÀ¸¹Ç·Î ¾î·°Å³ª Èæ¹éÀÎ ¼ÀÀÌ´Ù. ¾î¶² ¹«´ÌµéÀÌ Á¦°øµÇ´ÂÁö Á÷Á¢ Ãâ·ÂÇØ º¸ÀÚ.
HatchBrush *pH;
int Hatch=HatchStyleMin;
int x,y;
for (y=0;;y++) {
for (x=0;x<8;x++) {
pH=new HatchBrush((HatchStyle)Hatch,Color(0,0,0),Color(255,255,255));
G.FillRectangle(pH,x*80+10,y*50+10,70,40);
delete pH;
Hatch++;
if (Hatch == HatchStyleMax) return;
}
}
GDI¿¡¼´Â ¹«´Ì°¡ ¿©¼¸°³¿¡ ºÒ°úÇÏÁö¸¸ GDI+´Â ±âº»ÀûÀ¸·Î Á¦°øµÇ´Â ¹«´ÌµéÀÌ ¿ö³« ´Ù¾çÇؼ º° ºÎÁ·ÇÔÀ» ´À³¢Áö´Â ¾ÊÀ» °ÍÀÌ´Ù. HatchBrush Ŭ·¡½º¿¡´Â ½ÇÇàÁß¿¡ ¹«´Ì, Àü°æ, ¹è°æ»öÀ» Á¶»çÇÏ´Â ÇÔ¼ö´Â ÀÖÁö¸¸ º¯°æÇÏ´Â ÇÔ¼ö´Â Á¦°øµÇÁö ¾Ê´Â´Ù. ¸¸¾à ¹«´Ì¸¦ ¹Ù²ã °¡¸ç Ãâ·ÂÇØ¾ß ÇÑ´Ù¸é ¾ÕÀÇ ¿¹Á¦Ã³·³ new, delete ¿¬»êÀÚ·Î ºê·¯½Ã¸¦ »ý¼º, Æı«ÇØ°¡¸ç »ç¿ëÇØ¾ß ÇÑ´Ù.
±×·¡µð¾ðÆ®(Gradient)´Â ºñÅ»±æ, Á¡Â÷ º¯ÇÏ´ÂÀ̶ó´Â ¶æÀε¥ ±×·¡µð¾ðÆ® ºê·¯½Ã´Â ÁöÁ¤ÇÑ µÎ »ö»óÀÌ Á¡Á¡ º¯ÇÏ´Â ¸ð¾çÀ¸·Î ä»öÇÏ´Â ºê·¯½ÃÀÌ´Ù. »ö»óÀÌ º¯°æµÇ´Â ¹æ½Ä¿¡ µû¶ó Á÷¼± ±×·¡µð¾ðÆ®¿Í Æнº ±×·¡µð¾ðÆ® µÎ Á¾·ù°¡ ÀÖ´Ù. »ó´ëÀûÀ¸·Î °£´ÜÇÑ Á÷¼± ±×·¡µð¾ðÆ® ºê·¯½ÃºÎÅÍ ¿¬±¸ÇØ º¸ÀÚ. ÃÑ 6°³ÀÇ »ý¼ºÀÚ°¡ Àִµ¥ Á¤¼ö ¹öÀü 3°¡Áö¸¸ ¾Ë¾Æ µÎ¸é µÈ´Ù.
LinearGradientBrush(const Point &point1, const Point &point2, const Color &color1, const Color &color2);
LinearGradientBrush(const Rect &rect, const Color &color1, const Color &color2, LinearGradientMode mode);
LinearGradientBrush(const Rect &rect, const Color &color1, const Color &color2, REAL angle, BOOL isAngleScalable);
ù ¹ø° »ý¼ºÀÚ´Â µÎ °³ÀÇ Á¡°ú °¢ Á¡ÀÇ »ö»óÀ» ÁöÁ¤Çϴµ¥ ½ÃÀÛÁ¡¿¡ ½ÃÀÛÁ¡ »ö»óÀ» Ä¥ÇÏ°í ³¡Á¡¿¡´Â ³¡Á¡ »ö»óÀ» Ä¥Çϸç Áß°£ ´Ü°è´Â µÎ Á¡¿¡¼ÀÇ »ó´ëÀû °Å¸®·Î Áß°£»öÀ» °è»êÇÏ¿© Ä¥ÇÑ´Ù. ´ÙÀ½Àº ¼öÆò¼±»ó¿¡ ÀÖ´Â µÎ Á¡¿¡ ´ëÇØ °ËÁ¤»ö°ú ÆĶõ»öÀ» ÁöÁ¤ÇÏ¿© ±×·¡µð¾ðÆ® ºê·¯½Ã¸¦ »ý¼ºÇÑ´Ù.
LinearGradientBrush LGB(Point(0,0),Point(100,0),Color(0,0,255),Color(0,0,0));
G.FillRectangle(&LGB,0,0,100,100);
G.FillRectangle(&LGB,10,110,350,100);
(0,0)Àº ÆĶõ»öÀ¸·Î (100,0)Àº °ËÁ¤»öÀ¸·Î Ä¥ÇØÁö¸ç Áß°£ ÁÂÇ¥µéÀº ÆĶõ»ö°ú °ËÁ¤»öÀÇ È¥ÇÕ»öÀ¸·Î Ä¥ÇØÁø´Ù. (0,0)¿¡ °¡±î¿î (10,0)Àº ¾à°£ ¾îµÎ¿î ÆĶõ»öÀÌ µÉ °ÍÀ̸ç (100,0)¿¡ °¡±î¿î (90,0)Àº °ÅÀÇ °ËÁ¤»ö¿¡ °¡±î¿î »öÀÌ µÇ¸ç Á¤ Áß¾ÓÀÎ (50,0)Àº ÆĶõ»ö°ú °ËÁ¤»öÀÌ ¹ÝÂë ¼¯ÀÎ »öÀÌ µÉ °ÍÀÌ´Ù.
½ÃÀÛÁ¡, ³¡Á¡ ÁÂÇ¥º¸´Ù ´õ Å« µµÇüÀ» ±×¸®¸é ¹«´Ì°¡ °è¼ÓÀûÀ¸·Î ¹Ýº¹µÈ´Ù. µµÇüÀÇ ½ÃÀÛÁ¡ºÎÅÍ ºê·¯½ÃÀÇ ¹«´Ì°¡ ½ÃÀ۵Ǵ °ÍÀÌ ¾Æ´ÔÀ» À¯ÀÇÇϵµ·Ï ÇÏÀÚ. ½ÃÀÛÁ¡°ú ³¡Á¡ÀÌ °°Àº ¼öÆò¼±À̳ª ¼öÁ÷¼±¿¡ ÀÖÁö ¾ÊÀ» °æ¿ì´Â ¹«´Ìµµ ºñ½ºµëÇØÁø´Ù.
LinearGradientBrush LGB(Point(200,100),Point(400,200),Color(0,0,255),Color(255,255,255));
G.FillRectangle(&LGB,0,0,600,300);
À̶§ ½ÃÀÛÁ¡ÀÇ »ö»óÀº µÎ Á¡À» ÀÕ´Â ¼±ºÐ°ú Á÷±³ÇÏ´Â ¼öÁ÷¼±(¹æÇâ¼±)¿¡ Á¤·ÄµÇ¾î »ö»óÀÌ º¯ÇØ°¡´Â ¹æÇâ°ú´Â Á÷°¢À» ÀÌ·é´Ù. ¼³¸íÀº Á» ¾î·ÆÁö¸¸ °á°ú¸¦ º¸¸é »ó½ÄÀûÀÎ ¼öÁØ¿¡¼ ÀÌ·± Á¤·Ä ¹æ½ÄÀ» ÀÌÇØÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
µÎ¹ø° »ý¼ºÀڴ ä»öÇÒ »ç°¢ ¿µ¿ª°ú ¹æÇâÀ» ÁöÁ¤ÇÏ´Â ¹æ½ÄÀ¸·Î ±×·¡µð¾ðÆ® ºê·¯½Ã¸¦ »ý¼ºÇÑ´Ù. ¸¶Áö¸· Àμö mode´Â ±×·¡µð¾ðÆ® ¹æÇâÀ» ÁöÁ¤ÇÏ´Â ¿°ÅÇüÀÌ¸ç ¹æÇâ¿¡ µû¶ó 4°¡Áö °ªÀÌ ÀÖ´Ù. ´ÙÀ½ ÄÚµå´Â °ËÁ¤»ö°ú Èò»öÀÇ ±×·¡µð¾ðÆ® ºê·¯½Ã¸¦ ¸¸µéµÇ 4°¡Áö ¹æÇâÀ¸·Î °¢°¢ ±×·Á º¸¾Ò´Ù.
LinearGradientBrush LGB1(Rect(0,0,100,100),Color(0,0,0),Color(255,255,255),
LinearGradientModeHorizontal);
LinearGradientBrush LGB2(Rect(100,0,100,100),Color(0,0,0),Color(255,255,255),
LinearGradientModeVertical);
LinearGradientBrush LGB3(Rect(200,0,100,100),Color(0,0,0),Color(255,255,255),
LinearGradientModeForwardDiagonal);
LinearGradientBrush LGB4(Rect(300,0,100,100),Color(0,0,0),Color(255,255,255),
LinearGradientModeBackwardDiagonal);
G.FillRectangle(&LGB1,0,0,100,100);
G.FillRectangle(&LGB2,100,0,100,100);
G.FillRectangle(&LGB3,200,0,100,100);
G.FillRectangle(&LGB4,300,0,100,100);
±×·¡µð¾ðÆ® ¹æÇâÀÌ ¼öÆò(¿ÞÂÊ¿¡¼ ¿À¸¥ÂÊ), ¼öÁ÷(À§¿¡¼ ¾Æ·¡ÂÊ), Á»ó´Ü¿¡¼ ¿ìÇÏ´Ü(¿ìÇÏÇâ)À¸·Î, ¿ì»ó´Ü¿¡¼ ÁÂÇÏ´Ü(¿ì»óÇâ)À¸·Î °¢°¢ ´Ù¸£´Ù. Á÷»ç°¢ ¿µ¿ª¿¡ ´ëÇØ ±×·¡µð¾ðÆ® ºê·¯½Ã¸¦ Àû¿ëÇØ¾ß ÇÑ´Ù¸é µÎ ¹ø° »ý¼ºÀÚ¸¦ »ç¿ëÇÏ´Â °ÍÀÌ °¡Àå Æí¸®ÇÏ´Ù.
¼¼¹ø° »ý¼ºÀÚ´Â »ç°¢ ¿µ¿ª°ú ¹æÇâ¼±ÀÇ °¢µµ¸¦ ÁöÁ¤ÇÑ´Ù. °¢µµ°¡ 0ÀÏ °æ¿ì »ç°¢ ¿µ¿ªÀÇ Á»ó´Ü ¼öÆò¼±ÀÌ ¹æÇâ¼±ÀÌ µÇ¸ç °¢µµ°¡ ÁÖ¾îÁö¸é ¹æÇâ¼±ÀÌ ÁöÁ¤ÇÑ °¢µµ¸¸Å ±â¿ï¾îÁö´Â ½ÄÀÌ´Ù. ¸¶Áö¸· Àμö´Â °¢µµ¸¦ °è»êÇÏ´Â ¹æ½Ä¿¡ ¿µÇâÀ» Áִµ¥ ÀÌ °ªÀ» ÁøÀ§ ¿©ºÎ´Â °á°ú¿¡ Å« ¿µÇâÀ» ÁÖÁö ¾Ê´Â´Ù. ÀÌ »ý¼ºÀÚÀÇ Àμö Àǹ̸¦ Á¤È®ÇÏ°Ô È®ÀÎÇÏ°í ½ÍÀ¸¸é ¿¹Á¦¸¦ ¸¸µé¾î¼ ½ÇÇàÇØ º¸¸é µÈ´Ù.
REAL angle=0;
BOOL bScale=TRUE;
void OnPaint(HDC hdc)
{
Graphics G(hdc);
LinearGradientBrush LGB(Rect(0,0,200,200),Color(0,0,0),Color(255,255,255),
angle,bScale);
G.FillRectangle(&LGB,0,0,200,200);
}
LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
switch(iMessage) {
case WM_KEYDOWN:
if (Mode == TEXT('6')) {
switch (wParam) {
case VK_UP:
angle += 5;
InvalidateRect(hWnd,NULL,FALSE);
return 0;
case VK_DOWN:
angle -= 5;
InvalidateRect(hWnd,NULL,FALSE);
return 0;
case VK_SPACE:
bScale = !bScale;
InvalidateRect(hWnd,NULL,FALSE);
return 0;
}
}
....
»óÇÏ À̵¿ Ä¿¼Å°·Î °¢µµ¸¦ Áõ°¨½ÃÅ°¸é¼ ´Ù½Ã ±×·Á º¸¸é ÀÌ °¢µµ°¡ ±×·¡µð¾ðÆ® ¹æ½Ä¿¡ ¾î¶² ¿µÇâÀ» ¹ÌÄ¡´ÂÁö °üÂûÇØ º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. Å°¸¦ °è¼Ó ´©¸£°í ÀÖÀ¸¸é ¹«´Ì°¡ ȸÀüÇÏ´Â °ÍÀ» º¼ ¼ö ÀÖ´Ù.
ÀÌ ¿Ü¿¡µµ °æ·Î¿¡ ±×·¡µð¾ðÆ®¸¦ ÁöÁ¤ÇÏ´Â PathGradientBrushµµ Àִµ¥ ÀÌ ºê·¯½Ã¿¡ ´ëÇؼ´Â Æнº¸¦ ¾Ë¾Æº» ÈÄ¿¡ ´Ù·ç¾î º¸µµ·Ï ÇÏÀÚ.
ÅؽºÃ³ ºê·¯½Ã´Â ½±°Ô ¸»Çؼ À̹ÌÁö·Î ¹è°æÀ» Ä¥ÇÏ´Â ºê·¯½ÃÀ̸ç GDIÀÇ ÆÐÅÏ ºê·¯½Ã¿¡ ÇØ´çÇÑ´Ù. BMP³ª JPG°°Àº À̹ÌÁö ÆÄÀÏÀ» Àоîµé¿© ÀÌ À̹ÌÁö¸¦ ¹Ýº¹ÀûÀ¸·Î ä¿ö ¸éÀ» ±×¸®´Âµ¥ ÇØÄ¡ ºê·¯½Ã¿¡ ºñÇØ »ö»ó°ú Å©±â¿¡ Á¦¾àÀÌ ¾øÀ¸¹Ç·Î ¿øÇÏ´Â ¾î¶² ¹«´Ì·Îµµ ä»ö °¡´ÉÇÏ´Ù. »ý¼ºÀÚ´Â ´ÙÀ½°ú °°´Ù.
TextureBrush(Image *image, WrapMode wrapMode);
Image °´Ã¼¿¡ À̹ÌÁö¸¦ ¹Ì¸® ÁغñÇÑ ÈÄ ÀÌ °´Ã¼ÀÇ Æ÷ÀÎÅ͸¦ ù ¹ø° Àμö·Î ÁÖ°í µÎ ¹ø° Àμö·Î À̹ÌÁö¸¦ ¹Ýº¹ÇÒ ¹æ¹ýÀ» ÁöÁ¤ÇÑ´Ù. ´Ù¸¥ »ý¼ºÀÚ¸¦ »ç¿ëÇϸé À̹ÌÁöÀÇ ÀϺκи¸À» ºê·¯½Ã·Î »ç¿ëÇÒ ¼öµµ ÀÖ´Ù. ´ÙÀ½ ÄÚµå´Â ÀÚµ¿Â÷ ¸ð¾çÀ¸·Î ÀÛ¾÷ ¿µ¿ª Àüü¸¦ °¡µæ ä¿î´Ù.
Image I(L"Pride200.jpg");
TextureBrush TB(&I,WrapModeTile);
RECT crt;
GetClientRect(hWndMain,&crt);
G.FillRectangle(&TB,0,0,crt.right,crt.bottom);
ÆĶõ»öÀÇ ¿¹»Û ÇÁ¶óÀ̵尡 ÀÛ¾÷ ¿µ¿ªÀ» °¡µæ ä¿ï °ÍÀÌ´Ù. °íÇØ»óµµ ¸ð´ÏÅÍ¿¡¼ Àüü ȸéÀ¸·Î ÃÖ´ëÈÇØ ³õÀ¸¸é ¸¶Ä¡ ÁÖÂ÷Àå°°¾Æ º¸ÀδÙ. Àú°Å ÇÑ´ë »ç´À¶ó ¸¶´©¶óÇÑÅ× ±×·¸°Ô ±¸¹ÚÀ» ¹Þ¾Ò´Âµ¥ Àú·¸°Ô ¸¹Àº °É º¸´Ï Èå¹ËÇÏ´Ù.
µÎ ¹ø° Àμö wrapMode¿¡´Â ´ÙÀ½ ¿°Å »ó¼ö Áß Çϳª¸¦ ÁöÁ¤ÇÑ´Ù.
typedef enum {
WrapModeTile = 0,
WrapModeTileFlipX = 1,
WrapModeTileFlipY = 2,
WrapModeTileFlipXY = 3,
WrapModeClamp = 4
} WrapMode;
wrapModeTileÀº °°Àº ¸ð¾çÀÇ À̹ÌÁö¸¦ °¡·Î, ¼¼·Î·Î °è¼Ó ¹Ýº¹ÇÏ´Â ¹æ½ÄÀÌ´Ù. ¼öÆò, ¼öÁ÷ °¢°¢À¸·Î ¶Ç´Â ¾ç¹æÇâ ¸ðµÎ ¹ÝÀüµÈ ¸ð¾çÀ¸·Î ¹Ýº¹ÇÒ ¼öµµ ÀÖ°í ¹Ýº¹À» ÇÏÁö ¾ÊÀ» ¼öµµ ÀÖ´Ù. ´ÙÀ½ ±×¸²Àº WrapModeTile°ú WrapModeTileFlipX¸¦ ÁöÁ¤ÇÑ °á°úÀÌ´Ù.
WrapModeFlipX ¹Ýº¹À» »ç¿ëÇÏ¸é ¸Å Â¦¼ö¹ø° ±×¸²Àº ¼öÆòÀ¸·Î µÚÁýÇôÁø ¸ð¾çÀ¸·Î ±×·ÁÁø´Ù. ¹Ýº¹ ¸ðµå´Â ±×·¡µð¾ðÆ® ºê·¯½Ã¿¡µµ Àû¿ëÇÒ ¼ö Àִµ¥ Get(Set)WrapMode ¸â¹ö ÇÔ¼ö¸¦ »ç¿ëÇÏ¸é ¾ðÁ¦µçÁö ¹Ýº¹ ¸ðµå¸¦ º¯°æÇÒ ¼ö ÀÖ´Ù.