본문 바로가기
IT 지식/웹 프로그래밍

[웹 프로그래밍] 프레임워크와 라이브러리, 스프링 프레임워크

by 이민우 2021. 4. 6.
728x90
반응형

프레임워크

  • 사전적 의미는 '어떤 것을 구성하는 구조 또는 뼈대'이다.
  • 이를 소프트웨어적으로 풀어 사용하면, 클래스나 인터페이스등을 만들어 어느정도 완성된 상태로 제공하는 기능이라 볼 수 있다.
  • 한 마디로 자주 사용되는 클래스나 인터페이스들을 미리 만들어놓음으로써 개발자의 입장에서 자신이 필요로 하는 곳에 언제든지 쉽게 변형하여 사용할 수 있도록 만든 것이다.
  • 프레임워크를 사용하면 일정한 기준에 따라 개발이 이루어지기에 개발 생산성이 올라가고 품질이 보장된다.

 

 

라이브러리

  • 활용 가능한 도구들의 집합을 의미한다.
  • 개발자는 미리 작성된 라이브러리를 호출하여 적재적소에 사용할 수 있다.

 

 

프레임워크와 라이브러리

  • 흔히 프레임워크를 퍼즐판, 라이브러리를 퍼즐 조각에 비유하곤 한다.
  • 프레임워크는 전체적인 흐름을 미리 정의해놓고 있으며, 개발자는 그 안에 필요한 코드를 직접 만들어 사용한다.
  • 그에 비해 라이브러리는 전체적인 흐름을 미리 정의하지 않는다. 개발자 본인이 직접 전체적인 흐름을 만들며, 그 안에서 필요한 곳에 라이브러리를 호출하여 작성한다.
  • 즉, 프로그램의 흐름이 프레임워크는 가지고 있고, 라이브러리는 가지고 있지 않다.

 


 

 

스프링 프레임워크

 

  • 자바 웹 어플리케이션 개발을 위한 오픈 소스 프레임워크.
  • 기존의 프레임워크보다 가벼운 경량 프레임워크이다.

 

 

스프링 프레임워크의 특징

1) EJB보다 가볍고 배우기 쉬우며 경량 컨테이너의 기능을 수행한다.

  • 자바 객체의 생성, 소멸과 같은 라이프 사이클을 직접 관리한다.

 

2) 제어 역행을 이용해 어플리케이션 간 느슨한 결합을 제어한다.

  • 전체적인 흐름을 개발자가 아닌 프레임워크에게 부여한다.
  • 즉, 사용자가 프레임워크의 코드를 호출하는 것이 아니라 프레임워크가 사용자의 코드를 호출한다.
  • 이러한 방식은 어플리케이션의 결합도를 낮춘다.

 

3) 의존성 주입 기능을 제공한다.

  • 각 계층이나 서비스 간 의존성을 개발자가 설정하는 것이 아니라 스프링 컨테이너가 주입한다.
  • 객체의 확장과 재사용을 쉽게 만들어준다.

 

4) 관점지향 프로그래밍 기능을 이용해 자원 관리가 가능하다.

  • 로깅, 보안과 같이 어느 기능에나 공통적으로 사용되는 모듈들을 따로 분리해서 적용한다.
  • 반복적인 코드를 줄이고, 개발자로 하여금 비즈니스 로직에만 집중할 수 있도록 한다.

 

5) POJO (Plain Old Java Object)

  • 환경과 기술에 종속되지 않고 언제든 재활용될 수 있는 방식으로 설계된 오브젝트이다.
  • 특정 인터페이스를 구현하거나 특정 클래스를 상속받지 않아도 된다.

 

728x90
반응형

'IT 지식 > 웹 프로그래밍' 카테고리의 다른 글

[웹 프로그래밍] HTTP Method  (0) 2021.04.02
[웹 프로그래밍] 쿠키, 세션, 캐시  (0) 2021.04.02