프레임워크는…
복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구
조이다. 간단히 뼈대, 골조(骨組), 프레임워크(framework)라
고도 한다. 이렇게 매우 폭넓은 정의는 이 용어를 버즈워드
(buzzword)로서, 특히 소프트웨어 환경에서 사용할 수 있게
만들어 준다.
- 한글 위키-
뭐라는거냐?
Framework is…
an abstraction in which software providing generic
functionality can be selectively changed by
additional user-written code, thus providing
application-specific software.
• 제어 역전(IoC; inversion of control)
• 기본 행위
• 확장 가능
• 프레임워크 코드 수정 불가(바이너리 재사용)
스프링 프레임워크는…
스프링 프레임워크는 자바 플렛폼으로서 자바 애플리케
이션을 개발하는데 필요한 하부 구조를 포괄적으로 제공
합니다. 스프링이 하부 구조를 처리하므로 개발자는 애플
리케이션 개발에 집중할 수 있습니다.
Spring Framework is a Java platform that provides
comprehensive infrastructure support for developing Java
applications. Spring handles the infrastructure so you can focus
on your application.
소프트웨어 위기
소프트웨어 위기의 주요한 위기는 컴퓨터 성능이 몇 수십 배나 더 강력해졌기 때
문입니다! 심하게 말하면, 컴퓨터가 없었을 때는 프로그래밍에는 전혀 문제가 없
었습니다. 느린 컴퓨터 몇 개 뿐이었을 때는 프로그래밍이 조금 문제가 되었고,
이제는 거대한 컴퓨터에 프로그래밍도 따라서 거대한 문제가 되었습니다.
- 에츠허르 데이크스트라 @ 1972 ACM 튜링상 수상 연설
F. L. 바우어, 1968, 나토 SW 공학 학회
애플리케이션 배역 구성
스프링
배역 구성
객체
객체 객체
객체
애플리케이션
구성 메타데이터
(Configuration Metadata)
스프링 컨테이너
(Spring Container)
빈(Bean)
스프링
컨테이너
애플리케이션
빈(Bean)
구성
메타데이터
생성
빈(Bean)
• 스프링이 관리하는 컴포넌트성 객체
• POJO (인프라에 오염되지 않은 객체)
구성 메타 데이터(빈 정의)
• 애플리케이션 구성 정보(의존 관계 포함)
• 다양한 메타 데이터 표현 방법: XML, 자바, 그루비 등
• Java 어노테이션, 어노테이션을 사용한 메타 데이터 표시
• Java 기반 구성
• 자바를 빈 설정용 DSL로 사용
• 스프링 3.0 이상, JavaConfig 프로젝트가 통합
• @Configuration, @Bean, @Import, @DependsOn
• XML 없이 애플리케이션 구성 가능
• Java 어노테이션 방식의 완성
• 그루비 빈 구성: 4.0 이상