스프링(Spring)은 자바 엔터프라이즈(Enterprise) 애플리케이션(Application) 개발에 사용되는 어플리케이션 프레임워크(Framework)다.

어플리케이션 프레임워크는 애플리케이션 개발을 빠르고 효율적으로 할 수 있도록 애플리케이션의 바탕이 되는 틀과 공통 프로그래밍 모델, 기술 API 등을 제공해준다.

이글을 통해 스프링이 무엇인지 조금이라도 이해가 되셨으면 좋겠습니다.

- 무슨말이 이렇게 어렵습니까 ?

- 스프링이 성공한 이유 ?

- 스프링 프레임워크의 철학 ?

- 스프링을 사용한다는것

- 스프링을 효과적으로 익히려면?

- 스프링 프레임워크의 이해의 접근방향

 

- 무슨말이 이렇게 어렵습니까 ?

 

현재 이 블로그를 찾아오신 분들은 모두 스프링이 무엇인지 궁굼하실 것 입니다.

예상컨대 현재 Web 개발자이거나 또는 Web Programing 입문자이시거나 혹은 "스프링", "Spring"  대세다 ~

뭐 이런 이야기를 들었을까 하는 생각을 해봅니다.

 

Spring Framework 어떻게 접근을하면 친근하게 받아들일 수 있을까 생각을 해보았습니다.

쉽게생각보면 이렇습니다.

복잡한 엔터프라이즈급 개발을 할때 훌륭한 개발자들이 다른 개발자들을 위해

기본틀을 제공하고, 공통적인 프로그래밍 모델을 제시해주며, 잘만들어진 API를 제공한 것 입니다.

마음에 좀 와 다으셨습니까?

스프링 프레임워크는 어떤 한두 사람에 의해 어느 날 갑자기 만들어진 것이 아니라고 합니다.

오히려 스프링은 자바를 통해 엔터프라이즈 시스템을 개발하는데 좀 더 나은 방법과 전략을 찾으려고 고민하고 연구한 많은 개발자의 수고에 오랜 시간에 걸쳐서 집약된 결정체 입니다.

 

훌륭한 많은 개발자님들이 제안했던 아이디를 구체화된 프레임워크로 만들어내고, 만들어진 프레임워크를 오픈소스 생태계를 통해 효과적으로 검증하고 발전시킨 결과물이 스프링 프레임워크(Spring Framework) 입니다.

 

- 스프링이 성공한 이유 ?

 

단지 최첨단의 화려한 기능을 제공해주기때문이 아닙니다.

오히려 견고하고 건전한 자바의 엔터프라이즈 개발의 핵심 가치에 충실했기 때문입니다.

스프링을 사용하여 개발자들은 자연스럽게 자바와 엔터프라이즈 개발의 기본에 충실할수있고, 이상적인 개발 철학과 프로그래밍 모델을 이해하게되고 좋은 개발 습관을 얻게됩니다.

스프링을 사용하는 개발자들이 스프링을 통해 얻게 되는 두 가지 중요한 가치가 있다고 하는데요

바로 단순함과 유연성 이라고합니다.

 

스프링은 스스로 발전하는 프레임워크라고 합니다.

스프링 개발 철학 중 하나는  "항상 프레임워크 기반의 접근 방법을 사용하라" 입니다.

스프링의 기능의 대부분은 핵심 기능을 확장해서 발전시킨 결과물입니다.

개발자들에게 스프링을 확장해서 사용하도록 권장합니다.

스프링을 필요에 맞게 확장해서 자신만의 프레임워크를 만들어서

사용할 줄 알아야 한다는것이 스프링을 사용함에 최종목표입니다.

 

- 스프링 프레임워크의 철학 ?

 

스프링은 자바를 기반으로 한 기술입니다.(다들아시죠?)

그렇다면 자바가 객체지향 프로그래밍이 가능한 언어라는것도 아실겁니다.

객체지향 프로그래밍이 제공하는 폭넓은 혜택을 누릴 수 있도록 기본으로 돌아가자는 것이 바로 스프링의 핵심 철학입니다.

스프링은 객체지향 설계와 구현에 관해 특정한 모델과 기법을 억지로 강요하지는 않습니다. 하지만 오브젝트를 어떻게 효과적으로 설계하고 구현하고 사용하고, 이를 개선해 나갈 것인가에 대한 명쾌한 기준을 마련해줍니다.

 

 

