프레임워크와 라이브러리의 차이점
프레임워크 (Framework) ?
💡 뼈대나 기반구조를 뜻하고, 제어의 역전이 적용된 대표적인 기술
소프트웨어에서의 프레임워크는 ‘소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합’이라 할 수 있으며, 소프트웨어 어플리케이션이나 솔루션의 개발을 수월하게 하기 위해 소프트웨어의 구체적 기능에 해당하는 부분의 설계와 구현을 재사용 가능하도록 협업화된 형태로 제공하는 소프트웨어 환경을 말한다.
프레임워크는 애플리케이션 개발 시 필수적인 코드, 알고리즘, 데이터베이스 연동 등과 같은 기능을 위해 어느정도 뼈대를 제공해준다. 그리고 그러한 뼈대 위에 개발자가 코드를 작성하여 애플리케이션을 완성 해야하며 뼈태를 제공해 주기 때문에 객체지향 개발을 하면서 일관성 부족 등의 문제를 해결해준다.
프레임워크의 장점
- 체계적인 코드관리로 유지보수가 편리하다.
- 기본 설계 및 기능 라이브러리를 제공하여 개발 생산성이 높다.
- 코드에 대한 재사용성이 높다.
- 추상화된 코드 제공을 통해 확장성이 좋다.
프레임워크의 종류
- 스트럿츠 STRUTS
- 스프링 Spring
- 앵귤러 Angular
- 장고 Django
라이브러리 (Library) ?
💡 단순 활용이 가능한 도구들의 집합
라이브러리는 주로 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 집합입니다. 여기에는 미리 작성된 코드, 변수, 함수, 클래스가 포함될 수 있습니다. 쉽게 말하면, 개발자가 개발하는데 필요한 것들을 모아둔 도구들의 나열로 필요할 때 호출하여 사용하는 방식입니다.
라이브러리의 장점
- 코드를 재사용하기 쉽다.
- 코드의 내용을 숨겨 기술 유출을 방지할 수 있다.
- 이미 구현되어 있는 기능들을 사용자가 가져다 사용할 수 있어 개발 시간을 단축할 수 있다.
- 컴파일 시간을 단축할 수 있다.(미리 컴파일되어 있어 링킹만 하면 바로 사용 가능)
라이브러리와 프레임워크의 차이
프레임워크와 라이브러리의 차이는 흐름(flow)에 대한 제어 권한이다.
-
프레임워크는 전체적인 흐름을 자체적으로 가지고 있으며, 사용자는 그 안에 필요한 코드를 작성한다.
-
라이브러리는 사용자가 전체적인 흐름을 만들며 필요한 상황에 라이브러리를 가져다 적용한다.
즉, 라이브러리는 라이브러리를 가져다가 사용하고 호출하는 측에 전적으로 사용자의 주도성이 있으며, 프레임워크는 그 틀 안에 이미 제어 흐름에 대한 주도성이 내재(내포)하고 있고, 사용자가 가져다가 사용한다기 보다 그 속에 들어가서 사용한다는 느낌으로 접근할 수 있다.
참고자료
- https://m.blog.naver.com/dktmrorl/222121510562
- https://webclub.tistory.com/458
Leave a comment