¡°Every system has own architecture, each applications builds up by frameworks ecosystem. ¡±

ÇÁ·¹ÀÓ¿öÅ©ÀÇ Á¤ÀǸ¦ ÀÌÇØÇϱâ À§Çؼ­´Â Software Reuse ±â¼úÀ» ¸ÕÀú ÀÌÇØÇØ¾ß ÇÑ´Ù . Software ÀÇ Reuse ±â¼úÀº 90 ³â´ë ÃÊ °´Ã¼ ÁöÇ⠽ô뿡¼­ºÎÅÍ Çü¼ºµÇ¾î¼­ ÇöÀç±îÁöµµ ¸¹Àº °³¹ß ÆÐ·¯´ÙÀÓ¿¡¼­ ÁÖ¿äÇÑ ±â¼ú·Î ÀÚ¶óÀâ°í ÀÖ´Ù . Ãʱâ Copy & Paste level ÀÇ Àç »ç¿ë¿¡¼­ »ó¼Ó (inheritance) °ú ´ÙÇü¼º (polymorphism) µî °´Ã¼ (Object) ÀÇ ½Ã´ë·Î , ±×¸®°í Á¡Â÷ software ½Ã½ºÅÛÀÇ º¹Àâµµ¿Í Å©±â , ÅëÇÕÀÇ ¿ä±¸°¡ Áõ°¡ÇÏÁö°Ô µÊ¿¡ µû¶ó ÀÌÁ¦´Â ÇϳªÀÇ Black Box ´ÜÀ§·Î Àç »ç¿ëÇÏ´Â Component ±â¹ÝÀÇ ¼ÒÇÁÆ®¿þ¾î °³¹ß ¹æ¹ýÀÌ ÆÐ·¯´ÙÀÓÀÇ ¸ÞÀÎ È帧À¸·Î ÀÚ¸®Àâ°í ÀÖ´Ù .


±×¸². Paradigm of Software Development

À§ ±×¸²¿¡¼­ º¼ ¼ö ÀÖµíÀÌ Framework ±â¼úÀº Software Reuse ºÐ¾ß¿¡¼­ ¹ßÀüÇϰí ÀÖ´Â ±â¼úÀÌ´Ù . ÇϳªÀÇ ´ÜÀÏ ApplicationÀ» °³¹ßÇÏ´Â °ÍÀÌ ¾Æ´Ï°í ´Ù¼öÀÇ Application À» Á¦ÀÛÇÏ´Â °Í¿¡ ¸ñÀûÀ» µÎ°í ¿©±â¿¡ ¼Ò¿äµÇ´Â »ý»ê¼º°ú ǰÁúÀ» ³ôÀ̱â À§Çؼ­ Application¸¶´Ù µé¾î°¡´Â ÇʼöÀûÀÎ ÄÚµå¿Í ¾Ë°í¸®Áò, Object ¿Í Common Component ¸¦ °¡Áö°í ¾î´À Á¤µµ ÀÌ¹Ì ±¸¼ºÀ» ÇØ¼­ Semi Application ·¹º§·Î ȤÀº ¿Ï¼ºµµ¸¦ ³ô¿©¼­ Application Generator ¿¡ °¡±õ°Ô ¸¸µç °ÍÀ» ÇÁ·¹ÀÓ¿öÅ© (Application Framework) ¶ó ºÎ¸¥´Ù .
ÀÌ·¯ÇÑ ÆÐ·¯´ÙÀÓÀÇ º¯È­¿¡ µû¶ó ÇÁ·Î±×·¡¹Ö ¾ð¾îµµ °è¼Ó ÇØ¼­ ¿ÊÀ» ¹Ù²Ù¾î¼­ ¼­ºñ½º Çϰí ÀÖ´Ù . ¿¹¸¦ µé¾î ±¸Á¶Àû ºÐ¼® ¼³°è ±â¹ýÀÌ ÁÖµÈ ½Ã´ë¿¡¼­´Â C ³ª Pascal µîÀÇ ¾ð¾î°¡ ÀÌÀÇ °³³äÀ» ¼­ºñ½º ÇÏ°í °´Ã¼ÀÇ ½Ã´ë ¿¡¼­´Â Ãß»óÈ­ , »ó¼Ó , ´ÙÇü¼º µîÀ» Áö¿øÇϱâ À§ÇÑ C++ À̳ª Java, Eiffel °°Àº ¾ð¾î°¡ µîÀå ÇÏ¿´´Ù . SW Reuse ¿¡ ´ëÇÑ ¿ä±¸°¡ ³ô¾ÆÁö¸é¼­ C++ ¿¡¼­ ¹ßÀüµÈ Microsoft »çÀÇ COM/DCOM ±â¼ú , Java Áø¿µ¿¡¼­´Â ÇÁ·Î±×·¥ ³»¿¡¼­ Àç»ç¿ë °¡´ÉÇÑ Java Beans ³ª ºÐ»ê ȯ°æ¿¡¼­ Àç »ç¿ë °¡´ÉÇÑ EJB ±â¼úÀÌ µîÀå ÇÏ°Ô µÇ¾ú´Ù .
±×·¸´Ù¸é FrameworkÀÇ ±¸Çöü´Â ¹«¾ùÀÌ ÀÖÀ»±î.
°ÅÀÇ Product Platform¿¡ À¯»çÇÑ Microsoft»çÀÇ .NET Framework¿Í Java¿¡¼­´Â Struts¿Í Turbine µî Open°ú »ó¿ëÀ» ÇÕÄ£´Ù¸é Web Application Frameworks¸¸ ÇÏ´õ¶óµµ 50 ¿©°³ ÀÌ»óÀÌ Á¸Àç ÇÑ´Ù .

