학교에서 공부할 때와는 다르게 개발자가 되니 프레임워크를 사용하게 되었습니다.
요 근래 사용해본 프레임워크는 eGov(Spring) , 코드이그나이터 였습니다.
그중에 Spring 프레임워크에 대한 숙련도를 높이고자 책에서 배운 것을 이곳에 정리하며 배우려고 합니다.
FrameWork
'아키텍처(≒하드웨어)에 해당하는 골격 코드'
라고 이해하고 있습니다.
개발자들에게 기본적인 골격을 제공하고 개발자들은 기본골격에 살을 붙이는 식으로 개발을 하여,
개발자들의 해당 애플리케이션에 대한 분석, 설계, 구현에 대한 이해도가
'상향평준화'
시키는데 그 목적이 있다고 생각합니다.
(간단하게는 누구나 유지보수하기 쉽게 최대한 통일하자 라고 생각합니다)
Spring FrameWork
JAVA 플랫폼 경량화 프레임워크의 일종입니다.
특징
-
경량
크기 측면에서의 경량 + POJO ( = Java Bean, 순수하게 setter/getter 메서드로 이루어진 Value Object성의 Bean ) 객체 사용에 따른 경량. ( 그냥 프레임워크 중에 가볍다 정도로 인식하고 넘어가도 될 것 같습니다 )
-
IoC ( 제어의 역행 )
보통 프로그램은 하나의 흐름을 가지고 있고 이를 '개발자가 제어/주도'하게 되어있습니다.
이 제어권을 컨테이너에게 넘기고 ( = 제어권의 흐름이 바뀜, 제어의 역행/역전 ) 이로 인해서 의존성 주입( DI ), 관점 지향 프로그래밍( AOP ) 등이 가능하게 됩니다.
-
DI ( 의존성 주입 )
(꼭 스프링에서만 사용되는 개념은 아니지만, 알고 넘어가야 할 것 같아서 함께 정리합니다.)
객체 간의 의존성을 해당 코드 내에서 설정하는 것이 아닌 '외부에서 주입하여 설정/연결' 한다는 개념입니다.
-
AOP ( 관점 지향 프로그래밍 )
메서드를 개발할 때, '핵심 로직'과 '공통 사용 로직'을 분리하여 개발하는 프로그래밍 기법(?)이라고 할 수 있습니다.
-
컨테이너
개발자 대신 주입을 이용하여 객체를 관리하 ( 객체의 생성 및 소멸 = 생명주기 )는 주체를 가리킵니다. ( IoC, Servlet, EJB 등 )
-
스프링 컨테이너의 종류
BeanFactory : 스프링 설정 파일 ( xml ) 에 등록된 <bean> 객체를 생성하고 관리하는 기본적인 컨테이너 기능만 제공.
컨테이너가 구동될 때 <bean> 객체를 생성하는 것이 아니라, 클라이언트의 요청에 의해서만 객체가 생성되는
'지연 로딩 ( Lazy Loading ) 방식을 사용.
ApplicationContext : BeanFactory 를 상속하므로 위에서 섷명한 <bean> 객체 관리 기능 외에도 다양한 기능을 지원한다.
컨테이너가 구동되는 시점에 <bean> 등록된 클래스들을 객체 생성하는 즉시 로딩 ( pre-loading )
방식을 사용한다. (웹 애플리케이션 개발도 지원)
이러한 특징들로 인해서 Spring FrameWork는
'느슨한 결합도와 응집도가 높은 프로그래밍'
을 가능하게 해 줍니다.
우선 이정도로 정리해두고 차차 추가하도록 하겠습니다.
출처 : 스프링 퀵 스타트 (채규태 지음)
https://blog.outsider.ne.kr/729
[Spring 레퍼런스] 1장 스프링 프레임워크 소개 #1 :: Outsider's Dev Story
오랫동안 자바와 스프링에 대해서 공부해야지 하면서도 사실 다른 기술들에 비해서 많은 시간은 투자하지 못했습니다. 어쨌든 작년부터는 스프링으로 업무를 하고 있기 때문에 올해는 맘먹고 스프링을 공부하기로...
blog.outsider.ne.kr
스프링(Spring) 프레임워크 기본 개념 강좌 (1) - 스프링 이해하기
JAVA개발자를 위한 스프링 기본 개념 이해를 돕기 위한 강좌를 진행할 예정입니다. 스프링을 처음 접하시거나 개념에 대해 이해가 좀 더 필요하신 분들을 위해 작성한 것으로 스프링을 이미 잘 다루시거나 전문적..
ooz.co.kr
https://m.blog.naver.com/weekamp/186678831
POJO(Plain Old Java Object) 란?
Java진영에서 어느날 갑자기 등장하여 개발자들을 모호하게 만들어 버렸던 POJO!! 이 녀석이 당췌 뭐...
blog.naver.com
IOC와 DI 에 대하여 (스프링 개념 이해하기 쉽게 설명)
Inversion of Control (제어의 역전) DI(의존성 주입)을 이해하기 위해서는 IoC(제어의 역전) 의 개념을 알고 넘어가야 할 필요가 있다. 스프링을 쓰기 전에는 개발자가 프로그램의 흐름(애플리케이션 코드)을 제..
mo-world.tistory.com
'Web Programming > Spring' 카테고리의 다른 글
Model 1 , Model 2, MVC (0) | 2019.11.27 |
---|---|
의존성 관리 (0) | 2019.07.06 |
<bean> 엘리먼트 속성 (0) | 2019.07.06 |