스프링이 정확히 뭔가요?


스프링이라는 말을 엄청 많이들었어요. 스프링은 웹 개발 프레임워크로 엄청 좋다는 말이요. 근데 정확히 뭐에 좋은거죠? 어떻게 제 웹앱 개발에 그걸 쓸수있을까요?

  • 2016년 01월 21일에 작성됨

조회수 340


1 답변


좋아요
1
싫어요
채택취소하기

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

현재 이 블로그를 찾아오신 분들은 모두 스프링이 무엇인지 궁굼하실 것 입니다. 예상컨대 현재 Web 개발자이거나 또는 Web Programing 입문자이시거나 혹은 "스프링", "Spring" 대세다 ~ 뭐 이런 이야기를 들었을까 하는 생각을 해봅니다.

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

복잡한 엔터프라이즈급 개발을 할때 훌륭한 개발자들이 다른 개발자들을 위해 기본틀을 제공하고, 공통적인 프로그래밍 모델을 제시해주며, 잘만들어진 API를 제공한 것 입니다.

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

스프링 프레임워크는 어떤 한두 사람에 의해 어느 날 갑자기 만들어진 것이 아니라고 합니다. 오히려 스프링은 자바를 통해 엔터프라이즈 시스템을 개발하는데 좀 더 나은 방법과 전략을 찾으려고 고민하고 연구한 많은 개발자의 수고에 오랜 시간에 걸쳐서 집약된 결정체 입니다. 훌륭한 많은 개발자님들이 제안했던 아이디를 구체화된 프레임워크로 만들어내고, 만들어진 프레임워크를 오픈소스 생태계를 통해 효과적으로 검증하고 발전시킨 결과물이 스프링 프레임워크(Spring Framework) 입니다.

- 스프링이 성공한 이유 ?

단지 최첨단의 화려한 기능을 제공해주기때문이 아닙니다. 오히려 견고하고 건전한 자바의 엔터프라이즈 개발의 핵심 가치에 충실했기 때문입니다.

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

스프링을 사용하는 개발자들이 스프링을 통해 얻게 되는 두 가지 중요한 가치가 있다고 하는데요 바로 단순함과 유연성 이라고합니다.

스프링은 스스로 발전하는 프레임워크라고 합니다. 스프링 개발 철학 중 하나는 "항상 프레임워크 기반의 접근 방법을 사용하라" 입니다. 스프링의 기능의 대부분은 핵심 기능을 확장해서 발전시킨 결과물입니다.

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

스프링을 필요에 맞게 확장해서 자신만의 프레임워크를 만들어서 사용할 줄 알아야 한다는것이 스프링을 사용함에 최종목표입니다.

###- 스프링 프레임워크의 철학 ? 스프링은 자바를 기반으로 한 기술입니다.(다들아시죠?) 그렇다면 자바가 객체지향 프로그래밍이 가능한 언어라는것도 아실겁니다.

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

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

- 스프링을 사용한다는것

  1. 어플리케이션의 기본 틀 - 스프링 컨테이너
  2. 공통 프로그래밍모델 - Ioc/DI, 서비스 추상화, AOP
  3. 기술 API

이 세 가지 요소를 적극적으로 활용해서 애플리케션을 개발한다는 뜻입니다. 클래스는 스프링 컨테이너 위에서 오브젝트로 만들어져 동작하게 만들고, 코드는 스프링의 프로그래밍 모델에 따라서 작성하고, 엔터프라이즈 기술을 사용할때는 스프링이 제공하는 기술 API와 서비스를 활용하도록 해주면된다.

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

스프링 공부하려는데 어떻게 접근해야할까? 스프링을 효과적으로 익히려면 다음 세가지 단계를 통해 스프링을 학습하는게 좋습니다.

  1. 스프링의 핵심 가치와 원리에 대한 이해 -스프링의 핵심가치의 이해! -스프링 스스로가 그가치를 어떻게 적용해서 만들어져 있는지 이해! -스프링을 일관된 방식으로 이해할 수 있는 눈을 갖자!

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

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

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

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

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

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

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

스프링을 효과적으로 사용하려면 스프링이 지지하는 가치와 이루고자 하는 목표를 반드시 이해해야 합니다. 그리고 그목표를 이루기 위해, 스프링이 제공하는 구체적인 기술에는 어떤 것이 있으며 왜 필요한지도 알아야겠지요. 스프링은 단순하게 기계적으로 적용할 수 있는 기술이 아닙니다. 스프링은 먼저 이해해야하며 그 이해를 바탕으로 창조적으로 응용해야만 스프링이 제공하는 진정한 가치를 얻을 수 있습니다.

  • 2016년 01월 21일에 작성됨

로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close