3D Graphic Technical Artist

[Spring 스터디 1회차] 스프링이란 무엇인가 본문

업무(~2014)/SpringFramework3.1

[Spring 스터디 1회차] 스프링이란 무엇인가

er1ca 2012. 10. 26. 18:00

10월 23일 (화) 

Spring Framework 스터디를 처음 진행 하는 날! 

토비의 스프링 3.1 vol.1 8,9장을 읽고 토론하기로 했다. 


8장은 스프링이란 무엇인가

9장은 스프링프로젝트 시작하기 

로 이루어져있다. 



#1. 8장 스프링이란 무엇인가. 

스프링은 '자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크'이다. 


아래에 나름대로 지금까지 스프링프레임워크가 무엇인지 이해한 대로 적어보았다.. 



자바 엔터프라이즈는 보통 복잡한 비즈니스 로직으로 구성된다. 

스프링 프레임워크는 이를 JAVA 의 객체 지향 개념을 잘 활용해서 개발 할 수 있도록 도와준다. 

즉, 이러한 JAVA 객체 지향 개념을 활용한 개발 방법을 POJO라고 한다. 

기존의 EJB를 사용해서 개발을 하면 EJB의 개발 방법에 맞춰서 코드 등이 복잡해지고 무거워 지기때문에 오히려 JAVA의 객체 지향적인 개념을 벗어나게 된다. 그로인해 복잡한 비즈니스 로직을 구현하고 유지 보수 하는데 어려움이 많아지게된다. 반면 POJO을 사용한 스프링 프레임워크는 EJB에 비해 가볍고 순수한 JAVA의 객체 지향 개념을 이용해서 개발하기 편한 애플리케이션 프레임워크이다.  



스프링 프레임워크를 사용하는 목적은 '엔터프라이즈 개발의 복잡함을 덜기위해서' 이다. 

스프링은 비침투적인 방식을 통해 복잡함을 해결한다.

 

비침투적인 방식 이란?

 

   EJB 처럼 어떤 기술을 적용했을 때 그 기술과 관련된 코드나 규약 등이 코드에 등장하는 경우를 침투적인(invasive) 기술이라고 한다. 꼭 필요한 기능을 사용하는 것도 아니면서 단지 어떤 기술을 바탕으로 만들어진 다고 해서 특정 클래스나 인터페이스, API 등의 코드에 마구 등장한다면 그것은 침투적인 기술이 되며 복잡함을 가중시키는 원인이 된다. 

   반면에 비침투적인 (non-invasive)기술 기술의 적용 사실이 코드에 직접 반영되지 않는다는 특징이 있다.


핵심도구 : 객체지향과 DI 

DI 란 특별한 기술이라기보다는 유연하게 확장할 수 있는 오브젝트 설계를 하다보면 자연스럽게 적용하게 되는 객체지향 프로그래밍 기법이다. 스프링은 DI를 더욱 편하고 쉽게 사용하도록 도와준다.


POJO(Plain Old Java Object)의 조건 

1. 특정 규약에 종속되지 않는다. 

2. 특정 환경에 종속되지 않는다. 


> 진정한 POJO란 객체지향적인 원리에 충실하면서, 환경과 기술에 종속되지 않고 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트를 말한다. 



#2. 9장 스프링 프로젝트 시작하기


1. 자바 엔터프라이즈 플랫폼과 스프링 애플리케이션 

2. 개발도구와 환경 

3. 애플리케이션 아키텍처 

1) 계층형 아키텍처 

2) 3계층 아키텍처와 수직 계층 

* 데이터 엑세스 계층

* 서비스 계층

* 프레젠테이션 계층

4. 애플리케이션 정보 아키텍처 

5. 오브젝트 중심 아키텍처

6. 스프링 애플리케이션을 위한 아키텍처 설계