Eclipse Ç÷§Æû
API »ç¿ë ±ÔÄ¢
¹öÀü 0.15 - ¸¶Áö¸· ¼öÁ¤ ½Ã°£: 2001³â 5¿ù 30ÀÏ 12:00
´ÙÀ½Àº Eclipse Ç÷§Æû API(¹× ±âŸ ±¸¼º¿ä¼Ò)ÀÇ Å¬¶óÀÌ¾ðÆ®¿ë »ç¿ë ±ÔÄ¢ÀÔ´Ï´Ù.
API Á¤ÀÇ
Eclipse Ç÷§ÆûÀº Ŭ¶óÀÌ¾ðÆ®º° »ç¿ëÇÒ API ¿ä¼Ò(Áï, Ç÷¯±×ÀÎÀ» ÀÛ¼º ÁßÀÎ ISV)¸¦ Á¤ÀÇÇÕ´Ï´Ù. ±×·¯¸é Ç÷¯±×ÀÎÀº ÇØ´ç Ŭ¶óÀÌ¾ðÆ®¿¡ ´ëÇØ API ¿ä¼Ò¸¦ Á¤ÀÇÇÒ ¼ö ÀÖ½À´Ï´Ù. API ¿ä¼Ò´Â °ø¿ë ¿ä¼Ò·Î¼,
ÇØ´ç API ¿ä¼Ò°¡ ¼öÇàÇÏ°Ô µÉ ÀÛ¾÷ ¹× »ç¿ëµÇ´Â ¹æ½Ä¿¡ ´ëÇÑ ½ºÆåÀ» Æ÷ÇÔÇÕ´Ï´Ù. API ¿ä¼Ò´Â °è¼Ó Áö¿øµÇ¹Ç·Î
Eclipse Ç÷§Æû ÆÀ¿¡¼´Â ÁöÁ¤µÈ µ¿ÀÛ¿¡¼ ¹þ¾î³ª´Â ±¸Çö ¹ö±×°¡ ÀÖÀ» °æ¿ì ÀÌ ¹®Á¦¸¦ ¼öÁ¤ÇÒ °ÍÀÔ´Ï´Ù. ¶ÇÇÑ API º¯°æ»çÇ× Áß´Ü¿¡ °ü·ÃÇÏ¿© ¸¹Àº ºñ¿ëÀÌ µé±â ¶§¹®¿¡ Eclipse Ç÷§Æû ÆÀ¿¡¼´Â ¿¬¼ÓÀûÀÎ
ÁÖ ¸±¸®½º¸¦ ÅëÇØ API ¿ä¼Ò¸¦ ¹ßÀü½ÃŰ·Á°í ³ë·ÂÇÒ °ÍÀÔ´Ï´Ù.
API¿Í ºñAPIÀÇ ±¸º° ¹æ¹ý
º»ÁúÀûÀ¸·Î, API ¿ä¼Ò´Â ¹®¼ÈµÇ°í ½ºÆåÀÌ ÀÖ´Â ¹Ý¸é, ºñAPI ¿ä¼Ò´Â ³»ºÎ ±¸Çö ¼¼ºÎ»çÇ×À¸·Î¼
º¸Åë °ø°³µÈ ¹®¼³ª ½ºÆåÀÌ ¾ø½À´Ï´Ù. µû¶ó¼ ƯÁ¤ ¹®¼¸¦ ãÀ» ¼ö ¾ø´Â °æ¿ì, ±×°ÍÀº ´ë°³
ÇØ´ç Ç׸ñÀÌ API°¡ ¾Æ´ÔÀ» ³ªÅ¸³À´Ï´Ù.
ºÐ¸íÇÏ°Ô ±¸º°Çϸé, Ç÷§ÆûÀÇ ÄÚµå º£À̽º´Â API ÆÐŰÁö¿Í ºñAPI ÆÐŰÁö·Î ±¸ºÐµÇ¸ç,
¸ðµç API ¿ä¼Ò´Â ÁöÁ¤µÈ API ÆÐŰÁö¿¡¼ ¼±¾ðµË´Ï´Ù.
-
API ÆÐŰÁö - Àû¾îµµ ÇϳªÀÇ API Ŭ·¡½º ¶Ç´Â API ÀÎÅÍÆäÀ̽º¸¦ Æ÷ÇÔÇÏ´Â Java ÆÐŰÁöÀÔ´Ï´Ù. API ÆÐŰÁö À̸§Àº ÇØ´ç ±¸¼º¿ä¼ÒÀÇ ¹®¼¿¡¼ °ø°³µÇ¸ç, °ø°³ °¡´ÉÇÑ °æ¿ì ±¸Çö ¼¼ºÎ»çÇ׸¸ Æ÷ÇÔÇÏ´Â ´Ù¸¥ ¸ðµç
ÆÐŰÁö¿¡´Â ÆÐŰÁö À̸§¿¡ "internal"À̶ó´Â ¹®ÀÚ¿ÀÌ µé¾î ÀÖ½À´Ï´Ù. API ÆÐŰÁö À̸§Àº Ŭ¶óÀ̾ðÆ®
Äڵ忡 Á¤½ÄÀ¸·Î ³ªÅ¸³¯ ¼ö ÀÖ½À´Ï´Ù. ¿Ã¹Ù¸¥ Eclipse Ç÷§ÆûÀÇ °æ¿ì, ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³³´Ï´Ù.
-
org.eclipse.foo.* - ¿¹: org.eclipse.swt.widgets,
org.eclipse.ui ¶Ç´Â org.eclipse.core.runtime
-
org.eclipse.foo.internal.* - ºñAPI, ³»ºÎ ±¸Çö ÆÐŰÁö
-
org.eclipse.foo.examples.* - ºñAPI, ¿¹
-
org.eclipse.foo.tests.* - ºñAPI, Å×½ºÆ® ½ºÀ§Æ®
-
API Ŭ·¡½º ¶Ç´Â ÀÎÅÍÆäÀ̽º - API ÆÐŰÁö¿¡ ÀÖ´Â public Ŭ·¡½º ¶Ç´Â ÀÎÅÍÆäÀ̽º, ±×·¸Áö ¾ÊÀ¸¸é,
´Ù¸¥ API Ŭ·¡½º³ª ÀÎÅÍÆäÀ̽º¿¡ ¼±¾ðµÇ¾ú°Å³ª »ó¼ÓµÈ publicÀ̳ª
protected Ŭ·¡½º ¶Ç´Â ÀÎÅÍÆäÀ̽º ±¸¼º¿øÀÔ´Ï´Ù.
API Ŭ·¡½º ¹× ÀÎÅÍÆäÀ̽ºÀÇ À̸§Àº Ŭ¶óÀÌ¾ðÆ® Äڵ忡 Á¤½ÄÀ¸·Î ³ªÅ¸³¯ ¼ö ÀÖ½À´Ï´Ù.
-
API ¸Þ¼Òµå ¶Ç´Â »ý¼ºÀÚ - API Ŭ·¡½º ¶Ç´Â ÀÎÅÍÆäÀ̽º¿¡¼ ¼±¾ðµÇ¾ú°Å³ª
»ó¼ÓµÈ publicÀ̳ª protected ¸Þ¼Òµå ¶Ç´Â »ý¼ºÀÚÀÔ´Ï´Ù. API ¸Þ¼Òµå À̸§Àº Ŭ¶óÀÌ¾ðÆ® Äڵ忡 Á¤½ÄÀ¸·Î ³ªÅ¸³¯ ¼ö ÀÖ½À´Ï´Ù.
-
API Çʵå - API Ŭ·¡½º ¶Ç´Â ÀÎÅÍÆäÀ̽º¿¡¼ ¼±¾ðµÇ¾ú°Å³ª »ó¼ÓµÈ
public ¶Ç´Â protected ÇʵåÀÔ´Ï´Ù. API Çʵå À̸§Àº Ŭ¶óÀÌ¾ðÆ® Äڵ忡 Á¤½ÄÀ¸·Î
³ªÅ¸³¯ ¼ö ÀÖ½À´Ï´Ù.
±âŸ ¸ðµç Ç׸ñÀº ³»ºÎ ±¸Çö ¼¼ºÎ»çÇ×À¸·Î °£ÁÖµÇ¸ç ¸ðµç Ŭ¶óÀÌ¾ðÆ®¿¡ ¾×¼¼½ºÇÒ ¼ö ¾ø½À´Ï´Ù. ¿Ã¹Ù¸¥ Ŭ¶óÀÌ¾ðÆ® ÄÚµå´Â Java ¸®Ç÷º¼ÇÀ» »ç¿ëÇÏ´Â °æ¿ì¿¡µµ
ºñAPI ¿ä¼ÒÀÇ À̸§À» ÀοëÇØ¼´Â ¾ÈµË´Ï´Ù. ÀϺΠ°æ¿ì, À߸øµÈ ÂüÁ¶¸¦ Çã¿ëÇÏÁö ¾Ê±â À§ÇØ Java ¾ð¾îÀÇ À̸§¿¡ ´ëÇÑ ³»°Ô ÇÊ¿äÇÑ ¿É¼Ç ±ÔÄ¢ÀÌ »ç¿ëµË´Ï´Ù.
±×·¯³ª ´ëºÎºÐÀÇ °æ¿ì¿¡ ÀÌ ±ÔÄ¢À» »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. Áï, ÇϳªÀÇ ´Ü¼øÇÑ ±ÔÄ¢À¸·Î ¹®Á¦Á¡À» ¿ÏÀüÈ÷ ÇØ°áÇÒ
¼ö´Â ¾ø½À´Ï´Ù.
-
°ø½ÄÀûÀ¸·Î ¹®¼ÈµÈ API¸¦ À¯ÁöÇϽʽÿÀ. ÇØ´ç ±¸¼º¿ä¼ÒÀÇ °ø°³µÈ API Javadoc¿¡
¹®¼ÈµÈ ÆÐŰÁö¸¸ ÂüÁ¶ÇϽʽÿÀ.
À̸§¿¡ "internal"ÀÌ Æ÷ÇÔµÈ ´Ù¸¥ ±¸¼º¿ä¼Ò¿¡
¼ÓÇÏ´Â ÆÐŰÁö´Â API°¡ ¾Æ´Ï¹Ç·Î ÂüÁ¶ÇÏÁö ¸¶½Ê½Ã¿À. °ø°³µÈ API
JavadocÀÌ ¾ø´Â ÆÐŰÁöµµ API°¡ ¾Æ´Ï¹Ç·Î ÂüÁ¶ÇÏÁö ¸¶½Ê½Ã¿À.
ÀÏ¹Ý ±ÔÄ¢
API ¿ä¼ÒÀÇ ½ºÆåÀº ÇØ´ç ¿ä¼ÒÀÇ Java ¼Ò½º Äڵ忡 ÀÖ´Â Javadoc ÁÖ¼®¿¡¼ »ý¼ºµË´Ï´Ù. ÀϺΠÀ¯ÇüÀÇ ¿ä¼Ò¿¡¼´Â
½ºÆåÀÌ °è¾à Çü½ÄÀ¸·Î µÇ¾î ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, ¸Þ¼ÒµåÀÇ °æ¿ì¿¡¼ ÀÌ´Â ¸Þ¼Òµå È£ÃâÀÚ¿Í ¸Þ¼Òµå ±¸ÇöÀÚ
°£ÀÇ °è¾àÀÔ´Ï´Ù. ±âº»ÀûÀÎ ±ÔÄ¢Àº ´ÙÀ½°ú °°½À´Ï´Ù.
-
¸ðµç °è¾à»çÇ×À» ÁؼöÇϽʽÿÀ. °è¾àÀº »ç¿ë ÁßÀÎ API ¿ä¼ÒÀÇ °ø°³µÈ Javadoc¿¡ ¼³¸íµÇ¾î ÀÖ½À´Ï´Ù.
API °è¾à¿¡¼ "¹Ýµå½Ã"¶ó´Â Ç¥ÇöÀÌ »ç¿ëµÇ¸é, ÀÌ´Â ÇØ´ç Á¶°Ç¿¡ Ç×»ó ¸¸Á·ÇÏ´Â °è¾à ´ç»çÀÚ¿¡°Ô
Ã¥ÀÓÀÌ ÀÖÀ½À» ÀǹÌÇÕ´Ï´Ù. Á¶°Ç¿¡ ¸¸Á·ÇÏÁö ¸øÇϸé À̴ ƯÁ¤µÇÁö ¾ÊÀº(¿¹±âÄ¡ ¾ÊÀº) °á°ú¸¦ ¹ß»ý½ÃŰ´Â
ÇÁ·Î±×·¡¹Ö ¿À·ù·Î °£Áֵ˴ϴÙ.
-
"¹Ýµå½Ã"¶ó°í Ç¥ÇöµÈ »çÇ×À» ÁؼöÇØ¾ß ÇÕ´Ï´Ù. "¹Ýµå½Ã"¶ó´Â Ç¥ÇöÀÌ »ç¿ëµÇ´Â Á¶°Ç¿¡´Â Ưº°È÷
ÁÖÀÇÇϽʽÿÀ.
´Ù¸¥ ÀϹÝÀûÀÎ ±ÔÄ¢Àº ´ÙÀ½°ú °°½À´Ï´Ù.
-
ºÎ¼öÀû ÀÛµ¿¿¡ ÀÇÁ¸ÇÏÁö ¸¶½Ê½Ã¿À. ºÎ¼öÀû ÀÛµ¿Àº ½ÇÇè ¶Ç´Â ½Ç½À¿¡¼ °üÂûµÇ´Â ÀÛµ¿À¸·Î¼
¸ðµç API ½ºÆå¿¡¼ º¸ÀåµÇÁö´Â ¾Ê½À´Ï´Ù.
-
³ÎÀ» ¿ÀºêÁ§Æ®·Î Ãë±ÞÇÏÁö ¸¶½Ê½Ã¿À. ³ÎÀº ¿ÀºêÁ§Æ®°¡ ¾øÀ½À» ³ªÅ¸³À´Ï´Ù.
API ½ºÆå¿¡¼ ´Þ¸® ¾ð±ÞÇÏÁö ¾ÊÀ¸¸é ¸ðµç Ç׸ñÀ» ³ÎÀÌ ¾Æ´Ñ °ÍÀ¸·Î °¡Á¤ÇϽʽÿÀ.
-
Æí¹ýÀ¸·Î Java ¸®Ç÷º¼ÇÀ» »ç¿ëÇÏÁö ¸¶½Ê½Ã¿À. Java ¸®Ç÷º¼ÇÀ» »ç¿ëÇÏ¿© Java ÄÄÆÄÀÏ·¯ °Ë»ç¸¦
ȸÇÇÇÏ´Â °ÍÀº ¾Æ¹«·± À̵æÀÌ µÇÁö ¾Ê½À´Ï´Ù. ¸®Ç÷º¼Ç »ç¿ë¿¡ ´ëÇÑ Ãß°¡ API °è¾àÀÌ ¾ø´Â °æ¿ì, ¸®Ç÷º¼ÇÀ»
»ç¿ëÇϸé ÁöÁ¤µÇÁö ¾ÊÀº µ¿ÀÛ ¹× ³»ºÎ ±¸Çö ¼¼ºÎ»çÇ׿¡ ÀÇÁ¸ÇÏ°Ô µÉ °¡´É¼ºÀÌ Ä¿Áý´Ï´Ù.
-
»ç¿ëÀÚ °íÀ¯ÀÇ ÆÐŰÁö¸¦ »ç¿ëÇϽʽÿÀ. ´Ù¸¥ ±¸¼º¿ä¼Ò¿¡ ¼ÓÇÑ ÆÐŰÁö¿¡ Äڵ带 ¼±¾ðÇÏÁö
¸¶½Ê½Ã¿À. Ç×»ó »ç¿ëÀÚ °íÀ¯ÀÇ ÆÐŰÁö¿¡ °íÀ¯ Äڵ带 ¼±¾ðÇϽʽÿÀ.
public API ¸Þ¼Òµå È£Ãâ
´ëºÎºÐÀÇ Å¬¶óÀ̾ðÆ®ÀÇ °æ¿ì, ´ëºÎºÐÀÇ Eclipse API´Â Ŭ¶óÀÌ¾ðÆ®°¡ ÀûÀýÇÒ ¶§ È£ÃâÇϸé,
API ÀÎÅÍÆäÀ̽º ¶Ç´Â Ŭ·¡½ºÀÇ public ¸Þ¼Òµå Çü½ÄÀ» ÃëÇÕ´Ï´Ù.
-
ÀüÁ¦Á¶°Ç È®ÀÎ. API ¸Þ¼Òµå¸¦ È£ÃâÇϱâ Àü¿¡ ¸Þ¼ÒµåÀÇ ÀüÁ¦Á¶°ÇÀ» ¸¸Á·ÇÏ´ÂÁö
È®ÀÎÇϽʽÿÀ. ¹Ý´ë·Î, È£ÃâÀڴ ȣÃâ¿¡¼ ¸®ÅϵǴ Áï½Ã ÇØ´ç
¸Þ¼ÒµåÀÇ »çÈÄÁ¶°ÇÀÌ ¼ºÃëµÈ °ÍÀ¸·Î °¡Á¤ÇÕ´Ï´Ù.
-
³Î ¸Å°³º¯¼ö. ¸Å°³º¯¼ö°¡ ³ÎÀ» Çã¿ëÇÏ´Â °ÍÀ¸·Î ¸í½ÃÀûÀ¸·Î ¹®¼ÈµÇÁö ¾ÊÀº °æ¿ì¿¡´Â API ¸Þ¼Òµå¿¡
¸Å°³º¯¼ö·Î¼ ³ÎÀ» Àü´ÞÇÏÁö ¸¶½Ê½Ã¿À. ÀÌ´Â °¡Àå ÀÚÁÖ ¹ß»ýÇÏ´Â ÇÁ·Î±×·¡¹Ö ¿À·ùÀÔ´Ï´Ù.
-
Á¦ÇÑµÈ È£ÃâÀÚ. ƯÁ¤ È£ÃâÀÚ¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀ¸·Î ¹®¼ÈµÈ API ¸Þ¼Òµå´Â ÇØ´ç È£ÃâÀÚ°¡ ¾Æ´Ï¸é
È£ÃâÇÏÁö ¸¶½Ê½Ã¿À. ÀϺΠ°æ¿ì, ¸Þ¼Òµå´Â È£ÃâÀÚÀÇ Æ¯Á¤ Ŭ·¡½º(´ë°³, ³»ºÎ)¸¦ À§ÇØ public APIÀÇ
ÀϺÎÀ̾î¾ß ÇÕ´Ï´Ù. ÀÌµé ¸Þ¼Òµå Áß Çϳª¸¦ Àû´çÇÏÁö ¾ÊÀº ¶§¿¡ È£ÃâÇÏ¸é Æ¯Á¤µÇÁö ¾ÊÀº(¿¹±âÄ¡ ¾ÊÀº)
°á°ú°¡ »ý±é´Ï´Ù.
-
¸Þ¼Òµå µð¹ö±ë. "µð¹ö±ë Àü¿ë"À̶ó´Â ·¹À̺íÀÇ API ¸Þ¼Òµå¸¦ È£ÃâÇÏÁö ¸¶½Ê½Ã¿À. ¿¹¸¦ µé¾î,
´ëºÎºÐÀÇ toString() ¸Þ¼Òµå´Â ÀÌ Ä«Å×°í¸® ¾È¿¡ ÀÖ½À´Ï´Ù.
-
¸Å°³º¯¼ö ĸó. ¹è¿, ÄÝ·º¼Ç ¶Ç´Â ±âŸ °¡º¯ÀûÀÎ ¿ÀºêÁ§Æ®¸¦ ¸Å°³º¯¼ö·Î¼ API ¸Þ¼Òµå¿¡ Àü´ÞÇÏÁö ¸¶½Ê½Ã¿À.
±×¸®°í Àü´ÞµÈ ¿ÀºêÁ§Æ®¸¦ ¼öÁ¤ÇÏÁö ¸¶½Ê½Ã¿À. ¹®Á¦°¡ µÉ ¼ö ÀÖ½À´Ï´Ù.
Ç÷§Æû API Ŭ·¡½ºÀÇ ÀνºÅϽºÈ
»ç¶÷µéÀÌ ¸ðµÎ ±¸Ã¼ API Ŭ·¡½º¸¦ ÀνºÅϽºÈÇÏ·Á ÇÏÁö´Â ¾Ê½À´Ï´Ù.
API Ŭ·¡½º¿¡´Â ÀνºÅϽº¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ´Â Á¶°ÇÀ» Ç¥½ÃÇÏ´Â ÀνºÅϽºÈ °è¾àÀÌ ÀÖ½À´Ï´Ù. ÀÌ °è¾à¿¡¼´Â ³ª¸ÓÁö ÃʱâÈ Ã¥ÀÓ(¿¹: ÇØ´ç ÀνºÅϽº°¡ ¿ÏÀüÈ÷ Ȱ¼ºÈµÇ±â Àü¿¡ ƯÁ¤ Ư¼ºÀ» ±¸¼ºÇϴ åÀÓ) ¹×
¿¬°üµÈ ¶óÀÌÇÁ »çÀÌŬ Ã¥ÀÓ(¿¹: dispose()¸¦ È£ÃâÇÏ¿© ÇØ´ç ÀνºÅϽº¿¡¼ »ç¿ëÇÏ´Â OS ÀÚ¿øÀ»
ÇØÁ¦Çϴ åÀÓ) µîÀÇ Ç׸ñÀ» ´Ù·ê ¼öµµ ÀÖ½À´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®¿¡¼ ÀνºÅϽº·Î ¼³°èµÈ Ŭ·¡½º´Â
Javadoc Ŭ·¡½º ÁÖ¼®("Ŭ¶óÀÌ¾ðÆ®°¡ ÀνºÅϽºÈÇÒ ¼ö ÀÖ½À´Ï´Ù."¿Í °°Àº ¸»)À» »ç¿ëÇÏ¿© ¸í½ÃÀûÀ¸·Î
Ç÷¡±×µÇ¾î¾ß ÇÕ´Ï´Ù.
-
Á¦ÇÑµÈ ÀνºÅϽº »ý¼ºÀÚ. ƯÁ¤ ´ç»çÀÚ¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀ¸·Î ¹®¼ÈµÈ API Ŭ·¡½ºÀÇ °æ¿ì ÇØ´ç ´ç»çÀÚ°¡
¾Æ´Ï¸é ÀνºÅϽºÈÇÏÁö ¸¶½Ê½Ã¿À.
ÀϺΠ°æ¿ì, Ŭ·¡½º´Â ƯÁ¤ ´ç»çÀÚ(º¸Åë, ³»ºÎ)¸¦ À§ÇØ
public APIÀÇ ÀϺÎÀ̾î¾ß ÇÕ´Ï´Ù. ÀÌ·¯ÇÑ Å¬·¡½º Áß Çϳª¸¦ ¿Ã¹Ù¸£Áö ¾Ê°Ô ÀνºÅϽºÈÇÏ¸é Æ¯Á¤µÇÁö
¾ÊÀº(¿¹±âÄ¡ ¾ÊÀº) °á°ú°¡ ¹ß»ýÇÕ´Ï´Ù.
Ç÷§Æû API Ŭ·¡½ºÀÇ ¼ºêŬ·¡½ºÈ
API Ŭ·¡½ºÀÇ ¼ºê¼¼Æ®¸¸ ¼ºêŬ·¡½º·Î ¼³°èÇÒ ¼ö ÀÖ½À´Ï´Ù. API Ŭ·¡½º¿¡´Â ¼ºêŬ·¡½º¸¦ ¼±¾ðÇÒ ¼ö ÀÖ´Â Ç׸ñÀ»
Ç¥½ÃÇÏ´Â ¼ºêŬ·¡½º °è¾àÀÌ ÀÖ½À´Ï´Ù. ÀÌ °è¾à¿¡¼´Â ÃʱâÈ Ã¥ÀÓ°ú ¶óÀÌÇÁ »çÀÌŬ Ã¥ÀÓµµ Æ÷ÇÔÇÕ´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®¿¡¼ ¼ºêŬ·¡½º·Î ¼³°èµÈ Ŭ·¡½º´Â Javadoc Ŭ·¡½º ÁÖ¼®("Ŭ¶óÀÌ¾ðÆ®°¡ ¼ºêŬ·¡½ºÈÇÒ
¼ö ÀÖ½À´Ï´Ù."¿Í °°Àº ´Ü¾î)À» »ç¿ëÇÏ¿© ¸í½ÃÀûÀ¸·Î Ç÷¡±×µÇ¾î¾ß ÇÕ´Ï´Ù.
-
Á¦ÇÑµÈ ¼ºêŬ·¡½º »ý¼ºÀÚ. ¼ºêŬ·¡½º·Î ÀǵµµÇÁö ¾ÊÀº API
Ŭ·¡½º¸¦ ¼ºêŬ·¡½ºÈÇÏÁö ¸¶½Ê½Ã¿À. ÀÌ·¯ÇÑ Å¬·¡½º´Â final Ŭ·¡½º·Î ¼±¾ðµÈ °Íó·³ ó¸®ÇϽʽÿÀ (À̵é Ŭ·¡½º¸¦
"soft final" Ŭ·¡½º¶ó°íµµ ÇÔ).
protected API ¸Þ¼Òµå È£Ãâ
´ë°³ ¼ºêŬ·¡½º ³»¿¡¼´Â »ó¼ÓµÈ protected ¸Þ¼Òµå ¹× public ¸Þ¼Òµå¸¦ È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯³ª
ÀÌ °æ¿ì ¸Þ¼Òµå¸¦ ¿Ã¹Ù¸£°Ô È£ÃâÇÏ·Á¸é °èÃþ ±¸Á¶ ¿ÜºÎ¿¡¼ public ¸Þ¼Òµå¸¦ È£ÃâÇÒ ¶§º¸´Ù ´õ ¸¹Àº ÁÖÀǰ¡
ÇÊ¿äÇÕ´Ï´Ù.
API ¸Þ¼Òµå ´ëü
public API ¸Þ¼Òµå¿Í protected API ¸Þ¼ÒµåÀÇ ¼ºê¼¼Æ®¸¸ ´ëüµÇµµ·Ï ¼³°èÇÒ ¼ö ÀÖ½À´Ï´Ù. °¢ API ¸Þ¼Òµå¿¡´Â ¼ºêŬ·¡½º°¡ ÇØ´ç ¸Þ¼Òµå¸¦ ´ëüÇÒ ¼ö ÀÖ´Â Ç׸ñÀ» Ç¥½ÃÇÏ´Â ¼ºêŬ·¡½º °è¾àÀÌ ÀÖ½À´Ï´Ù. ±âº»ÀûÀ¸·Î ´ëü´Â Çã¿ëµÇÁö ¾Ê½À´Ï´Ù.
µû¶ó¼ ´ëüµÇ´Â ½ÇÁ¦ ¸Þ¼Òµå ±¸Çö¿¡ ´ëÇÑ ¼ºêŬ·¡½º °è¾àÀ»
È®ÀÎÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù. ¼ºêŬ·¡½º °è¾à Ç׸ñÀº ¸Þ¼Òµå°¡ ´ëüµÉ ¶§ ÀÚµ¿À¸·Î Àü´ÞµÇÁö ¾Ê½À´Ï´Ù.
-
¸í½ÃÀûÀ¸·Î Çã¿ëµÇÁö ¾ÊÀº °æ¿ì¿¡´Â public API ¸Þ¼Òµå ¶Ç´Â protected API ¸Þ¼Òµå¸¦ ´ëüÇÏÁö
¸¶½Ê½Ã¿À. ´Þ¸® Ç¥½ÃµÇÁö ¾ÊÀº °æ¿ì ÀÌ·¯ÇÑ ¸Þ¼Òµå´Â final ¸Þ¼Òµå·Î ¼±¾ðµÈ °Íó·³ ó¸®ÇϽʽÿÀ (ÀÌ·¯ÇÑ
¸Þ¼Òµå¸¦ "soft final" ¸Þ¼Òµå¶ó°íµµ ÇÔ).
´ÙÀ½°ú °°ÀÌ ´ëü°¡ Çã¿ëµÇ¸é,
"±¸Çö" - ¼ºêŬ·¡½º¿¡ ¼±¾ðµÈ abstract ¸Þ¼Òµå´Â ±¸Ã¼ ¼ºêŬ·¡½º¿¡ ÀÇÇØ ±¸ÇöµÇ¾î¾ß ÇÕ´Ï´Ù.
"È®Àå" - ¼ºêŬ·¡½º¿¡ ¼±¾ðµÈ ¸Þ¼Òµå´Â ¼öÆÛŬ·¡½º¿¡¼ ¸Þ¼Òµå¸¦ È£ÃâÇØ¾ß ÇÕ´Ï´Ù(ÇÑ ¹ø).
"À籸Çö" - ¼ºêŬ·¡½º¿¡ ¼±¾ðµÈ ¸Þ¼Òµå´Â ¼öÆÛŬ·¡½º¿¡¼ ¸Þ¼Òµå¸¦ È£ÃâÇÏ¸é ¾ÈµË´Ï´Ù.
"´ëü" - ¼ºêŬ·¡½º¿¡ ¼±¾ðµÈ ¸Þ¼Òµå´Â ÀûÀýÇÑ °æ¿ì ¼öÆÛŬ·¡½º¿¡¼ ¸Þ¼Òµå¸¦ ÀÚÀ¯·Ó°Ô È£ÃâÇÒ ¼ö ÀÖ½À´Ï´Ù.
-
»çÈÄÁ¶°ÇÀ» È®ÀÎÇϽʽÿÀ. ¸®ÅϵǸé API ¸Þ¼Òµå¿¡ ´ëÇØ ÁöÁ¤µÈ »çÈÄÁ¶°ÇÀÌ ÇØ´ç ±¸Çö¿¡¼
¸¸Á·µÇ´ÂÁö È®ÀÎÇϽʽÿÀ.
-
»çÀü¿¡ ÀüÁ¦Á¶°ÇÀ» È®ÀÎÇϽʽÿÀ. ÀÔ·Â ½Ã API ¸Þ¼Òµå¿¡ ´ëÇØ ÁöÁ¤µÈ ÀüÁ¦Á¶°ÇÀÌ ¹Ýµå½Ã ¸¸Á·µÈ °ÍÀ¸·Î
°¡Á¤ÇÏÁö ¸¶½Ê½Ã¿À. ÇØ´ç ¸Þ¼Òµå ±¸ÇöÀÌ ÁöÁ¤µÈ ÀüÁ¦Á¶°ÇÀ» È®ÀÎÇÏÁö ¾Ê´Â ±ÇÇÑ ³»¿¡
ÀÖ´Â °æ¿ì¶óµµ, È£ÃâÀÚ°¡ ¿Ã¹Ù¸£Áö ¾Ê°Ô ÀÛµ¿ÇÏÁö ¸øÇϵµ·Ï ÇÏ·Á¸é º¸Åë ÀüÁ¦Á¶°ÇÀ» È®ÀÎÇÏ´Â °ÍÀÌ
ÁÁ½À´Ï´Ù(°¡´ÉÇÏ°í ºñ¿ëÀÌ ¸¹ÀÌ µéÁö ¾Ê´Â °æ¿ì).
-
³Î °á°ú. ÁöÁ¤µÈ ÀÎÅÍÆäÀ̽º ¶Ç´Â ¼öÆÛŬ·¡½º¿¡ ´ëÇÑ °á°ú·Î ³ÎÀ» ¸®ÅÏÇÒ ¼ö ÀÖµµ·Ï ¸í½ÃÀûÀ¸·Î
¹®¼ÈµÇÁö ¾ÊÀº °æ¿ì¿¡´Â API ¸Þ¼Òµå¿¡¼ °á°ú·Î¼ ³ÎÀ» ¸®ÅÏÇÏÁö ¸¶½Ê½Ã¿À.
-
»çº» ¸®ÅÏ. ¹Ù²Ü ¼ö ¾ø´Â ¹è¿, ÄÝ·º¼Ç ¶Ç´Â ±âŸ °¡º¯Àû ¿ÀºêÁ§Æ®¸¦ API ¸Þ¼Òµå¿¡¼ °á°ú·Î¼
¸®ÅÏÇÏÁö ¸¶½Ê½Ã¿À. È£ÃâÀÚ°¡ ¿ÀºêÁ§Æ®¸¦ ¼öÁ¤ÇÒ °æ¿ì ¹ß»ýÇÏ´Â ¹®Á¦¸¦ ¹æÁöÇÏ·Á¸é Ç×»ó »çº»À» ¸®ÅÏÇϽʽÿÀ.
Ç÷§Æû API ÀÎÅÍÆäÀ̽º ±¸Çö
API ÀÎÅÍÆäÀ̽ºÀÇ ¼ºê¼¼Æ®¸¸ Ŭ¶óÀÌ¾ðÆ®¿¡¼ ±¸ÇöÇϵµ·Ï ¼³°èÇÒ ¼ö ÀÖ½À´Ï´Ù. API ÀÎÅÍÆäÀ̽º¿¡´Â
±¸ÇöµÉ ¼ö ÀÖ´Â Ç׸ñÀ» Ç¥½ÃÇÏ´Â °è¾àÀÌ ÀÖ½À´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®¿¡¼ ±¸ÇöÇϵµ·Ï ¼³°èµÈ ÀÎÅÍÆäÀ̽º´Â
Javadoc Ŭ·¡½º ÁÖ¼®("Ŭ¶óÀÌ¾ðÆ®°¡ ±¸ÇöÇÒ ¼ö ÀÖ½À´Ï´Ù."¿Í °°Àº ´Ü¾î)À» »ç¿ëÇÏ¿© ¸í½ÃÀûÀ¸·Î Ç÷¡±×µÇ¾î¾ß
ÇÕ´Ï´Ù. Ŭ¶óÀÌ¾ðÆ®¿¡¼´Â ±¸ÇöÀÌ Çã¿ëµÇ´Â API ÀÎÅÍÆäÀ̽º¿¡ ´ëÇØ¼¸¸ ¼ºêÀÎÅÍÆäÀ̽º¸¦ ¼±¾ðÇÒ ¼ö ÀÖ½À´Ï´Ù.
-
Á¦ÇÑµÈ ±¸ÇöÀÚ. ƯÁ¤ ´ç»çÀÚ¸¸ »ç¿ëÇÒ ¼ö ÀÖ´Â °ÍÀ¸·Î ¹®¼ÈµÈ API ÀÎÅÍÆäÀ̽º´Â ÇØ´ç ´ç»çÀÚ°¡
¾Æ´Ï¸é ±¸ÇöÇÏÁö ¸¶½Ê½Ã¿À. ´ëºÎºÐÀÇ °æ¿ì, ÀÎÅÍÆäÀ̽º´Â º¸±â¿¡¼ ³»ºÎ ±¸Çö ¼¼ºÎ»çÇ×À» ¼û±â´Â µ¥ »ç¿ëµË´Ï´Ù.
public API ¸Þ¼Òµå ±¸Çö
"API ¸Þ¼Òµå ´ëü"¸¦ ÂüÁ¶ÇϽʽÿÀ.
API Ŭ·¡½º ¹× ÀÎÅÍÆäÀ̽ºÀÇ Çʵ忡 ¾×¼¼½º
Ŭ¶óÀÌ¾ðÆ®¿¡¼´Â ´ëºÎºÐ final ÇʵåÀÎ API Çʵ带 ÀÐÀ» ¼ö ÀÖ½À´Ï´Ù. ±¸Á¶Ã¼¿Í À¯»çÇÑ Æ¯Á¤ ¿ÀºêÁ§Æ®¿¡´Â
finalÀÌ ¾Æ´Ñ public Çʵ尡 ÀÖÀ» ¼ö ÀÖÀ¸¸ç, Ŭ¶óÀÌ¾ðÆ®¿¡¼´Â ´Þ¸® Ç¥½ÃÇÏÁö ¾Ê´Â °æ¿ì ÀÌ·¯ÇÑ Çʵ带 Àаí
¾µ ¼ö ÀÖ½À´Ï´Ù.
-
³Î Çʵå. ¸í½ÃÀûÀ¸·Î Çã¿ëµÇÁö ¾ÊÀº °æ¿ì¿¡´Â API Çʵ带 ³Î·Î ¼³Á¤ÇÏÁö ¸¶½Ê½Ã¿À.
¾Ë·ÁÁø API À¯ÇüÀÇ ¿ÀºêÁ§Æ® ij½ºÆ®
¾Ë·ÁÁø API À¯ÇüÀÇ ¿ÀºêÁ§Æ®´Â ÇØ´ç API¿¡¼ ¸í½ÃÀûÀ¸·Î Çã¿ëÇÏ´Â °æ¿ì ´Ù¸¥ API À¯ÇüÀ¸·Î
ij½ºÆ®Çϰųª instanceof¸¦ »ç¿ëÇÏ¿© Á¶°ÇºÎ ij½ºÆ®ÇÒ ¼ö ÀÖ½À´Ï´Ù.
-
cast ¹× instanceof. instanceof ¹× cast Ç¥Çö½ÄÀ» »ç¿ëÇÏ¿©, ¾Ë·ÁÁø ¿ÀºêÁ§Æ® °³³äÀ»
API°¡ Áö¿øÇÏ´Â °Í ÀÌ»óÀ¸·Î Áõ°¡½ÃŰÁö ¸¶½Ê½Ã¿À.
»ç¿ë¹ýÀÌ ÀûÀýÇÏÁö ¾ÊÀ¸¸é API¿¡¼
ºÎ¼öÀûÀÎ ±¸Çö ¼¼ºÎ»çÇ×À» º¸ÀåÇÒ ¼ö ¾ø°Ô µË´Ï´Ù.
¶ÇÇÑ ÀÓÀÇ ¿ÀºêÁ§Æ®¸¦ ºñAPI Ŭ·¡½º ¶Ç´Â ÀÎÅÍÆäÀ̽º·Î ij½ºÆ®ÇÏ´Â °ÍÀº Ç×»ó ¿Ã¹Ù¸£Áö ¾Ê½À´Ï´Ù.
±ÔÄ¢À» µû¸£Áö ¾Ê´Â °æ¿ì
°íÀÇÀûÀÌµç ¿ì¹ßÀûÀÌµç ±ÔÄ¢À» À§¹ÝÇÏ´Â µ¥´Â ¸î °¡Áö °á°ú°¡ µû¸¨´Ï´Ù. ±ÔÄ¢À» À§¹ÝÇÒ °æ¿ì À̸¦ °¨½ÃÇÏ´Â
API ´Ü¼ÓÀÚ¶óµµ ÀÖ´Ù¸é ¸ðµç »ç¶÷ÀÌ ÀÌ ±ÔÄ¢À» ÁöŰ±â°¡ ´õ ½¬¿ï °ÍÀÔ´Ï´Ù. ±×·¯³ª ÀÌ·¯ÇÑ °æ¿ì´Â
¾ø½À´Ï´Ù.
´ëºÎºÐÀÇ °æ¿ì, API ±ÔÄ¢Àº ÀÚÀ²ÀûÀ¸·Î ÁؼöÇÏ´Â ±ÔÄ¢À̸ç, ÀÌ ±ÔÄ¢À» ÀÌÇØÇϰí
ÁؼöÇÏ´Â °ÍÀº °¢ Ŭ¶óÀ̾ðÆ®ÀÇ Ã¥ÀÓÀÔ´Ï´Ù.
API ¿ä¼Ò¿¡ ´ëÇÑ °è¾à¿¡¼´Â Áö¿ø ¹× Çã¿ëµÇ´Â µ¿ÀÛÀÇ ¹üÀ§¸¦ Á¦ÇÑÇÕ´Ï´Ù. Eclipse Ç÷§ÆûÀÌ ¹ßÀüÇÒ¼ö·Ï
ÀÌ´Â ÀÌ·¯ÇÑ ¹ßÀüÀÌ ÀϾ´Â ¹æ½ÄÀ» ¾È³»ÇÏ´Â API °è¾àÀÌ µÉ °ÍÀÔ´Ï´Ù. ÀÌ·¯ÇÑ °è¾à ÀÌ¿ÜÀÇ ¸ðµç »çÇ×Àº Áö¿øµÇÁö ¾ÊÀ¸¸ç ¾ðÁ¦µçÁö ¿¹°í ¾øÀÌ º¯°æµÉ ¼ö ÀÖ½À´Ï´Ù(¸±¸®½º Áß°£À̳ª
´Ù¸¥ OS Ç÷§Æû °£¿¡µµ ÇØ´ç). À§ÀÇ ±ÔÄ¢¿¡ µû¸£Áö ¾Ê´Â Ŭ¶óÀÌ¾ðÆ® ÄÚµå´Â Ç÷§ÆûÀÇ ¼·Î ´Ù¸¥
¹öÀü ¹× ÆÐÄ¡ ·¹º§¿¡¼ ½ÇÆÐÇÒ ¼ö ÀÖÀ¸¸ç, ´Ù¸¥ ±âº» ¿î¿µ üÁ¦¿¡¼ ½ÇÇàµÇ´Â °æ¿ì, ÇÔ²² »óÁÖÇÏ´Â
Ç÷¯±×ÀÎÀ» ´Ù¸£°Ô °áÇÕ½ÃÄÑ ½ÇÇàÇÏ´Â °æ¿ì ¶Ç´Â ´Ù¸¥ Workbench Perspective¿Í ÇÔ²² ½ÇÇàÇÏ´Â
°æ¿ì¿¡µµ ½ÇÆÐÇÒ ¼ö ÀÖ½À´Ï´Ù. »ç½Ç, Áö±Ý±îÁö´Â °ü·ÃÀÚµé Á¶Â÷ ƯÁ¤ »çÇ×À» À§¹ÝÇÒ °æ¿ì ¹ß»ýÇÒ ¼ö
ÀÖ´Â °á°ú¿¡ ´ëÇØ Ưº°ÇÑ °ü½ÉÀ» µÎÁö ¾Ê¾Ò½À´Ï´Ù. ±ÔÄ¢À» ¹«½ÃÇϱâ·Î ¼±ÅÃÇÏ´Â »ç¶÷Àº,
±ÔÄ¢À» ¹«½ÃÇÒ °æ¿ì ¹ß»ýÇÒ ¼ö ÀÖ´Â °á°ú¿¡ ´ëÇØ ÃæºÐÈ÷ °æ°í¸¦ ¹Þ¾Ò½À´Ï´Ù. µû¶ó¼ ÀÌ·Î ÀÎÇÑ °á°ú¿¡´Â ¾î¶²
º¸»óµµ ÀÖÀ» ¼ö ¾øÀ½À» ±â¾ïÇØ¾ß ÇÒ °ÍÀÔ´Ï´Ù.
¹Ý¸é, À§ÀÇ ±ÔÄ¢¿¡ µû¶ó ÀÛ¼ºµÈ Ŭ¶óÀÌ¾ðÆ® Ç÷¯±×ÀÎ ÄÚµå´Â Ç÷§ÆûÀÇ ¼·Î ´Ù¸¥ ¹öÀü°ú ÆÐÄ¡ ·¹º§ ¹×
´Ù¾çÇÑ ±âº» ¿î¿µ üÁ¦¿¡¼µµ °è¼ÓÇØ¼ ÀÛµ¿ÇÏ¸ç ´Ù¸¥ Ç÷¯±×Àΰúµµ ¾Æ¹« ¹®Á¦ ¾øÀÌ »óÁ¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. ¸ðµç »ç¶÷ÀÌ ÀÌ ±ÔÄ¢À» µû¸£´Â °æ¿ì Eclipse Ç÷§Æû¿¡¼´Â ¶Ù¾î³ ½ÅÁ¦Ç°À» ºôµåÇÏ´Â µ¥
¾ÈÁ¤ÀûÀ̰í Áö¼ÓÀûÀÎ ±â¹ÝÀ» Á¦°øÇÒ °ÍÀÔ´Ï´Ù.