ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 라이브러리, 프레임워크, 툴의 차이
    Intern 2024. 4. 17. 11:50
    728x90

    1. 라이브러리 : 맨땅에 헤딩하여 얻은 프로그램을 다른 사람들이나 본인이 나중에 사용하기 위해 가공한 것이다.

    특정 기능에 대한 API를 모은 집합라이브러리라고 한다.

    Ex. jQuery : javascript에서 자 주 쓰이는 편리한 함수를 만들어 둔 것

     

    2. 프레임워크 : 정해진 틀에서 일을 할 수 있도록 만들어진 것으로, 예를 들어 웹에 특화하여 더 빠르게, 더 쉽게 만들수 있도록 한 것이 프레임워크다.

    application 개발 시 코드의 품질, 필수코드, 알고리즘, 암호화, 데이터베이스 연동 같은 기능들이 어느 정도 구성되어 있는 뼈대를 제공하도록 만들어진 것이다.  S/W에서 프레임워크는 소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합이라고 할 수 있으며, 완성된 애플리케이션이 아니기 때문에 프로그래머는 제공된 프레임워크의 구조를 이용하여 애플리케이션을 완성해야 한다.

    개발의 속도를 원한다면 프레임워크를 적극 활용하되, 프레임워크는 아무래도 특화된 묶음이기에 지원하지 않는 라이브러리나 재료도 존재한다. 

    Ex. Django, Spring

     

    3. 툴 : 도구. 프레임워크의 부분집합 개념

     

    Framework / Library

    단순히 라이브러리가 모이면 프레임워크인가?

    아니다. 프레임워크와 라이브러리의 핵심적인 차이는 흐름에 대한 제어 권한이 어디에 있느냐에 있다.

    프레임워크는 전체적인 흐름을 자체적으로 제어하며 프로그래머는 프레임워크 안에 필요한 코드를 작성한다.

    반면 라이브러리는 전체적인 흐름을 자체적으로 제어할 수 없으며 사용자가 흐름에 대해 제어를 하는 도중 필요한 상황에 가져다 쓴다.

    즉, 한 문장으로 정리하면 프레임워크에는 제어의 역전(Inversion of Control)이 적용되어 있다는 것이다.

     

    *Inversion of Control

    어떠한 일을 하도록 만들어진 프레임워크에 제어의 권한을 넘김으로써 클라이언트 코드가 신경써야 할 것을 줄이는 전략

     

    라이브러리는 이를 가져다가 사용하고 호출하는 측에 전적으로 주도성이 있는 반면, 프레임워크는 그 틀 안에 이미 제어 흐름에 대한 주도성을 내재하고 있는 것이 핵심이다.

    개발자가 주도적으로 메소드를 호출하는 것이 아니라 프레임워크가 개발자의 메소드를 호출해 실행한다.

    728x90
Designed by Tistory.