[Spring] Framework? Library?

·2022년 10월 11일
0

Spring

목록 보기
1/24
post-thumbnail

Framework와 Library

Framework

소프트웨어의 특정 문제를 해결하기 위해 상호 협력하는 클래스와 인터페이스의 집합

  • 뼈대, 골조
  • 프로그래밍을 하기 위한 어떠한 틀이나 구조를 제공하는 역할을 한다.
  • 객체 지향 개발의 통합성, 일관성의 부족 문제 해결하는 방법 중 하나
  • 재사용할 수 있는 수많은 워크를 통합시킨 것.

💡 프레임워크는 완성된 제품이 아닌 완성된 제품을 만들기 위해서 개발자를 도와주고 기반이 되는 역할을 한다.

Framework의 특징

  • 제어의 역전 개념이 적용된 대표적인 기술이다.
  • 특정 개념들의 추상화를 제공하는 여러 클래스나 컴포넌트로 구성되어 있다.
  • 추상적인 개념들이 문제를 해결하기 위해 같이 작업하는 방법을 정의한다.
  • 컴포넌트들은 재사용이 가능하다.
  • 높은 수준에서 패턴들을 조작화 할 수 있다.

💡 제어의 역전(IOC : Inversion Of Control)
어떤 일을 하도록 만들어진 프레임워크에 제어의 권한을 넘김으로써 클라이언트 코드가 신경 써야할 것을 줄이는 전략

Framework의 장단점

Framework의 장점

  • 효율적으로 코드를 작성할 수 있다.

    • 다양한 기능을 프레임워크가 라이브러리 형태로 제공함으로써 개발자가 애플리케이션의 핵심 로직을 개발하는 것에 집중할 수 있도록 한다.
  • 정해진 규약이 있어 애플리케이션을 효율적으로 관리할 수 있다.

Framework의 단점

  • 내가 사용하고자 하는 프레임워크에 대한 학습이 필요하다.
  • 자유롭고 유연한 개발이 어렵다

Library

소프트웨어 개발에 쓰이는 단순 활용가능한 도구들의 집합이다.

  • 애플리케이션을 개발하는 데 사용되는 일련의 데이터 및 프로그래밍 코드
  • 개발자가 만든 클래스에서 호출하여 사용하거나 클래스들의 나열로 필요한 클래스를 불러서 사용하는 방식

Framework와 Library의 차이

💡 제어 흐름의 주도성(IOC)

  • 프레임워크 : 전체적인 흐름을 주도하여 개발자가 프레임워크 안에서 필요한 코드를 짜 넣는다.
  • 라이브러리 : 사용자가 전체적인 흐름을 주도하여 라이브러리를 가져다 사용한다.

💡라이브러리는 가져와서 사용의 개념, 프레임워크는 프레임워크 내에서 사용의 개념
💡 애플리케이션 코드는 프레임워크가 짜놓은 틀에서 수동적으로 동작

profile
🧑‍💻백엔드 개발자, 조금씩 꾸준하게

0개의 댓글