본문 바로가기

CS

프레임워크 vs 라이브러리

개발자가 개발에 용이할 수 있도록 공통으로 사용될 수 있는 특정한 기능을 모듈화한 것들을 의미한다.

개발자가 자주 사용하는 클래스나 메소드를 모듈화 시키고 특정 위치에 불러내어 사용하는 것이 두 형태로 발전 된 것.

 

라이브러리

라이브러리란 개발자가 만든 클래스들의 나열로, 다른 프로그램들에서 사용할 수 있도록 제공하는 방식.

 

프레임워크

프레임워크는 뼈대나 기반구조를 뜻하며, 소프트웨어에서의 프레임워크는 '소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합' 이라 할 수 있다.

완성된 어플리케이션이 아닌 프로그래머가 완성시키는 작업을 해야합니다. 

객체 지향 개발을 하게 되면서 통합성, 일관성의 부족이 발생되는 문제를 해결할 방법중 하나라 할 수 있다.

 

프레임워크의 특징

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

라이브러리와 프레임워크

라이브러리와 프레임워크의 차이는 제어 흐름에 대한 주도성이 누구에게/어디에 있는가라고 할 수 있다.

즉, 어플리케이션의 Flow(흐름)를 누가 쥐고 있느냐다.

프레임워크는 전체적인 흐름을 스스로가 쥐고 있으며 큰 틀을 사용자에게 제시한다. 사용자는 그 안에서 필요한 코드를 짜 넣는 방식으로 개발을 진행한다.

반면에 라이브러리는 사용자가 전체적인 흐름을 만들며 라이브러리를 가져다 쓰는 것이라고 할 수 있습니다.

다시 말해, 라이브러리는 구조를 제시하고 사용 흐름을 만든다기 보다는 사용자에 의해 호출 당하고 특정 위치에 사용되는, 호출하는 측에 전적으로 주도성이 있는 것이라 할 수 있다.

 

요약 

라이브러리 : 사용자가 만든 틀의 특정 위치에 호출당함.

프레임워크 : 구조적인 큰 틀을 제시하고 전체적인 실행흐름을 제어하며 필요한 위치에 사용자의 코드를 호출함.