Kim VamPa

스프링 프레임워크(Spring Framework)란? 본문

스프링 프레임워크

스프링 프레임워크(Spring Framework)란?

Kim VamPa 2020. 3. 24. 18:08
728x90
반응형

"코드로 배우느 스프링 웹 프로젝트"책을 개인 공부 후 자료를 남기기 위한 목적이기에 내용 상에 오류가 있을 수 있습니다.


목표

  • '스프링 프레임워크'가 무엇인지 말 할 수 있고, 해당 프레임워크의 특징 및 장단점을 설명할 수 잇는 것을 목표로합니다.

목차

1. 프레임워크란?

2. 스프링 프레임워크

1. 프레임워크(Framework)

"뼈대나 근간을 이루는 코드들의 묶음"
  • 개발자는 각 개개인의 능력차이가 크고, 따라서 개발자 구성에 따라서 프로젝트의 결과 차이가 큽니다.
    => 이러한 상황을 극복하기 위한 코드의 결과물이 '프레임워크' 입니다.
  • 프레임워크 이용 한다는 의미 : 프로그램의 기본 흐름이나 구조를 정하고, 모든 팀원이 이 구조에 자신의 코드를 추가하는 방식으로 개발 한다.
  • 프레임워크를 사용하면 크게 다음 3가지의 장점이 있습니다. 
    1. 실력이 부족한 개발자라 허다러도 반쯤 완성한 상태에서 필요한 부분을 조립하는 형태의 개발이 가능하다.
    2. 일정한 품질이 보장된 결과물을 얻을 수 있다.
    3. 개발 시간을 단축할 수 있다.
  • 프레임워 워크 종류
     Spring(Java의 웹 프레임워크), Django(Python의 웹 프레임워크), Flask(Python의 마이크로 웹 프레임워크), Ruby on rails(Ruby의 웹 프레임워크), .NET Framework, Node.js(Express.js 프레임워크) 등등.

 

2. 스프링 프레임워크(Spring Framework)

자바 플랫폼을 위한 오픈 소스 애플리케이션
  • 여러 프레임워크들 중 자바(JAVA)를 기반으로 하는 프레임워크 이다.
  • 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크 이다.
  • 스프링의 다른 프레임워크와 가장 큰 차이점은 다른 프레임워크들의 포용입니다. 이는 다시말해 기본 뼈대를 흔들지 않고, 여러 종류의 프레임워크를 혼용해서 사용할 수 있다는 점입니다.

 

 

스프링 프레임워크 특징

  •  POJO(Plan Old Java Object)기반의 구성
    - 코드를 개발할 때 개발자가 특정한 라이버리나 컨테이너의 기술에 종속적이지 않다는 것을 의미합니다
    - 쉽게말해 Java코드를 이용해서 객체를 구성하는 방식을 그대로 스프링에서 사용할 수 있다는 의미 합니다.
  • 의존성 주입
    -  의존성 주입은 하나의 객체가 다른객체의 의존성을 제공하는 테크닉입니다.
    - "어떤 객체가 필요한 객체를 외부에서 밀어 넣는다."는 의미입니다.
    - "의존성 주입"을 사용하여 갖는 장점은 '주입을 받는 입장에서는 어떤 객체인지 신경 쓸 필요가 없다.', '어떤 객체에 의존하든 자신의 역할은 변하지 않는다.'입니다.
    - "ApplicationContext"라는 존재가 필요한 객체들을 생성하고, 피룡한 객체들을 주입하는 역할을 해주는 구조 입니다.
    - "ApplicationContext가 관리하는 객체들을 "빈(Bean)"이라고합니다.
    - 빈과 빈 사이의 의존 관계를 'xml 설정', '어노테이션 설정', 'Java 설정 방식'을 통해서 처리 할 수 있습니다.

  • 관점지향프로그래밍(AOP)의 지원
    - 대부분의 시스템에서 '보안'이나 '로그', '트랜잭션'과 같이 무엇을 실행을 하든 반드시 처리가 필요한 부분이 있습니다. 이를 '횡단 관심사(cross-concern)'라고 합니다. 
    - AOP는 이러한 횡단 관심사를 모듈로 분리하는 프로그래밍 패러다임입니다.
    - 이 패러다임을 통해서 반복적인 코드를 줄이고, 핵심 비즈니스 로직에만 집중을 할 수 잇습니다.
  • 높은 확장성
    - 스프링 프레임워크에 통합하기 위해 간단하게 기존 라이브러리를 감싸는 정도로 스프링에서 사용이 가능합니다.
    - 따라서 수많은 라이브러리가 이미 스프링에서 지원되고 있고 스프링에서 사용되는 라이브러리를 별도로 분리하기도용이합니다.

 

 

* POJO : Java EE 등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속도니 "무거운" 객체를 만들게 된 것에 반발해서 사용하게 된 용어.

* JAVA EE(Java Platform, Enterprise Edition) : 자바를 이용한 서버측 개발을 위한 플랫폼.(<=> Java SE : 일반적으로 사용되는 PC에서 동작하는 표준 플랫폼)

 

스프링 프레임워크 사용이유(장점)

  • 정형화 되어 있기 때문에 일정수준의 품질을 기대 할 수 있습니다.
  • 개발 후 유지보수 및 기능의 확장성에서도 품질을 보장합니다.
  • '전자표준 프레임워크'기 때문에 해당 프레임워크의 수요가 큽니다.(한국 한정)

 

스프링 프레임워크 단점

  • 내부에서 많은 기능을 가졌기 때문에 상당히 무겁습니다.
  • 분명 많은 기능을 제공해서 편리하지만, 이 기능들을 습득하기위해 상당한 노력과 시간이 필요합니다.

Reference

Date

  • 2020.03.24 작성

 

 

 

 

728x90
반응형
Comments