ÀÚ¿ø ¹× ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ

Ç÷§Æû Äھ ½ÇÇà ÁßÀ̰í ÀÚ¿ø Ç÷¯±×ÀÎÀÌ È°¼º »óÅÂÀ̸é ÀÛ¾÷°ø°£ÀÌ IWorkspace ÀνºÅϽº·Î Ç¥½ÃµÇ´Âµ¥, ÀÌ ÀνºÅϽº´Â Æ÷ÇÔµÈ ÀÚ¿ø¿¡ ¾×¼¼½ºÇϱâ À§ÇØ ÇÁ·ÎÅäÄÝÀ» Á¦°øÇÕ´Ï´Ù. IWorkspace ÀνºÅϽº´Â ¿¬°üµÈ ÆÄÀÏ ¹× µð·ºÅ丮 ÄÝ·º¼ÇÀ» ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡ Ç¥½ÃÇÕ´Ï´Ù. org.eclipse.core.resourcesÀÇ ÀÚ¿ø Ç÷¯±×ÀΠŬ·¡½º¿¡¼­ ÀÛ¾÷°ø°£¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

ResourcesPlugin.getWorkspace(); 

ÀÚ¿ø Ç÷¯±×ÀÎÀÌ ½ÇÇà ÁßÀÌ ¾Æ´Ï¸é, ÀÛ¾÷°ø°£Àº ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ¿¡¸¸ Á¸ÀçÇϰí Ç¥ÁØ ÆÄÀÏ ±â¹Ý µµ±¸¸¦ ÅëÇØ »ç¿ëÀÚ°¡ À̸¦ º¸°Å³ª Á¶ÀÛÇÕ´Ï´Ù. ÀÚ¿ø Ç÷¯±×ÀÎ API¸¦ ¼³¸íÇϸ鼭 µð½ºÅ©¿¡¼­ ÀÛ¾÷°ø°£ÀÇ ¸ð¾çÀ» »ìÆì º¸µµ·Ï ÇսôÙ.

µð½ºÅ©ÀÇ »ùÇà Ʈ¸®

Ç÷§Æû SDK¸¦ ¼³Ä¡ÇßÀ» ¶§ ¼±ÅÃÇÑ µð·ºÅ丮¿¡ ÆÄÀÏ ¾ÐÃàÀ» Ç®¾ú´Âµ¥,  ÀÌ µð·ºÅ丮¸¦ Ç÷§Æû ·çÆ® µð·ºÅ丮¶ó°í ÇÕ´Ï´Ù. ÀÌ µð·ºÅ丮´Â plugins µð·ºÅ丮°¡ Æ÷ÇÔµÈ µð·ºÅ丮ÀÔ´Ï´Ù. Ç÷§Æû ·çÆ® µð·ºÅ丮 ³»¿¡´Â Ç÷§Æû¿¡ ÀÇÇØ ÀÛ¼ºµÇ¾î Á¶À۵Ǵ ÀÚ¿øÀ» º¸À¯ÇÏ´Â µ¥ »ç¿ëµÇ´Â workspace µð·ºÅ丮°¡ ÀÖ½À´Ï´Ù.  workspace µð·ºÅ丮¸¦ »ìÆì º¸¸é ÀÛ¾÷°ø°£¿¡ ÀÖ´Â °¢ ÇÁ·ÎÁ§Æ®¿¡ ´ëÇØ µ¶¸³ ¼­ºêµð·ºÅ丮°¡ ÀÖ½À´Ï´Ù. ÀÌ ¼­ºêµð·ºÅ丮 ³»¿¡ °¢ ÇÁ·ÎÁ§Æ®¿¡ Æ÷ÇÔµÈ ÆÄÀϰú Æú´õ°¡ ÀÖ½À´Ï´Ù.

ÀÌ ¿¹¿¡¼­ SD°¡ c:\MySDK¿¡ ¼³Ä¡µÇ¸é, c:\MySDK\workspace µð·ºÅ丮 ³»¿¡ ÀÛ¾÷°ø°£ÀÇ ÇÁ·ÎÁ§Æ®( MyWeb¿Í MyServlet) À̸§À» µû¶ó À̸§ ÁöÁ¤µÈ ¼­ºêµð·ºÅ丮°¡ ÀÖ½À´Ï´Ù. ÀÌ µð·ºÅ丮¸¦ ÇÁ·ÎÁ§Æ®ÀÇ ÄÁÅÙÃ÷ µð·ºÅ丮¶ó°í ÇÕ´Ï´Ù. ÄÁÅÙÃ÷ µð·ºÅ丮´Â »ç¿ëÀÚ°¡ ÇÁ·ÎÁ§Æ®¸¦ ÀÛ¼ºÇÒ ¶§ Ç÷§Æû¿¡ ÀÇÇØ ÀÛ¼ºµË´Ï´Ù.

