프레임워크 개발이란 이미 있는 기술을 조합해서 어떻게 쓸지 결정하고, 툴이나 공통 모듈 정도를 만들어놓는 것이 아니다. 프레임워크란 애플리케이션의 코드가 효율적인 방법으로 개발돼서 사용될 수 있도록 새로운 틀framework를 만드는 작업이다. 스프링은 그 자체로 완벽한 프레임워크이지만 동시에 각 환경에 맞는 더 나은 프레임워크를 개발할 수 있게 해주는 이상적인 기반 프레임워크 이기도 하다. 각자 환경에 맞게 필요한 기능을 확장해서 사용할 이유가 없다면 스프링이 이토록 장황하게 확장 포인트를 정의하고 유연한 전략 패턴을 적용해놨을 리가 없지 않은가?

  • 토비의 스프링 3.1, 3장 스프링 웹 기술과 스프링 MVC 423p

아무런 생각없이 사용하던 프레임워크.

이제 그 안에 담긴 것들을 맛보기 시작할 수 있게 되었을까? 아직 멀었다.

프레임워크가 어떤 것인지 이해하려면 라이브러리와 프레임워크가 어떻게 다른지 알아야 한다.

라이브러리를 사용하는 애플리케이션 코드는 애플리케이션 흐름을 직접제어한다.

단지 동작하는 중에 필요한 기능이 이쓸 때 능동적으로 라이브러리를 사용할 뿐이다.

 

반면에 프레임워크는 거꾸로 애플리케이션 코드가 프레임워크에 의해 사용된다.

보통 프레임워크가 위에 개발한 클래스를 등록해두고, 프레임워크가 흐름을 주도하는 중에 개발자가 만든 애플리케이션코드를 사용하도록 만드는 방식이다.

프레임워크에는 분명한 제어의 역전 개념이 적용되어 있어야 한다. 애플리케이션 코드는 프레임워크가 짜놓은 틀에서 수동적으로 동작해야 한다. 

 

--> 라이브러리를 사용하는 애플리케이션 : 애플리케이션이 필요할 때 라이브러리를 사용

--> 프레임워크를 사용하는 애플리케이션 : 프레임워크가 흐름을 주도하다가 필요한 애플리케이션을 사용

 

출처 : 토비의 스프링3, 1장_오브젝트와 의존관계

토비의스프링3
카테고리 컴퓨터/IT > 프로그래밍/언어 > 프로그래밍일반
지은이 이일민 (에이콘출판, 2010년)
상세보기


이 글은 스프링노트에서 작성되었습니다.

+ Recent posts