- 스프링을 사용한다는것

 

1. 어플리케이션의 기본 틀 - 스프링 컨테이너

2. 공통 프로그래밍모델 - Ioc/DI, 서비스 추상화, AOP

3. 기술 API

 

이 세 가지 요소를 적극적으로 활용해서 애플리케션을 개발한다는 뜻입니다.

클래스는 스프링 컨테이너 위에서 오브젝트로 만들어져 동작하게 만들고,

코드는 스프링의 프로그래밍 모델에 따라서 작성하고,

엔터프라이즈 기술을 사용할때는 스프링이 제공하는 기술 API와 서비스를 활용하도록 해주면된다.

아따 말어렵네요 그죠 ? 암튼 뭔가 겁나많이 제공해준다는것만 접근하시면 될꺼같아요

지금은 이정도로만 이해하는게 정신건강에 좋다고 생각합니다.

 

- 스프링을 효과적으로 익히려면?

 

스프링 공부하려는데 어떻게 접근해야할까?

스프링을 효과적으로 익히려면 다음 세가지 단계를 통해 스프링을 학습하는게 좋습니다.

 

1. 스프링의 핵심 가치와 원리에 대한 이해

-스프링의 핵심가치의 이해! 

-스프링 스스로가 그가치를 어떻게 적용해서 만들어져 있는지 이해!

-스프링을 일관된 방식으로 이해할 수 있는 눈을 갖자!

 

2. 스프링의 기술에 대한 지식과 선택 기준 정립

- 스프링이 이를 어떻게 다양한 방법으로 확장하고 적용했는지 살펴보자!

- 스프링이 제공하는 기술의 종류와 접근 방법에는 어떤것이 있는지 충분히살펴보자!

- 선택의 기준을 마련해서 그때그때 상황에 맞는 최선의 기술과 접근 방법을 선택할수 있도록 하자!

 

3. 스프링의 적용과 확장 

-스프링의 다양한 기술을 어떻게 실제 애플리케이션 개발에 어떤식으로 적용해야 하는지를 공부하자!

- 실전에서 사용하는 데 필요한 응용 방법과 확장 방법을 공부하자!

 

- 스프링 프레임워크의 이해의 접근방향

 

스프링을 효과적으로 사용하려면 스프링이 지지하는 가치와 이루고자 하는 목표를 반드시 이해해야 합니다.

그리고 그목표를 이루기 위해, 스프링이 제공하는 구체적인 기술에는 어떤 것이 있으며 왜 필요한지도 알아야겠지요.

스프링은 단순하게 기계적으로 적용할 수 있는 기술이 아닙니다. 스프링은 먼저 이해해야하며 그 이해를 바탕으로 창조적으로 응용해야만 스프링이 제공하는 진정한 가치를 얻을 수 있습니다.

 

 

현업에서 Spring 프레임워크를 사용해서 웹 개발을 많이 합니다.

저역시 현재 프로젝트를 진행중이구요

현재 대세라고 하죠 ? 저역시 그 대세가 얼마나 대단하길래 씨끄럽나하고 접근하고 잇습니다.

두근거리지 않습니까 ?

저는 엔터프라이즈 급이라는 이야기만들어도 ㅋㅋ 가슴이 두근거립니다. 워워워 ㅋㅋ

앞으로 스프링 프레임워크를 사용함에 있어서 장점들을 하나하나 소개 해 보려고 합니다.

 

스프링 홈페이지 http://www.springsource.com/

 

 작성자 :

 Nadak(최승호)

 이메일 : 

 Nadakcsh@gmail.com

 블로그

 http://blog.naver.com/nadak_csh

 http://nadak.tistory.com/

 

#참고문헌

단행본: 이민일, 『토비의 스프링 3』,에이콘, 2010/7/26, 1408p


블로그 이미지

532

처음 프로그래밍을 시작한 개발자들은 Hello World!를 기억 할 것이다. Hello world가 Hell World가 될 줄 몰랐던 한 개발자의 이야기. 게시글의 출처를 표기하며, 출처를 남기지 않고 펌을 하는것에 대해 법적 책임을 묻지 않습니다.

,