본문 바로가기
Study/Spring Korea

Spring의 장점

by epro 2007. 3. 26.

근래들어 Spring Framework가 주목 받고 있다.
믿거나 말거나, "스프링으로 프로젝트를 진행하면, 삽질할 일도 없고, 일찍 퇴근할 수 있다."고 한다. (진짜 이러면 얼마나 좋을까?)

이 말이 사실이 아닐 수도 있겠지만, 개발자의 생산성 향상에는 분명 도움이 될거라 생각한다.
그럼, Spring의 장점은 뭘까?

구글신께 spring 장점에 대해서 물어보니..
가장 먼저, Spring의 장점이라는데... 라는 글이 나온다. 영회님 블로그다.. :)

이 글을 토대로 찾은 Spring의 장점은 5가지다.
간략히 타이틀만 요약해보면,

1. Spring Provides Better Leverage
   
 적은 노력을 하고도 많은 결과를 줄 수 있다.
2. Spring Enables POJO Programming
    Spring은 POJO프로그래밍을 가능하게 한다.
3. Dependency Injection Helps Testability
   DI는 테스트를 용이하게 해준다.
4. Inversion of Control Simplifies JDBC
   IoC는 JDBC를 단순화한다.
5. Spring's Community Thrives
 
Spring 커뮤니티의 번영  


두번째로 구글신이 알려주신 내용은,
기묘의 Spring2.0 활용전략 세미나에서 김승권(물개선생)님이 발표하신 주제였다.
마침, 세미나에 참석했을 때 받은 pdf가 있어 내용을 인용해 보면..

Spring이 추구하는 가치

* 사회적 가치
 ** J2EE 기반 개발의 복잡성 감소
 *** J2EE 개발자/아키텍트들의 실질적인 경험을 바탕으로 발전
 *** 기능을 희생하지 않는 단순화
 *** 쉽게 따르기 힘들었던 추천지침들을 따를 수 있도록 함
 ** Simple things should be simple and complex things should be possible - Alan Kay
 *** 단순한 일을 단순하게 처리하지 못한다면, 복잡한 일은 처리가 불가능

* 기술적 가치
 ** POJO기반 개발
 *** 선언적이며, 비파괴적인 방법으로 엔터프라이즈 서비스들을 POJO에 적용
      (예:POJO는 트랜잭션 API에 대해 모르면서도 Transactional할 수 있음)
 *** 실세계의 복잡성을 표현하는 정교한 설정






Spring은 pattern들의 조합이라는 말을 들은 적이 있다.
스프링을 쓰면서 이런 pattern들을 자연스럽게 사용하게 되고, 따라서 개발자들은 좋은 개발습관을 갖게 될 것이다.

또 Spring은 xml이나 annotation등을 이용한 선언적 관리가 가능하다.
즉, POJO기반이면서도 EJB처럼 선언적인 트랜잭션 관리가 가능하다.
때문에, 개발의 복잡성이 감소했고, 특정환경에 제약을 받지 않게 되었다. ( pojo기반이기 때문에 특정환경구축을 위한 class를 import하지 않음)

그리고, Spring은 테스트를 쉽게 해준다.
때문에, 테스트를 자주 돌리면서 코드에 확신이 생기고 개발자들의 스트레스도 감소하게 되는것이다. 스트레스의 감소는 개발자의 정신건강에 좋다.

물개선생님이 발표하신 내용중에..
Spring을 점점 잊게 되는가? 라는 부분이 있었다.

 "Spring의 제일 큰 장점은 개발자들이 Spring이 아닌 좋은 프로그래밍 기법에 관심을 가지도록 자연스럽게 유도하는 것" 이라고 한다.

스프링 프레임워크가 유행이니까..
남들이 다 좋다고 하니까..
그냥 맹목적으로 쓰는 것이 아니라, 스프링을 통해 좋은 프로그래밍 습관을 갖게되고 건강한 코드를 짜기 위해 노력한다면, 결국엔 즐거운 프로그래머가 될 수 있지 않을까? 이런 모습이 스프링의 가장 큰 장점이 되지 않을까싶다...


주저리 주저리... 스프링의 장점에 대한 정리는 이것으로 -The End-

댓글