¡°A framework is a set of cooperating classes that make up a reusable design for a specific class of software.¡±- R. Johnson

¡°Frameworks are reusable designs of all or part of a software system described by a set of abstract classes and the way instances of those classes collaborate¡±- E. Fayad

Framework ÀÇ Á¤ÀÇ´Â GoF Pattern À¸·Î À¯¸íÇÑ Ralph Johnson ±³¼öÀÇ Á¤Àǰ¡ ¸¹ÀÌ ÀοëµÈ´Ù . Software ÀÇ ±¸Ã¼ÀûÀÎ ºÎºÐ¿¡ ÇØ´çÇÏ´Â ¼³°è¿Í ±¸ÇöÀ» Àç »ç¿ëÀÌ °¡´ÉÇϰԲû ÀÏ·ÃÀÇ Çù¾÷È­µÈ ÇüÅ·ΠŬ·¡½ºµéÀ» Á¦°øÇÏ´Â °ÍÀÌ ÇÁ·¹ÀÓ¿öÅ©´Ù ¶ó°í ¹àÈ÷°í ÀÖ´Ù .
ÇÁ·¹ÀÓ¿öÅ©´Â ´Ù¸¥ Àç »ç¿ëÀÇ °³³äº¸´Ù º¸´Ù ´õ ¾ÖÇø®ÄÉÀÌ¼Ç ±â¼ú¿¡ Ưȭ µÇ¾î ÀÖ´Ù . ±×·¯¹Ç·Î ÄÄÆ÷³ÍÆ®³ª ÆÐÅÏÀÇ °³³ä°ú´Â ´Þ¸® ¾ÖÇø®ÄÉÀ̼ǿ¡ Á¾¼ÓÀûÀÎ ±¸Á¶¸¦ °¡Áö°í °£´Ù . ÇÏÁö¸¸ Àß ¼³°èµÈ ÇÁ·¹ÀÓ¿öÅ©´Â ¹Ýµå½Ã È®ÀåÀÌ °¡´ÉÇϰԲû Hot Spot À̶ó°í ÇÏ´Â º¯°æÀÌ °¡´ÉÇÑ ºÎºÐ°ú Frozen Spot À̶ó°í ÇÏ´Â º¯°æÀÌ ºÒ°¡´É ÇÑ ºÐºÐÀ» Á¦°øÇؼ­ ÀÌÁúÀÇ È®Àå °¡´ÉÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀ» ±¸ÇöÀÌ °¡´ÉÇϰԲû µµ¿ÍÁØ´Ù .

