🎛 프레임 워크란?
프레임워크는 애플리케이션의 구조를 정의하고, 개발자가 그 구조 내에서 코드를 작성할 수 있도록 도와주는 일종의 뼈대, 골격이다. 프레임워크는 전체적인 흐름을 제어하고 개발자는 그 안에 필요한 부분을 채워 넣는 방식으로 개발을 진행한다.
♬ 특징
- 제어 역전 (IoC)
- 프레임 워크는 제어 역전 패턴을 적용해서 개발자가 작성한 코드를 호출하는 대신 프레임워크가 개발자가 작성한 코드를 호출한다. 이를 통해 개발자는 애플리케이션의 핵심 비즈니스 로직에 집중할 수 있다.
- 의존성 주입
- 프레임워크는 의존성 주입 패턴을 적용하여 애플리케이션의 객체 간 의존성을 관리해준다. 이를 통해 객체 간 결합도를 낮춘다
- 컴포넌트 기반 아키텍쳐
- 프레임워크는 컴포넌트 기반 아키텍처를 적용해서 애플리케이션의 코드를 재사용 할 수 있도록 한다.
♬ 예시
- spring : Java 를 개발하기 위한 대표적인 프레임워크
- MyBatis : 영속성을 다루는 프레임워크
- JUnit5 : 특정 기능이나 업무 수행에 도움을 주는 프레임워크
🎛 라이브러리란?
라이브러리는 특정 기능을 제공하는 코드의 집합으로, 개발자가 필요에 의해 호출하여 사용하는 것이다. 라이브러리는 특정 작업을 수행하는 도구의 역할을 하고 애플리케이션의 흐름을 제어하지 않는다.
♬ 특징
- 흐름의 주체
- 개발자가 필요할 때 라이브러리를 호출함으로써 제어권이 개발자에게 있다.
- 특정 기능 제공
- 특정 기능(데이터 파싱, HTTP 요청, 연산 등)을 수행하는 함수를 제공한다.
- 유연성
- 개발자가 필요한 라이브러리를 선택적으로 사용해서 애플리케이션을 구성할 수 있다.
♬ 예시
- JQuery : 자바스크립트의 라이브러리로 DOM을 조작하고 이벤트 처리, AJAX등을 쉽게 할 수 있도록 한다.
🎛 프레임 워크와 라이브러리의 차이
공통점
코드의 모음이자 집합체이다. 프레임워크를 설명할 때 소프트웨어나 프로젝트의 틀이라고 했는데 이 틀도 결국 코드로 작성되고 만들어졌다. 그렇다면 왜 다른 개념으로 불리는 걸까?
차이점
둘 다 코드를 재사용하여 개발의 효율성을 높인 도구이다. 하지만 그 사용 방식과 목적에 큰 차이가 있다.
- 제어권
- 프레임워크 : 제어의 역전(IoC)개념을 사용하여 프레임워크가 애플리케이션의 흐름을 제어한다
- 라이브러리 : 제어권이 개발자에게 있으며, 필요할 때 개발자가 호출한다.
- 구조
- 프레임워크 : 애플리케이션의 기본 구조와 아키텍처를 제공하여, 개발자가 그 안에서 코드를 작성한다.
- 라이브러리 : 특정 기능을 수행하는 코드 집합으로 애플리케이션의 구조에 영향을 미치지 않는다.
프레임워크는 집을 짓기 위한 전체 설계도와 같은 역할을 한다. 설계도를 따르면서 필요한부분을 채워 넣는 식으로 집을 지어 나간다. 반면에 라이브러리는 특정 도구와 같은 역할을 한다. 필요에 의해 꺼내서 사용하는 것이다.
'CS' 카테고리의 다른 글
🎯 Redis (1) | 2024.04.26 |
---|---|
💻 멀티 프로세스와 멀티 스레드 (0) | 2023.10.16 |
DNS(Domain Name System) (0) | 2023.05.03 |
HTTP(3). 성능향상 (0) | 2023.05.01 |
Cookie와 Session (4) | 2023.05.01 |