728x90
프레임워크
원하는 기능 구현에 집중하여 개발할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 골격, 뼈대를 의미
프레임워크는 애플리케이션 코드가 프레임워크에 의해 사용
프레임워크에는 분명한 [제어의 역전] 개념이 적용되어 있어야 함
애플리케이션 코드는 프레임워크가 짜놓은 틀에서 수동적으로 동작됨
즉, 라이브러리를 포함함, 이미 뼈대가 갖춰짐
ex) Spring, Django, Vue.js, Next.js 등
라이브러리
소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임
즉, 특정 기능을 모아둔 코드, 함수들의 집합이며 코드 작성 시 활용 가능한 도구들을 의미
라이브러리를 사용하는 애플리케이션 코드는 애플리케이션 흐름을 직접 제어
단지 동작하는 중에 필요한 기능이 있을 때 능동적으로 라이브러리를 사용
즉, 필요한 기능을 갖다씀, 능동적으로 구현 필요
ex) React, canvas, lodash 등
React → 개발을 위해 router, redux 등 다른 라이브러리 필요 + 개발자의 자유도가 높음
정리하자면
차이의 핵심은 "애플리케이션 제어 흐름의 권한을 누가 가지느냐"
프레임워크
- 프레임워크가 내 코드를 호출해서 사용
- 개발을 위한 뼈대 제공
라이브러리
- 내 코드가 라이브러리를 호출해서 사용
- 재사용할 기능을 미리 구현해두고 호출하여 사용
728x90
'CS 지식' 카테고리의 다른 글
로그인 인증 방식 (JWT & 세션) (0) | 2024.08.17 |
---|---|
쿠키 & 세션 & 웹 스토리지 (0) | 2024.08.17 |
프로그래밍 패러다임 (함수형, 객체지향, SOLID 원칙) (0) | 2024.08.10 |
디자인 패턴 (0) | 2024.08.10 |