프레임워크
뼈대나 기반을 뜻한다.
제어의 역전개념이 적용된 기술이다. 따라서 개발자가 지켜야할 가이드가 있으며 그 범위가 정해져있다.
개발자를 위한 도구, 플러그인들이 지원된다.
개발 시 필수적인 코드, 알고리즘 등을 일부 제공하고 나머지 부분을 개발자가 작성하여 완성시킬 수 있다.
앱, 서버등의 구동, 메모리관리, 이벤트 루프 등 공통된 부분은 프레임워크에서 관리하고 사용자는 제공된 가이드대로 클래스, 메서드를 구현하면 된다.
- Python 서버 개발에 사용되는 Django, Flask
- 안드로이드 앱 개발에 사용되는 Android
- 웹 개발에 사용되는 Angular, Vue.js
- JAVA 기반의 JSP를 위한 Struts
- JAVA 서버 개발에 사용되는 Spring Framework
장점 : 개발시간 단축, 정형화되어 있어 일정수준 이상의 품질을 기대할 수 있음, 유지보수 용이
단점 : 개발시 의존도가 높아짐
라이브러리
미리 작성된 코드 그룹으로서 개발을 수월하게 진행하는데 도움을 준다.
개발 시 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임.
구성 데이터, 문서, 도움말 자료, 메시지 틀, 미리 작성된 코드, 서브루틴, 클래스, 값, 자료형 등이 포함될 수 있다.
엄격한 규칙이 적용되지 않아 문법에만 맞으면 비교적 자유롭게 사용가능하다.
공통점
개발의 완성을 위해 공통적으로 사용되는 부분을 미리 정형화하여 필요할 때 불러와 사용하는 것이 목적이다.
차이점
가장 큰 차이는 제어 흐름에 대한 책임의 차이 이다.
라이브러리는 개발자가, 프레임워크는 프레임워크에서 관리한다.
(이렇게 제어의 흐름이 개발자가 아닐 경우 제어의 역전이 적용되었다고 한다.)
'백엔드 > 개념or이론' 카테고리의 다른 글
Spring Bean (스프링 빈) (0) | 2024.06.18 |
---|---|
Spring 과 핵심 프로그래밍 모델 (1) | 2024.06.12 |
서버사이드 & 클라이언트 사이드 (0) | 2024.06.11 |
MVC 패턴에 대해서 (0) | 2024.06.11 |