[Spring] 스프링 프레임워크(Spring Framework)란?
- Spring/Spring 입문 - 개념 및 핵심
- 2018. 11. 4. 01:30
| 스프링 프레임워크(Spring Framework)란?
스프링 프레임워크는 자바 진영에서 주로 웹 서버 어플리케이션을 만들기 위해 사용하는 프레임워크입니다.
스프링 프레임워크를 설명하기에 앞서 먼저 프레임워크가 무엇인지 알아보도록 하겠습니다.
| 프레임워크(Framework)
프레임워크 개발자들이 생산하는 코드 품질 및 개발 속도를 상향 평준화시키기 위해 고안된 규약이자 표준 개발 방법을 제공해주는 어플리케이션입니다.
소프트웨어 개발자들은 이 글을 보고 계시는 여러분도 아시다시피 경력, 재능 그리고 개발자가 가지고 있는 관련 지식에 따라서 급(?)이 많이 나뉘어집니다.
경험 많은 시니어 개발자들과 주니어 개발자들의 차이는 더 어마어마한데요. 이 부분의 간극을 어떤 규약을 지키면서 프로그램을 개발하는 것으로 어느정도 메우자! 라고 해서 등장한게 프레임워크입니다. 프레임워크를 이용하여 어느정도 예측된 코드 품질과 개발 속도를 맞출 수 있게끔 만든 것이죠.
쉽게 생각하면 일종의 공정이라고 생각하시면 됩니다. 공장에서 어떤 제품을 생산할 때 공정을 지키면서 물건을 생산하면 예상된 시간과 품질이 보장되는 것처럼 말이죠.
<공정의 한 모습>
요약하자면 스프링 프레임워크는 자바 언어를 표준을 지키면서 주로 웹 개발을 하게끔 지원하는 어플리케이션이라고 할 수 있겠습니다!
| 스프링에서 제공하는 개발 방법
스프링에서 제공하는 개발방법은 크게 두 가지입니다.
DI(Dependency Injection) - 의존성주입
AOP(Aspect-Oriented Programming) - 관심지향 프로그래밍
처음에 저도 이 두 개념을 배울 때 무슨 소리인지 감조차 안 잡혔는데요. 어렵사리 개념을 어느정도 이해하고 나서 왜 그런가 생각을 해봤더니 디자인 패턴에 대한 내용이 녹아들어있는 개념이었기 때문이었습니다. ( 그때는 자바 언어만 끄적이던 초보 중에서도 상 초보였으니까요ㅠ )
어쨌거나 뭔가 유용하니까 저 두 방법론을 들고 나온 거겠죠? 이해하기 어렵겠지만 저게 무엇인지 간략하게 이야기 하겠습니다.
DI : 객체에 속성값을 주입하는 방식으로, 모듈간의 결합도를 낮추어 유연한 코드를 작성하게 해주는 역할을 함
AOP : 프로그램 로직 중에 반복되는 코드를 횡으로 분리하여 중복된 코드를 줄여주고 핵심 로직에 대한 가독성을 높이는 역할을함
여기서는 스프링에서는 DI, AOP가 주 개발 방법론이고 이건 유용한 방법론이니까 쓰이겠지? 라고 넘어가시면 될 것 같습니다.
| 마치며
스프링은 다른 스크립트언어(Python, Javascript, Ruby 등등)로 짜여진 프레임워크들보다 배우기가 좀 어렵고 개발하기에 시간이 조금 오래걸릴 수 있습니다. 하지만 JVM위에서 가동되는 자바 언어와 그에 수반되는 풍부한 라이브러리, 다른 스크립트 기반 프레임워크에 비하여 견고함 등등 여러 장점이 있습니다. 또한 우리나라에서 가장 많이 쓰이는 프레임워크 중 하나기 때문에 익혀두시면 좋은 프레임워크 중 하나라고 생각합니다.
'Spring > Spring 입문 - 개념 및 핵심' 카테고리의 다른 글
[Spring] 스프링 빈 범위 지정(Spring Bean Scope), 싱글턴(Singleton), 프로토타입(Prototype) (0) | 2018.11.29 |
---|---|
[Spring] 여러개로 나뉜 Spring XML 설정파일 합치기 (0) | 2018.11.29 |
[Spring] Spring에서 새터(Setter)로 리스트(List), 맵(Map) 자료구조 주입 (1) | 2018.11.28 |
[Spring] 의존성 주입, DI(Dpendency Injection), 스프링(Spring) 의존성 주입 (1) | 2018.11.27 |
[Spring] 의존성 역전(IoC)와 스프링 컨테이너(Spring Container) (1) | 2018.11.04 |
이 글을 공유하기