•  Framework Àº semi-application ÀÌ´Ù
•  Frameworks Àº application generator ÀÌ´Ù
•  Framework Àº ´Ù¼ö application À» À§ÇÑ Template À» Á¦°øÇÑ´Ù .
•  Frameworks Àº Application Á¦ÀÛ¿¡ ÇÊ¿äÇÑ ´Ù¼öÀÇ Tool Box ¸¦ Á¦°øÇÑ´Ù . ÀÌ Tool Box ´Â ºí·¢¹Ú½º ÇüÅÂÀÇ ÄÄÆ÷³ÍÆ®¿Í ´Þ¸® Architecture ¿Í Source Code, Pattern µîÀÇ Complete ÇÑ ÇüÅÂÀÇ »êÃâ¹°ÀÌ Æ÷ÇԵǾî ÀÖ´Ù .

º¸´Ù ´õ ¸íÈ®ÇÑ Á¤ÀǸ¦ À§Çؼ­ Framework ÀÌ ¾Æ´Ñ °ÍÀ» µé¾î º¸ÀÚ¸é ,

•  Framework Àº web container ³ª application server °¡ ¾Æ´Ï´Ù .
•  Framework Àº ´ÜÁö ÇϳªÀÇ API °¡ ¾Æ´Ï´Ù
•  Framework Àº ¿Ï¼ºµÈ Application ÀÌ ¾Æ´Ï´Ù
•  Framework Àº component °¡ ¾Æ´Ï´Ù
•  Framework Àº IDE °¡ ¾Æ´Ï¸ç °³¹ß ȯ°æÀ» Á¦°øÇØ ÁÖÁö ¾Ê´Â´Ù .


ÇÁ·¹ÀÓ¿öÅ©Àº ±¸¼º¿ä¼Ò¿¡ µû¶ó¼­ ºÐ·ù°¡ °¡´ÉÇѵ¥ °´Ã¼ ±â¼úÀÌ Æ÷ÇԵǾî ÀÖÁö ¾ÊÀº ÁÖ·Î Åë½Å µµ¸ÞÀο¡¼­ »ç¿ëµÇ´Â C ±â¹ÝÀÇ Non-OO Frameworks °ú ÁÖ·Î ¹ßÀüµÇ¿Ô´ø Object Oriented Frameworks, ±×¸®°í ÇöÀç´Â Object ¿Í Component ¸¦ ÁÖµÈ ¿ä¼Ò·Î ±¸¼ºÇÑ Component Framework ÀÌ Ä«Å×°í¸® »óÀ¸·Î °è¼Ó ¸¸µé¾î Áö°í ÀÖ´Ù . Component Framework Àº ´ë ºÎºÐ MVC©ø¿¡ ±â¹ÝÇÏ¿© ±¸¼ºµÇ¸ç ±¸ ¼º¼÷µµ¿¡ µû¶ó¼­ System ·¹º§ÀÇ ÄÄÆ÷³ÍÆ®¿Í °æ¿ì¿¡ µû¶ó¼­ ƯÁ¤ µµ¸ÞÀÎÀÇ °´Ã¼¿Í ÇÁ·Î¼¼½º°¡ Æ÷ÇÔµÈ Business Component µîÀ» Æ÷ÇÔÇÒ¼öµµ ÀÖ´Ù .


±×¸² . Component Framework ÀÇ Conceptual Diagram

