Home 프레임워크와 라이브러리
Post
X

프레임워크와 라이브러리

프레임워크 Framework

소프트웨어 개발에 사용되는 개발 도구로 개발에서 필요한 기능과 기본 틀을 제공하여 개발자가 빠르고 효율적으로 개발할 수 있도록 해줍니다.

즉, 개발자가 원하는 기능 구현에 집중할 수 있도록 일정한 형태와 기능을 갖는 뼈대를 의미합니다.


프레임워크 특징

  • 제어 역전 (IoC)

    프레임워크는 제어 역전(IoC) 패턴을 적용하여 개발자가 작성한 코드를 호출하는 대신 프레임워크가 개발자가 작성한 코드를 호출합니다.

    이를 통해 개발자는 애플리케이션의 핵심 비즈니스 로직에 집중할 수 있습니다.

  • 의존성 주입 (DI)

    프레임워크는 의존성 주입(DI) 패턴을 적용하여 애플리케이션의 객체 간 의존성을 관리 해줍니다.

    이를 통해 객체 간 결합도를 낮출 수 있습니다.

  • 컴포넌트 기반 아키텍처

    프레임워크는 컴포넌트 기반 아키텍처를 적용하여 애플리케이션의 코드를 재사용할 수 있습니다.

  • 쉬운 개발

    프레임워크는 개발자가 애플리케이션을 더욱 빠르고 쉽게 개발할 수 있도록 지원합니다.

    이를 통해 개발자는 애플리케이션의 핵심 비즈니스 로직에 더욱 집중할 수 있습니다.


프레임워크 장단점

  • 장점

    • 생산성 향상

      프레임워크는 핵심 로직에 집중할 수 있도록 공통 작업을 처리해줍니다.

    • 유지보수성 향상

      코드의 일관성을 유지하고 보안적으로 안전한 코드를 생성합니다.

    • 높은 확장성

      모듈화된 구조를 가지고 있어서 필요한 기능만 선택하여 사용할 수 있습니다.

    • 일관된 코드

      프레임워크가 제공해주는 기본 틀로 인해 객체 지향 개발 과정에서 나타나는 일관성 부족 문제를 보완할 수 있습니다.


  • 단점

    • 학습 필요

      프레임워크는 특정 방식으로 동작하기 때문에 개발자들이 해당 방식에 익숙해지기 위해 학습해야합니다.

    • 설치 필요

      대형 프레임워크는 파일 크기가 크고 설치 과정이 복잡할 수 있기때문에 실행 환경 구성에 시간과 노력이 필요합니다.


라이브러리 Library

소프트웨어 개발 시 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임으로 구성 데이터, 문서, 도움말 자료, 메시지 틀, 미리 작성된 코드, 서브루틴(함수), 클래스, 값, 자료형 사양을 포함합니다.

비슷한 의미로는 다른 프로그램에서 사용할 수 있는 코드 모음을 의미합니다.

이러한 코드 모임은 기능적으로 연관된 일련의 함수, 클래스 및 메서드 등을 포함합니다.


라이브러리 특징

  • 재사용성

    라이브러리를 사용하면 개발자는 기존 코드를 재사용할 수 있으므로 코드 양을 줄이고 개발 시간을 단축시킬 수 있습니다.

  • 호환성

    라이브러리는 일반적으로 특정 프로그래밍 언어로 작성되므로 해당 언어와 호환됩니다.

    각 언어에 맞게 그 언어로 작성된 라이브러리는 그 언어로 작성된 프로젝트 및 소프트웨어 코드에서만 사용할 수 있습니다.

  • 업그레이드 및 유지보수

    라이브러리는 주로 다른 사람이 작성한 코드이기 때문에 업그레이드 및 유지보수가 수월합니다.


라이브러리 장단점

  • 장점

    • 생산성 향상

      이미 구현된 기능을 사용하므로 개발 시간을 단축시킬 수 있습니다.

    • 재사용성

      기존의 코드를 재사용함으로써 유지보수성이 향상됩니다.

    • 성능 향상

      최적화된 코드를 제공하므로 성능 향상에 도움이 됩니다.


  • 단점

    • 학습 필요

      새로운 라이브러리를 사용하기위해 학습이 필요합니다.

    • 의존성 문제

      사용할 라이브러리와의 의존성 문제가 발생할 수 있습니다.
      (사용할 라이브러리의 버전 호환 문제 등)

    • 제한된 유연성

      이미 구현된 기능을 사용하기 때문에 개발자가 수정하기 어렵습니다.


프레임워크와 라이브러리 차이점

간단하게 정리해보겠습니다.

  • 프레임워크 : 일정한 형태와 필요한 기능을 갖춘 뼈대로 재사용하기 편하도록 정리한 일련의 코드 집합
  • 라이브러리 : 코드 작성 시 활용 가능한 도구로 특정 기능을 모아둔 코드 집합

프레임워크는 라이브러리의 상위 개념으로 라이브러리들의 모임이라고 생각할 수 있습니다.

이 둘의 가장 큰 차이점은 제어 흐름에 대한 책임의 차이입니다.

라이브러리는 개발자가 코드를 작성하는 데 필요한 도구를 제공합니다. 개발자는 개발 시 필요한 기능이 있을 경우 능동적으로 라이브러리를 호출하여 사용합니다.

즉, 라이브러리를 사용할 때 사용자는 제어 흐름을 직접 제어합니다.

프레임워크는 개발자가 작성한 코드를 프레임워크가 가져가서 사용합니다.
코드는 개발자가 원하는 위치에서 원하는 동작이 할 수 있도록 작성하지만, 결과적으로 프레임워크는 개발자가 작성한 코드를 가져와 실행합니다.

이러한 현상을 제어의 역전 (IoC) 이라고 합니다.

즉, 프레임워크는 전체적인 흐름을 자체적으로 가지고 있고, 프로그래머가 그 안에 필요한 코드를 작성합니다.
라이브러리는 사용자가 흐름에 대해 제어를 하며 필요한 상황에 가져다 쓰는 것입니다.

framework-library

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.