본문 바로가기

개발과/"Spring"이 왔나 봄

Spring을 사용하면 개발에 '봄'이 올까요?

Spring이란??  

1. Frame work : 스프링은 짜여있는 틀 안에서 동작한다. frame=틀 work=동작하다.

2. 오픈소스 : 소스공개 !!  소스의 내부를 보기가 가능, 뜯어고치기 가능!

3. IoC (Inversion of control)컨테이너(=frame work)를 가진다. : 제어의 반전이란 주도권이 스프링에게 있다는 것

인스턴스 생성부터 소멸까지의 인스턴스 생명주기 관리를 개발자가 아닌 컨테이너가 대신 해줍니다.

객체관리의 주체가 frame work(컨테이너)가 되기 때문에 개발자는 로직에 집중할 수 있다.

("내가 필요할때 연락할께 연락하지마~"라는 개념으로 "HollyWood Principle" 이야기 하기도한다.)

 

4. DI (Dependency injection) 의존관계 주입 : A는 B에 의존하고 있다고 했을때 B가 변화 한다면 당연히 A도 변하게 된다. 이런 의존성을 줄여주는 역할을 하고 필요 할때 마다 Heap에서 꺼내와 쓸 수 있는 재사용성이 올라간다.

(DI를 사용한다고 반드시 IoC가 필요한것은 아니다!)

5. 스프링은 많은 필터를 가지고 있다. :

filter : web application 에서 관리 되는 영역

 

톰켓 : 흔히 WAS(web application service) 주로 xml파일을 편집해 설정, 요즘엔 톰켓이 다 embedded되어 있다.

 

인터셉터 : 컨트롤러에 URI에 접근하는 과정에서 무언가 제어할 필요가 있을 때 사용한다. 예로 로그인권한 관련,처리 등을 인터셉터를 이용해 효율적으로 처리 가능.

6.많은 어노테이션(@)을 가진다. : @=주석+힌트 나 어떤어떤거 할거야~라고 컴파일러에게 힌트를 주고 처리하는 역할.

7.Massage converter (Jackson):

한국어 <-> 스페인어,   한국어 <-영어-> 스페인어  영어에 역할을 한다.

Java<-> Python,  Java <-json-> Python

8. BufferedReader/BufferedWriter : 통신 및 정보 전달을 할때 가변길이를 통해 데이터 낭비가 되지 않게 하는 기술

@responseBody -> BufferedWriter

@requestBody -> BufferedReader

 

스프링을 잘 사용하면 정말 개발하는데 봄이 올까요?