°¢ µð·ºÅ丮 ³»¿¡ ÀÛ¾÷°ø°£ÀÇ ÀÚ¿ø Æ®¸®¿¡¼­¿Í µ¿ÀÏÇÑ ¹æ¹ýÀ¸·Î ·¹À̾ƿôµÈ ÇÁ·ÎÁ§Æ® ³»ÀÇ ÆÄÀÏ ¹× Æú´õ°¡ ÀÖ½À´Ï´Ù. ¸ðµç ÆÄÀÏ À̸§Àº µ¿ÀÏÇϸç, ÆÄÀÏ ÄÁÅÙÃ÷´Â ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ ¾×¼¼½ºÇϵç ÀÛ¾÷°ø°£¿¡¼­ ¾×¼¼½ºÇÏµç µ¿ÀÏÇÕ´Ï´Ù. À¯ÀÏÇÏ°Ô ³î¶ó¿î °ÍÀº .project ÆÄÀÏÀÔ´Ï´Ù.

   C:\MySDK\workspace  (workspace root)
      .metadata\ (platform metadata directory
      MyWeb\ (project content directory for MyWeb)
	 .project
         index.html
         images\
            logo.gif
      MyServlet\ (project content directory for MyServlet)
	 .project
         src\
            main.java
         bin\
            main.class

Ç÷§Æû¿¡´Â Ç÷§Æû ³»ºÎ Á¤º¸¸¦ º¸À¯Çϱâ À§ÇÑ Æ¯¼ö .metadata µð·ºÅ丮°¡ ÀÖ½À´Ï´Ù. ÀÛ¾÷°ø°£ÀÇ .metadata µð·ºÅ丮´Â "ºí·¢ ¹Ú½º"·Î °£Áֵ˴ϴÙ. ÀÛ¾÷°ø°£ ±¸Á¶¿¡ ´ëÇÑ Áß¿äÇÑ Á¤º¸(¿¹: ÇÁ·ÎÁ§Æ® ÂüÁ¶»çÇ× ¶Ç´Â ÀÚ¿ø Ư¼º)°¡ ÀÛ¾÷°ø°£ÀÇ ¸ÞŸµ¥ÀÌÅÍ ºÎºÐ¿¡ ÀúÀåµÇ¸ç, Ç÷§Æû API¸¦ ÅëÇØ µµ±¸¿¡ ÀÇÇØ¼­¸¸ Á¤º¸¿¡ ¾×¼¼½ºÇØ¾ß ÇÕ´Ï´Ù.  ÀÏ¹Ý ÆÄÀÏ ½Ã½ºÅÛ API¸¦ »ç¿ëÇÏ¿© ÀÌ ÆÄÀÏÀ» ÆíÁýÇϰųª Á¶ÀÛÇØ¼­´Â ¾ÈµË´Ï´Ù.

±×¸®°í ¸ðµç ÇÁ·ÎÁ§Æ®¿¡´Â ÇÁ·ÎÁ§Æ®¿¡ ´ëÇÑ ¸ÞŸµ¥ÀÌÅͰ¡ º¸°üµÇ´Â °íÀ¯ÇÑ .project ÆÄÀÏÀÌ ÀÖ½À´Ï´Ù. ÀÌ ÆÄÀÏÀº ±âº»ÀûÀ¸·Î ÇÁ·ÎÁ§Æ®ÀÇ IProjectDescription¿¡ ÀÖ´Â Á¤º¸¿Í µð½ºÅ©»ó µ¿µîÇÑ Á¤º¸ÀÔ´Ï´Ù.  

.metadata µð·ºÅ丮¸¦ Á¦¿ÜÇϰí, ÀÛ¾÷°ø°£ µð·ºÅ丮ÀÇ Æú´õ ¹× .project ÆÄÀÏÀº ´Ù¸¥ µµ±¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÌ µð·ºÅ丮ÀÇ ÆÄÀÏ ¹× Æú´õ´Â ÅëÇÕµÇÁö ¾ÊÀº µµ±¸(¿¹: ¹®¼­ ÆíÁý±â ¹× ÆÄÀÏ ½Ã½ºÅÛ À¯Æ¿¸®Æ¼)°¡ Á¶ÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. À¯ÀÏÇÑ ¹®Á¦Á¡Àº »ç¿ëÀÚ°¡ Workbench¿¡¼­ ÀÌ ÆÄÀÏÀ» ÆíÁýÇϰųª ¿ÜºÎÀûÀ¸·Î ÆÄÀÏÀ» ÆíÁýÇÒ ¶§ ÁÖÀÇÇØ¾ß ÇÑ´Ù´Â °ÍÀÔ´Ï´Ù. À̰ÍÀº »ç¿ëÀÚ°¡ µÎ °³ÀÇ µ¶¸³Çü µµ±¸¸¦ »ç¿ëÇÏ¿© ÆÄÀÏÀ» ÆíÁýÇÏ´Â °æ¿ì¿Í ´Ù¸£Áö ¾Ê½À´Ï´Ù. Workbench´Â ÀÚ¿ø¿¡ ´ëÇÑ ÀÛ¾÷°ø°£ º¸±â¸¦ ÆÄÀÏ ½Ã½ºÅÛÀÇ ½ÇÁ¦ »óÅÂ¿Í ÀÏÄ¡½Ã۱â À§ÇØ »õ·Î °íÄ¡±â Á¶ÀÛÀ» Á¦°øÇÕ´Ï´Ù.

ÄÚµåÀÇ »ùÇà Ʈ¸®

ÀÚ¿ø API¸¦ »ç¿ëÇϸé ÀÌ ÀÚ¿ø Æ®¸®¸¦ ÄÚµå·Î Á¶ÀÛÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ¿ø API¸¦ °£·«È÷ »ìÆì º¸±â À§ÇØ ¸î °¡Áö ÄÚµå ½º´ÏÆêÀ» »ìÆì º¸µµ·Ï ÇϰڽÀ´Ï´Ù. ÀÚ¿ø API´Â org.eclipse.core.resources¿¡ ÀÏ·ÃÀÇ ÀÎÅÍÆäÀ̽º·Î Á¤Àǵ˴ϴÙ. ÀÚ¿ø À¯Çü(¿¹: IProject, IFolder ¹× IFile) ¸ðµÎ¿¡ ´ëÇØ ÀÎÅÍÆäÀ̽º°¡ ÀÖ½À´Ï´Ù. ±¤¹üÀ§ÇÑ °øÅë ÇÁ·ÎÅäÄÝÀº IResource¿¡ Á¤Àǵ˴ϴÙ. ÀÚ¿ø ¶Ç´Â ÆÄÀÏ ½Ã½ºÅÛ °æ·Î °°Àº ¼¼±×¸ÕƮȭµÈ °æ·Î¸¦ Ç¥½ÃÇÏ´Â org.eclipse.core.runtime ÀÎÅÍÆäÀ̽º IPathµµ »ç¿ëÇÕ´Ï´Ù.

ÀÚ¿ø Á¶ÀÛÀº java.io.FileÀ» »ç¿ëÇÏ¿© ÆÄÀÏÀ» Á¶ÀÛÇÏ´Â °Í°ú ¸Å¿ì ºñ½ÁÇÕ´Ï´Ù.  API´Â ÇÚµéÀ» ±â¹ÝÀ¸·Î ÇÕ´Ï´Ù. getProject ¶Ç´Â getFolder¿Í °°Àº API¸¦ »ç¿ëÇÒ ¶§ ÇÚµéÀÌ ÀÚ¿øÀ¸·Î ¸®Åϵ˴ϴÙ.  ÇÚµé·Î ¹«¾ùÀΰ¡ ¼öÇàÇÏ·Á°í ½ÃµµÇÒ ¶§±îÁö ÀÚ¿øÀÌ Á¸ÀçÇÑ´Ù´Â º¸ÀåÀ̳ª ¿ä±¸»çÇ×Àº ¾ø½À´Ï´Ù. ÀÚ¿øÀÌ Á¸ÀçÇÏ´Â °ÍÀ¸·Î ¿¹»óµÇ¸é exist ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿© Á¸ÀçÇÏ´ÂÁö È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.  

Ç÷¯±×Àο¡¼­ ÀÛ¾÷°ø°£À» Ž»öÇÏ·Á¸é ÀÛ¾÷°ø°£¿¡¼­ ÀÚ¿ø °èÃþ ±¸Á¶ ¸Ç À§¸¦ Ç¥½ÃÇÏ´Â IWorkspaceRoot¸¦ ¸ÕÀú ¾ò¾î¾ß ÇÕ´Ï´Ù.

IWorkspaceRoot myWorkspaceRoot = ResourcesPlugin.getWorkspace().getRoot();

ÀÛ¾÷°ø°£ ·çÆ®°¡ ÀÖÀ¸¸é, ÀÛ¾÷°ø°£ÀÇ ÇÁ·ÎÁ§Æ®¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖ½À´Ï´Ù.

   IProject myWebProject = myWorkspaceRoot.getProject("MyWeb");
// open if necessary
   if (myWebProject.exists() && !myWebProject.isOpen())
      myWebProject.open(null);

ÇÁ·ÎÁ§Æ®¸¦ Á¶ÀÛÇϱâ Àü¿¡ ¸ÕÀú ÇÁ·ÎÁ§Æ®¸¦ ¿­¾î¾ß ÇÕ´Ï´Ù. ÇÁ·ÎÁ§Æ®¸¦ ¿­¸é µð½ºÅ©¿¡¼­ ÇÁ·ÎÁ§Æ® ±¸Á¶¸¦ Àоî ÇÁ·ÎÁ§Æ®ÀÇ ÀÚ¿ø Æ®¸®¿¡ ´ëÇÑ ³»ºÎ ¸Þ¸ð¸® ¿ÀºêÁ§Æ® Ç¥½Ã¸¦ ÀÛ¼ºÇÕ´Ï´Ù. ÇÁ·ÎÁ§Æ® ¿­±â´Â ¿­¸° °¢ ÇÁ·ÎÁ§Æ®°¡ ³»ºÎÀûÀ¸·Î ÀÚ¿ø Æ®¸®¸¦ Ç¥½ÃÇϱâ À§ÇØ ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ°í ¿­¸° ÇÁ·ÎÁ§Æ®°¡ ¿©·¯ ÀÚ¿ø ¶óÀÌÇÁ »çÀÌŬ À̺¥Æ®(¿¹: ºôµå)¿¡ Âü¿©ÇÏ´Â ¸í½ÃÀûÀÎ Á¶ÀÛÀÔ´Ï´Ù. ÀϹÝÀûÀ¸·Î 󸮿ϷáµÈ ÇÁ·ÎÁ§Æ®¿¡´Â ¾×¼¼½ºÇÒ ¼ö ¾øÀ¸¸ç, ÀÚ¿øÀÌ ÆÄÀÏ ½Ã½ºÅÛ¿¡ °è¼Ó ÀÖ´õ¶óµµ 󸮿ϷáµÈ ÇÁ·ÎÁ§Æ®´Â ºó »óÅ·Πǥ½ÃµË´Ï´Ù.

ÀÌ ÀÚ¿ø ¿¹Á¦ Áß ´Ù¼ö°¡ ÀÚ¿øÀ» Á¶ÀÛÇÒ ¶§ ³Î ¸Å°³º¯¼ö¸¦ Àü´ÞÇÑ´Ù´Â »ç½ÇÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ´Ù¼öÀÇ ÀÚ¿ø Á¶ÀÛÀº ÁøÇà º¸°í ¹× »ç¿ëÀÚ Ãë¼Ò µîÀÌ ÇÊ¿äÇÒ ¼ö ÀÖ´Â º¹ÀâÇÑ ÀÛ¾÷ÀÔ´Ï´Ù. Äڵ忡 »ç¿ëÀÚ ÀÎÅÍÆäÀ̽º°¡ ÀÖ´Â °æ¿ì, ÀϹÝÀûÀ¸·Î ÀÚ¿øÀÌ Á¶ÀÛµÉ ¶§ ÀÚ¿ø Ç÷¯±×ÀÎÀÌ ÁøÇàÀ» º¸°íÇÒ ¼ö ÀÖµµ·Ï ÇÏ°í »ç¿ëÀÚ°¡ ¿øÇϸé Á¶ÀÛÀ» Ãë¼ÒÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â IProgressMonitor¸¦ Àü´ÞÇÕ´Ï´Ù.  Áö±ÝÀº ÁøÇà ¸ð´ÏÅͰ¡ ¾øÀ½À» Ç¥½ÃÇÏ´Â null¸¸ Àü´ÞÇÕ´Ï´Ù.

ÇÁ·ÎÁ§Æ®°¡ ¿­·Á ÀÖÀ¸¸é Æú´õ ¹× ÆÄÀÏ¿¡ ¾×¼¼½ºÇÒ ¼ö ÀÖÀ¸¸ç, Æú´õ ¹× ÆÄÀÏÀ» Ãß°¡·Î ÀÛ¼ºÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ´ÙÀ½ ¿¹Á¦¿¡¼­´Â ÀÛ¾÷°ø°£ ¹Û¿¡ À§Ä¡ÇÑ ÆÄÀÏ ÄÁÅÙÃ÷¿¡¼­ ÆÄÀÏ ÀÚ¿øÀ» ÀÛ¼ºÇÕ´Ï´Ù.

   IFolder imagesFolder = myWebProject.getFolder("images");
if (imagesFolder.exists()) {
      // create a new file
      IFile newLogo = imagesFolder.getFile("newLogo.gif");
      FileInputStream fileStream = new FileInputStream(
         "c:/MyOtherData/newLogo.gif");
      newLogo.create(fileStream, false, null);
      // create closes the file stream, so no worries.   
   }

À§ ¿¹¿¡¼­ ù ¹øÂ° ÇàÀº À̹ÌÁö Æú´õ¿¡ ´ëÇÑ ÇÚµéÀ» ¾ò½À´Ï´Ù. Æú´õ¿¡ ´ëÇÑ ÀÛ¾÷À» ¼öÇàÇϱâ Àü¿¡ Æú´õ°¡ ÀÖ´ÂÁö È®ÀÎÇØ¾ß ÇÕ´Ï´Ù. ¸¶Âù°¡Áö·Î newLogo ÆÄÀÏÀ» ¾òÀ» ¶§ ¸¶Áö¸· Çà¿¡¼­ ÆÄÀÏÀ» ÀÛ¼ºÇÒ ¶§±îÁö ÇÚµéÀÌ ½ÇÁ¦ ÆÄÀÏÀ» Ç¥½ÃÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ ¿¹¿¡¼­´Â logo.gif ÄÁÅÙÃ÷·Î ä¿ö ÆÄÀÏÀ» ÀÛ¼ºÇÕ´Ï´Ù.

´ÙÀ½ ½º´ÏÆêÀº ÄÁÅÙÃ÷¿¡¼­ »õ ÆÄÀÏÀ» ÀÛ¼ºÇÏÁö ¾Ê°í ¿ø·¡ ·Î°í¿¡¼­ newLogo ÆÄÀÏÀ» º¹»çÇÑ´Ù´Â °ÍÀ» Á¦¿ÜÇϸé ÀÌÀü ½º´ÏÆê°ú À¯»çÇÕ´Ï´Ù.

   IFile logo = imagesFolder.getFile("logo.gif");
   if (logo.exists()) {
      IPath newLogoPath = new Path("newLogo.gif");
      logo.copy(newLogoPath, false, null);
      IFile newLogo = imagesFolder.getFile("newLogo.gif");
      ...
   }

¸¶Áö¸·À¸·Î, ¶Ç´Ù¸¥ À̹ÌÁö Æú´õ¸¦ ÀÛ¼ºÇÏ¿© »õ·Î ÀÛ¼ºÇÑ ÆÄÀÏÀ» ±× Æú´õ·Î À̵¿ÇÕ´Ï´Ù. ÆÄÀÏ À̸§À» ¹Ù²ã »õ·Î ÀÛ¼ºÇÑ ÆÄÀÏÀÌ ÀÌÀü ÆÄÀÏÀ» µ¤¾î¾²Áö ¾Êµµ·Ï ÇÕ´Ï´Ù.

   ...
   IFolder newImagesFolder = myWebProject.getFolder("newimages");
   newImagesFolder.create(false, true, null);
   IPath renamedPath = newImagesFolder.getFullPath().append("renamedLogo.gif");
   newLogo.move(renamedPath, false, null);
   IFile renamedLogo = newImagesFolder.getFile("renamedLogo.gif");

´Ù¼öÀÇ ÀÚ¿ø API ¸Þ¼Òµå¿¡´Â ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛÀÇ ÇØ´ç ÆÄÀϰú µ¿±âÈ­µÇÁö ¾ÊÀº ÀÚ¿øÀÇ °»½Å ¿©ºÎ¸¦ ÁöÁ¤ÇÏ´Â force ºÎ¿ï Ç÷¡±×°¡ ÀÖ½À´Ï´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â IResource¸¦ ÂüÁ¶ÇϽʽÿÀ. IResource.isSynchronized¸¦ »ç¿ëÇÏ¿© ƯÁ¤ ÀÚ¿øÀÌ ÆÄÀÏ ½Ã½ºÅÛ°ú µ¿±âÈ­µÇ¾ú´ÂÁö È®ÀÎÇÒ ¼öµµ ÀÖ½À´Ï´Ù.

ÀÚ¿øÀ» µð½ºÅ© À§Ä¡¿¡ ¸ÊÇÎ

»ùÇà ÀÚ¿ø Æ®¸®¿¡¼­, ¸ðµç ÇÁ·ÎÁ§Æ® ÄÁÅÙÃ÷ µð·ºÅ丮°¡ Ç÷§Æû ·çÆ® µð·ºÅ丮(C:\MySDK\workspace) ¾Æ·¡ÀÇ workspace µð·ºÅ丮¿¡ ÀÖ´Ù°í °¡Á¤Çß½À´Ï´Ù. À̰ÍÀº ÇÁ·ÎÁ§Æ®ÀÇ ±âº» ±¸¼ºÀÔ´Ï´Ù.  ±×·¯³ª ÇÁ·ÎÁ§Æ®ÀÇ ÄÁÅÙÃ÷ µð·ºÅ丮¸¦ ÆÄÀÏ ½Ã½ºÅÛ(´Ù¸¥ µð½ºÅ© µå¶óÀ̺ê)ÀÇ ÀÓÀÇÀÇ µð·ºÅ丮¿¡ ´Ù½Ã ¸ÊÇÎÇÒ ¼ö ÀÖ½À´Ï´Ù.

´Ù¸¥ ÇÁ·ÎÁ§Æ®¿¡ µ¶¸³ÀûÀ¸·Î ÇÁ·ÎÁ§Æ® À§Ä¡¸¦ ¸ÊÇÎÇÏ´Â ±â´ÉÀ» »ç¿ëÇÏ¸é »ç¿ëÀÚ°¡ ÇÁ·ÎÁ§Æ® ÄÁÅÙÃ÷¸¦ ÇÁ·ÎÁ§Æ® ¹× ÇÁ·ÎÁ§Æ® ÆÀ¿¡ Àû´çÇÑ À§Ä¡¿¡ ÀúÀåÇÒ ¼ö ÀÖ½À´Ï´Ù. ÇÁ·ÎÁ§Æ®ÀÇ ÄÁÅÙÃ÷ µð·ºÅ丮´Â "°³¹æÀû"À̾î¾ß ÇÕ´Ï´Ù. ÀÌ´Â »ç¿ëÀÚ°¡ Workbench¿Í Ç÷¯±×ÀÎÀ» »ç¿ëÇÏ¿© ¶Ç´Â ÆÄÀÏ ½Ã½ºÅÛ ±â¹ÝÀÇ µµ±¸¿Í ÆíÁý±â¸¦ »ç¿ëÇÏ¿© °£Á¢ÀûÀ¸·Î ÀÚ¿øÀ» ÀÛ¼º, ¼öÁ¤, »èÁ¦ÇÒ ¼ö ÀÖÀ½À» ÀǹÌÇÕ´Ï´Ù.

ÀÚ¿ø °æ·Î À̸§Àº ¿ÏÀüÇÑ ÆÄÀÏ ½Ã½ºÅÛ °æ·Î°¡ ¾Æ´Õ´Ï´Ù. ÀÚ¿ø °æ·Î´Â Ç×»ó ÇÁ·ÎÁ§Æ® À§Ä¡(´ë°³ workspace µð·ºÅ丮)¸¦ ±â¹ÝÀ¸·Î ÇÕ´Ï´Ù. ÀÚ¿ø¿¡ ´ëÇÑ Àüü ÆÄÀÏ ½Ã½ºÅÛ °æ·Î¸¦ ¾òÀ¸·Á¸é IResource.getLocation À» »ç¿ëÇÏ¿© À§Ä¡¸¦ Á¶È¸ÇØ¾ß ÇÕ´Ï´Ù. ±×·¯³ª ÇØ´ç ¸Þ¼Òµå´Â µ¥ÀÌÅÍ ±¸Á¶¿¡ ´ëÇÑ ´Ü¼øÇÑ setter ¸Þ¼ÒµåÀ̹ǷΠÀ§Ä¡¸¦ º¯°æÇϱâ À§Çؼ­ IProjectDescription.setLocationÀ» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù.   

¹Ý´ë·Î ÆÄÀÏ ½Ã½ºÅÛ °æ·Î°¡ Á¦°øµÈ ÇØ´çÇÏ´Â ÀÚ¿ø ¿ÀºêÁ§Æ®¸¦ °¡Á®¿À·Á¸é IWorkspaceRoot.getFileForLocation ¶Ç´Â IWorkspaceRoot.getContainerForLocation¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

ÀÚ¿ø API ¹× ÆÄÀÏ ½Ã½ºÅÛ

ÀÚ¿ø API¸¦ »ç¿ëÇÏ¿© ÀÛ¾÷°ø°£ÀÇ ÀÚ¿ø Æ®¸®¸¦ ¼öÁ¤ÇÒ °æ¿ì, ÆÄÀÏÀÌ ÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ º¯°æµÇ¸ç ÀÚ¿ø ¿ÀºêÁ§Æ®°¡ °»½ÅµË´Ï´Ù. Ç÷§Æû API ¹Û¿¡¼­ ¹ß»ýÇÏ´Â ÀÚ¿ø ÆÄÀÏ¿¡ ´ëÇÑ º¯°æ»çÇ×Àº ¾î¶»°Ô µÉ±î¿ä?

ÀÚ¿ø¿¡ ´ëÇÑ ¿ÜºÎ º¯°æ»çÇ×Àº ÀÚ¿ø Ç÷¯±×Àο¡ ÀÇÇØ ¹ß°ßµÉ ¶§±îÁö ÀÛ¾÷°ø°£ ¹× ÀÚ¿ø ¿ÀºêÁ§Æ®¿¡ ¹Ý¿µµÇÁö ¾Ê½À´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®´Â ÀÚ¿ø API¸¦ »ç¿ëÇÏ¿© ÀÛ¾÷°ø°£ ¹× ÀÚ¿ø ¿ÀºêÁ§Æ®¸¦ »ç¿ëÀÚÀÇ °³ÀÔ ¾øÀÌ ·ÎÄà ÆÄÀÏ ½Ã½ºÅÛ°ú ÀÏÄ¡½Ãų ¼ö ÀÖ½À´Ï´Ù. »ç¿ëÀÚ´Â Ç×»ó ¸í½ÃÀûÀ¸·Î WorkbenchÀÇ ÀÚ¿ø ³×ºñ°ÔÀÌÅÍ º¸±â¿¡¼­ »õ·Î °íÄ¡±â¸¦ °­Á¦ ½ÇÇàÇÒ ¼ö ÀÖ½À´Ï´Ù. 

Âü°í: ÀÚ¿ø API¿¡¼­ ´Ù¼öÀÇ ¸Þ¼Òµå¿¡ ÆÄÀÏ ½Ã½ºÅÛ°ú µ¿±âÈ­µÇÁö ¾ÊÀº ÀÚ¿øÀ» ó¸®ÇÏ´Â ¹æ¹ýÀ» ÁöÁ¤ÇÏ´Â force(°­Á¦ ½ÇÇà) ¸Å°³º¯¼ö°¡ Æ÷ÇԵǾî ÀÖ½À´Ï´Ù. °¢ ¸Þ¼Òµå¿¡ ´ëÇÑ API ÂüÁ¶´Â ÀÌ ¸Å°³º¯¼ö¿¡ ´ëÇÑ Æ¯Á¤ Á¤º¸¸¦ Á¦°øÇÕ´Ï´Ù. API¿¡¼­ ±âŸ ¸Þ¼Òµå´Â ÆÄÀÏ ½Ã½ºÅÛ »õ·Î °íÄ¡±â¿¡ ´ëÇÑ ÇÁ·Î±×·¥ Á¦¾î(¿¹: IResource.refreshLocal(int depth, IProgressMonitor monitor)¸¦ Çã¿ëÇÕ´Ï´Ù. ¿Ã¹Ù¸¥ »ç¿ë¹ý°ú ¹®Á¦Á¡¿¡ ´ëÇÑ Á¤º¸´Â IResource¸¦ ÂüÁ¶ÇϽʽÿÀ.

Copyright IBM Corporation and others 2000, 2003.