2007년 12월 12일
스트럿츠2 탄생 배경
1. 아파치 스트럿츠는 2000년에 등장하여 많은 자바 기반의 웹 애플리케이션들을 개발하는데 많은 도움을 주며 성장했다.
2. 더욱 다양하고 복잡한 기능 필요.
- 스트럿츠가 마이너 수준의 개선을 거듭하는 것만으로 이러한 요구 사항을 명쾌하게 해결하기에 부족함을 느끼게 되었다.
3. 더 쉽고 간결하게 웹 애플리케이션을 만들며 더욱 풍부한 사용자 인터페이스를 구축하기 위한 웹 프레임워크들이 등장
- 스트럿츠의 뒤를 이어 웹워크(WebWork), 태피스트리(Tapestry), 스프링 MVC(Spring MVC), 비하이브(Beehive) 등
4. 2005년 자바원(JavaOne)에서 스트럿츠 프로젝트의 개발자와 비하이브의 개발자가 미팅을 통해 스트럿츠 Ti(Titanium) 제안 초안을 구성.
- 여러 웹 프레임워크의 좋은 아이디어를 하나로 통합하는 것에 흥미를 가진 개발자들 간의 모임이 만들어지면서, 본격적으로 스트럿츠2의 개발이 시작되었다.
5. 스트럿츠2는 루비 온 레일즈(Ruby on Rails)나 나노웹(NanoWeb)의 단순함, 웹워크2의 세련미, 비하이브의 툴친화성과 페이지 플로우와 같은 장점과 스트럿츠1를 결합.
- 현재는 기존 스트럿츠와 웹워크2를 결합하는 모습으로 스트럿츠2의 개발이 진행되고 있다.
6. 스트럿츠2 로고

7. 웹워크2와 결합하며 MVC 패턴을 구현한 내부 아키텍처가 완전히 달라졌다.
- 스트럿츠2의 아키텍처는 웹워크2의 아키텍처를 그대로 적용하고 있다.
- 스트럿츠1의 서블릿과 리퀘스트 프로세서 기반으로 액션 요청을 처리하던 구조 대신 필터와 인터셉터 기반의 웹워크2 아키텍처를 적용함으로써 매우 유연한 아키텍처를 구축하게 되었다.
8. 다른 뛰어난 오픈 소스의 좋은 기능들을 쉽게 접목하여 활용할 수 있는 방법을 계속해서 구축.
- Dojo를 활용한 Ajax 기능을 태그와 테마 기반으로 쉽게 구현.
- 빈 팩토리 패턴의 구현을 위해 구글 주스(Guice)나 스프링 프레임워크를 통합.
- 무엇보다 개발자들에게 가장 반가운 점은 스트럿츠2에서는 설정작업이 줄어들면서 매우 명확해졌다는 점일 것이다.
# by | 2007/12/12 13:12 | 스트럿츠2 | 트랙백 | 덧글(5)





☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
스트럿츠2는 스트럿츠1의 업그레이드가 아니고, 웹워크2를 기반으로 하고 있습니다.
스트럿츠와 결합했다고 하는 부분은 여러가지 의미가 있다고 봅니다. 제 생각에 그 중 하나는 기존 스트럿츠의 방대한 커뮤니티와 웹워크의 아키텍처와의 결합이라는 관점에서 볼 수있습니다. 아마 제가 말씀드린 결합이라는 부분은 기술적 관점에서만 얘기드린 점은 아니었습니다. 또한 7번 항목에
"7. 웹워크2와 결합하며 MVC 패턴을 구현한 내부 아키텍처가 완전히 달라졌다.
- 스트럿츠2의 아키텍처는 웹워크2의 아키텍처를 그대로 적용하고 있다."
라 언급을 했습니다만 아마도 바쁘게 보시느라 이 부분을 놓치셨나봅니다.
또한 ROR과 단순함의 우위를 비교하기 위해서 했던 얘기도 아니었습니다. 위에서 언급한 내용들은 프레임워크간의 비교를 위한 것이 아니라 스트럿츠2의 달라진 점을 얘기한 것입니다. 스트럿츠2로 개발을 해보면 정말 개발 작업과 설정 작업이 많이 직관적이고, 단순해진 것을 느낄 수 있습니다.
spring 2.5의 자동 bean 인식기능을 쓰면 양쪽에 다 등록해줘야 할 필요가 없으니 다시 한번 봐야겠네요.