À§ ¿¡¼­µµ ¾ð±ÞÇßµíÀÌ ÇÁ·¹ÀÓ¿öÅ©ÀÇ ±¸¼º¿ä¼Ò´Â ÃÖÁ¾ Ÿ°ÙÀÌ µÇ´Â ¾ÖÇø®ÄÉÀ̼ÇÀÇ À¯Çü¿¡ µû¶ó¼­ ±× ±¸¼º Ŭ·¡½º¿Í ÄÄÆ÷³ÍÆ®°¡ ´Ù¾çÇÏ´Ù . ´ëºÎºÐÀÇ Â÷¼¼´ë ¾ÖÇø®ÄÉÀ̼ÇÀÌ ¿£ÅÍÇÁ¶óÀÌÁî ȯ°æÀÇ Web Architecture ¸¦ °¡Áö°í °¡±â ¶§¹®¿¡ ÇöÀç ÁÖ·Î ³ª¿À°í ÀÖ´Â Framework Àº Enterprise( ºÐ»ê ) ȯ°æÀÇ Web Application Frameworks ÀÌ ´ë ºÎºÐÀÌ¸ç ±âº»ÀûÀÎ ±¸¼º ÄÄÆ÷³ÍÆ®°¡ ´ÙÀ½°ú °°´Ù .

- Object Pooling

- Task Management

- Hook Method( È®ÀåÀ» À§ÇÑ ¿ä¼Ò )

- Server Page Engine

- Command Package

- Object Message (Asynchronous)

- Security

- exception ó¸®

- MQ ó¸®

- Log Handler

- Database Manager

- Configuration & Install Services

- WAS Deployment Service

- Event ó¸®¿Í i18n( ±¹Á¦È­ , internalization) ±â´É

- Asynchronous Request Processing ó¸®¿Í XML Support

- Report ±â´É µî


±×¸² . General Framework ÀÇ ±¸¼º ÆÐŰÁö

±×¸² . J2EE ±â¹ÝÀÇ Component Architecture

ÇÁ·¹ÀÓ¿öÅ©¸¦ ºÐ·ùÇÏ´Â ±âÁØÀº Å©°Ô application ÀÇ À¯Çü¿¡ µû¶ó¼­ ³ª´·¼ö ÀÖ°í , ±âŸ ƯÁ¤ ±â´Éµé¿¡ ±¹ÇÑµÈ À¯Æ¿¸®Æ¼ ÇüÅÂÀÇ ÇÁ·¹ÀÓ¿öÅ©¿Í Àüü Ç÷§ÆûÀ» ±¸¼ºÇÏ´Â Enterprise Framework À¸·Îµµ ´Ù¾çÇÑ °üÁ¡À¸·Î ºÐ·ù°¡ °¡´ÉÇÏ´Ù .

Web Application Frameworks
i. Full MVC Frameworks(Complete Application Frameworks)
- Expresso
- realMethods
- SOFIA µî
ii. Model(Database Integration) Frameworks(Data Frameworks)

- Avalon
- Maverick 4 Java, Maverick 4 NET µî

iii. View & Controller Frameworks

- IBM ÀÇ Echo
- Barracuda Presentation Framework

iv. Controller Frameworks

- Apache ±×¸¨ÀÇ Struts µî

Enterprise XML Frameworks
i. Cocoon Framework µî
200 ¿©°³ ÀÌ»óÀÇ Open ¹× »ó¿ë Framework
Telecommunication
Manufacturing
 i. Sematech ÀÇ EES ÇÁ·¹ÀÓ¿öÅ©
Financial
±âŸ µîµî
Microsoft's .NET Frameworks

SUN One Application Frameworks

Oracle ÀÇ ADF(Application Development Framework)
Ubiquitous Frameworks

Real Time & Embedded Framework µî

Keel Frameworks µî

4. Reference
- Struts

http://jakarta.apache.org/struts/index.html

- Expresso
http://www.jcorporate.com/
- Maverick
http://mavnet.sourceforge.net/
- Sun One Application Framework
http://java.sun.com/developer/community/chat/JavaLive/2002/jl1022.html
http://wwws.sun.com/software/products/application_framework/home_app_framework.html
- R. Johnson ±³¼öÀÇ Home Page
http://st-www.cs.uiuc.edu/users/johnson/frameworks.html