본문 바로가기

카테고리 없음

라이브러리(Library)와 프레임워크(Framework)

반응형

 개발을 수행함에 있어 서비스 개발의 품질만큼이나 개발 속도의 중요성이 강조되고 있다. 가지고 있는 아이디어를 IT 서비스로 구체화하고 빠르게 시장을 점유해야 비즈니스가 성공할 수 있다. 그러나 실제 개발을 위해서는 매우 단순한 앱을 만들 때에도 각 기능을 구현하고, 각 기능들이 잘 동작하도록 로직과 구조를 설계해야 한다. 실제로 이 모든 일들을 처음부터 직접 진행한다면 긴 시간이 소요되고, 경쟁력이 떨어질 것이다. 이때 오픈소스를 이용하여 누군가 미리 만들어 둔 라이브러리를 활용한다면, 새로운 기능을 전부 만드는 대신 가지고 있는 아이디어를 구현하는데 더욱 힘쓰고, 시간을 절감할 수 있다.

 

라이브러리 (library)

 라이브러리는 스프트웨어의 구성요소 중 한 가지로, API를 바탕으로 플랫폼에서 바로 실행될 수 있도록 모듈화 되어 있는 프로그램 모음으로, 부품이 되는 소프트웨어의 집합이라 표현할 수 있다. 라이브러리는 개별적으로 동작하는 프로그램이 아닌, 특정한 부분만 수행하도록 제작된 형태로, 사용자가 직접 일반적인 조작으로 실행하는 대신, 해당 라이브러리의 기능을 호출하는 프로그램을 실행하거나, 해당 라이브러리의 기능을 실행하는 API를 사용하는 프로그램을 개발하여 실행할 수 있다.

 

프레임워크 (framework)

 프레임워크는 소프트웨어 어플리케이션이나 솔루션의 개발을 수월하게 하기 위해 소프트웨어의 구체적 기능들에 해당하는 부분의 설계와 구현을 재사용 가능하도록 제공하는 소프트웨어 환경으로, 간단하게 정리하자면 소프트웨어의 형식을 제공하는 것이라고 표현할 수 있다. 프레임워크를 기반으로 개발을 수행하면, 기반 구조를 재사용하고 비즈니스 로직과 관련된 부분만 추가적으로 구현하면 되기 때문에 빠른 애플리케이션 구축이 가능하며, 동일한 프레임워크를 사용하는 애플리케이션들은 비슷한 뼈대 구조를 갖아 관리 및 테스트가 용이하다는 장점을 가지고 있다.

 

차이점

  라이브러리와 프레임워크의 차이점을 알기 위해서는 제어 흐름에 대한 주도권이 어디에 있는지를 알고 있는 것이 중요하다. 라이브러리를 사용하게 되면 개발자가 전체 흐름을 만들기 위해 조합하므로 호출 측이 전체 프로그램 제어 구조를 지정할 수 없지만, 프레임워크를 사용할 때에는 개발자가 프레임워크에서 제공하는 구조 속에서 필요한 소스코드만 일부 작성하게 되므로, 제어의 반전(inversion of control)이 일어나 제어 흐름을 프레임워크가 가지고 있다고 말할 수 있다. 즉, 라이브러리는 개발자가 호출해서 사용하고, 프레임워크는 개발자의 코드가 호출된다고 이해할 수 있다.

 

필요성

 라이브러리와 프레임워크가 필요한 이유 중 여섯가지를 살펴보게 되면, 먼저 자질구레한 기능 구현에 집중하기보다 실제 비즈니스 로직 구현에 집중할 수 있다는 장점을 가지고, 비슷한 뼈대 구조를 가지고 있어서 유지 보수가 편리하다. 또한 수많은 개발자들이 사용하면서 검증된 내용이기 때문에, 버그가 적고, 성능이 좋은 소스코드를 사용할 수 있게 된다. 적은 인력과 시간을 가지고 효율적으로 좋은 결과물을 만들 수 있고, 소스코드의 규격화를 통해 개발 생산성이 높아진다.

 

반응형