-
[기초개념]라이브러리와 프레임워크프로그래밍 2023. 3. 11. 22:04
💀프레임 워크
프레임워크 : 뼈대 ,골격이라는 의미로 일정한 형태와 기능을 갖추고 있어 기능 구현에 집중하여 개발 할 수 있도록 도와준다.
예를 들어 DB연동하기위해 무엇을 써야하는지 메모리 관리, 이벤트 루프 등의 공통된 부분의 작업은 프레임워크가 관리하고,
사용자는 정해준 방식대로 움직이면 된다.
프레임워크의 예
- Java서버 개발을 위한 Spring
- Python의 Django,Flask
- 안드로이드 앱 개발을 위한 Android
- 웹 개발의 Angular,Vue.js,Next.js등
⚒️라이브러리
프레임워크 처럼 큰 골격이나 규칙이 정해져있지 않고, 조금더 좁은 문제를 해결하기 위한 도구.
필요에 따라 라이브러리를 사용 할 수 있으므로 자율성이 보장 된다.
라이브러리의 예
- 인터페이스 개발을 위한 React
- node.js에서 npm으로 설치한 모듈들
- JQuery 등
🔎프레임워크와 라이브러리의 차이점
"제어 흐름"의 권한이 어디에 있는가
도구를 가지고 무엇을 만들어야 한다고 생각해 보자. 사람은 도구를 선택할 수 있는 입장에 있기 때문에,
어떤 도구를 사용하든 원하는 것만 만들어 내면 된다.
땅을 파야한다면 삽을 이용할 수도 있고,삽이 없다면 곡괭이를 이용할 수 있다. 모든 도구의 선택은 작업자의 마음에 달려있다.
이렇게 라이브러리는 사용자가 전체적인 흐름을 만들며 라이브러리를 가져다 쓰게 된다.
즉, 개발자에게 전적으로 제어 흐름이 있으며 필요할 때마다 자유롭게 라이브러리를 호출하여 사용할 수 있다.
프레임워크를 탈것이라고 생각해 보자. 탈 것은 각각의 규칙과 조작법을 가지고 있다.
예를 들어 차를 타고 바다를 건넌다거나, 비행기를 타고 도로를 달릴 수 없다. 정해진 길로만 다녀야 한다.
자동차를 타고 달릴 땐 신호를 지켜야 하고 조작을 하며 운행을 해야 한다. 이렇게 탈것에는 규칙이 있고, 이 규칙을 지켜야 한다.
규칙을 잘 지키면 원하는 목적지까지 편하게 도착할 수 있다.
근데 우리가 자동차 페달을 밟으면 앞으로 움직인다는 것을 알지만, 자동차 내부에서는 어떤 동작을 하는지까지는 알지 못한다.
이렇게 프레임워크는 제어의 역전(IoC : Inversion of Control) 개념이 적용되어 있다. 프레임워크에게 제어의 흐름을 넘겨
개발자가 작성하는 코드에서 신경 써야 할 부분을 줄인다는 뜻이다.
프레임워크는 전체적인 흐름을 쥐고 있으며 애플리케이션의 코드(사용자가 작성)는 프레임워크에 의해 사용된다.
프레임워크가 짜놓은 틀 안에서 수동적으로 동작하기 때문에 제어의 흐름은 프레임워크에게 있다.