andan.log
로그인
andan.log
로그인
VS시리즈 - Framework vs Library
김현교
·
2023년 12월 13일
팔로우
0
0
VS시리즈
목록 보기
4/12
공통점
소프트웨어 개발에서 중요한 구성 요소
코드를 구조화하고 재사용성을 높여주는 도구들
Framework
애플리케이션의 구조와 제어 흐름을 정의하고, 개발자는 그 안에서 필요한 코드를 작성
애플리케이션의 기본 구조를 제공하므로, 개발자는 비즈니스 로직에 집중 가능
추상화된 기능을 제공하여 특정 기능을 쉽게 확장하고 사용 가능
제어의 역전이나 디자인 패턴을 적용해, 프레임워크가 정의한 규칙과 구조에 따라 코드를 작성해야 함
적은 코드 길이, 코드 재사용, 쉬운 디버깅과 애플리케이션 모니터링, 단순화된 DB 연결
Library
함수, 클래스 또는 모듈의 모음으로, 특정 기능을 수행하는 코드를 모아둔 것
개발자가 필요한 기능을 선택적으로 호출하여 사용
개발자가 코드의 제어 흐름을 가지고 있음
비교적 단순한 기능을 가진 작은 모듈들로 구성
라이브러리는 독립적으로 사용 가능하며, 프로젝트에 필요한 부분만 선택적으로 사용 가능
예시
Framework
Java 서버 개발에 사용되는 Spring
Python 서버 개발에 사용되는 Django, Flask
안드로이드 앱 개발에 사용되는 Android
아이폰 앱 개발에 사용되는 Cocoa Touch
웹 개발에 사용되는 Angular, Vue.js 등
자바 기반의 JSP를 위한 프레임 워크 Struts
루비로 작성된 MVC패턴을 이용하는 Ruby on Rails
Library
Python pip로 설치한 패키지/모듈 (tensorflow, pandas, beautifulsoup 등등)
C++의 표준 템플릿 라이브러리 (STL)
Node.js에서 npm으로 설치한 모듈
HTML의 클라이언트 사이드 조작을 단순화하는 JQuery
웹에서 사용자 인터페이스 개발에 사용되는 React.js
차이점
프레임워크는 애플리케이션의 코드가 프레임워크에 의해 사용
라이브러리를 사용할 때 사용자는 애플리케이션 코드의 흐름을 직접 제어
제어의 흐름이 어디에 있는가 차이
비유
Framework
프레임워크는 모델하우스를 짓는것
우리가 수정할 수 있는 범위는 제한적
즉, 통제권은 사용자가 아닌 프레임워크가 쥐고 있음
Library
라이브러리는 이케아에서 산 재료로 가구를 조립하는것
기본적인 재료를 사서 입맛대로 조립하고 배치 가능
재료의 선택권이나 통제권은 사용자에게 있는 것
IoC(Inversion of Control)
제어의 역전이라는 뜻
프로그램의 제어 흐름을 직접 제어하는 것이 아니라 외부에서 관리하는 것
결론
프레임워크와 라이브러리는 둘 다 코드 작성에 도움이 되는 타인이 작성한 코드의 집합
프레임워크는 프로그램이 필요한것을 개발자에게 알려줌으로써 제어권을 역전하고,
라이브러리는 개발자가 필요할 때 마다 설치, 혹은 호출함으로써 개발자가 능동적으로 사용 가능
김현교
내가 공부하면서 궁금했던 걸 올리는 개발 블로그
팔로우
이전 포스트
VS시리즈 - Stateful vs Stateless
다음 포스트
VS시리즈 - Stack vs Queue
0개의 댓글
댓글 작성