💻 프레임워크와 라이브러리
더욱 클린하고 윤택한 코딩을 하기위해 둘다 많이 사용한다. 그러나 둘의 차이는 분명 있다. 이것을 알아보자.
📌 프레임워크
'FRAME 프레임(틀, 규칙or법칙)'+'WORK 워크(일, 소프트웨어의 목적)'
💡 개념
프레임워크는 어떠한 목적을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조며, 소프트웨어 개발에 있어 하나의 뼈대 역할을 한다.
- 소프트웨어 형식을 제공
- 사용규칙이 정해져있다.
⚒️ 종류
- 스트럿츠 프레임워크 (STRUTS Framework)
자바기반의 JSP만을 위한 프레임워크로, 다양한 운영체제에서 활용할 수 있으며, 오픈소스이기 때문에 개발에 필요한 부분을 수정하여 사용할 수 있다.
- 스프링 프레임워크 (Spring Framework)
엔터프라이즈급 애플리케이션 개발에 필요로하는 경량형 프레임워크로 JAVA개발에 있어서 대표적인 프레임워크로 자리잡고있다. JDBC를 비롯하여 iBatis, 하이버네이트, JPA등 DB처리를 위해 널리 사용되는 라이브러리와 연동을 지원한다.
- 앵귤러 JS( AngularJS)
자바스크립트 기반의 프레임워크로, 기본적으로 MVC (Model-View-Controller) 모델 지원과 같은 다른 웹 어플리케이션 프레임워크에서도 지원하는 기능을 제공한다. 복잡해지고 대형화 되고있는 (클라이언트 사이드 스크립트)를 (MVC 패턴)으로 규격화 함으로 해서 (프로젝트 유지보수) 비용을 최소화 할 수있다.
- 장고 프레임워크 (Django Framework)
파이썬으로 작성된 오픈 소스 웹 애플리케이션 프레임워크로 쉽고 빠르게 웹사이트를 개발할 수 있도록 돕는 구성요소로 이루어져 있다. 개발기간을 상당히 단축시킬 수 있다. 장고프레임워크는 그에 수반되는 강력한 라이브러리들을 그대로 사용할 수 있다는 점이 가장 큰 장점이다.
📌 라이브러리
💡 개념
쉽게 비유 하자면 톱, 망치, 삽 같은 연장(도구)로, 기능만을 제공해주며 어떻게 사용할지는 사용자가 결정한다.
- 부품이되는 소프트웨어의 집합
- 작은 기능들을 함수 단위로 만들어 제공
- 복적인 코드 작성을 없애기 위해, class나 function으로 정의하여 필요할 때 호출해서 사용
- 쉽게 대체 가능
⚒️ 종류
종류가 무수히 많아 대표적인거 1개만 !
- JQuery
HTML의 클라이언트 사이드 조작을 단순화 하도록 설계된 크로스 플랫폼의 자바스크립트 라이브러리이다.
🔍 장점과 단점
- 장점
- 의도하지 못한 오류를 줄임
- 개발이 편하고 일정을 획기적으로 줄임
- 단점
- 통제가 어려움
- 필요이상의 컴퓨팅 자원 소모
- 사용법을 익힐 시간이 필요
⚡ 차이점
주체를 생각하면 쉽다. 내가 코드를 컨트롤하는지 아니면 내가 코드 규칙에 따라 코딩해야하는지 생각해보자. 라이브러리는 내가 필요할 때 호출해서 쓰면되고 언제는 대체가 쉽다. 하지만 프레임워크는 이미짜여진 틀에 내가 들어가는 것이므로 프레임워크가 나를 부르며 정해진 코드규칙에 따라야한다.
❗ 즉, 라이브러리가 가져다 사용하는 개념이라면, 프레임워크는 제공된 틀만으로 들어가 주어진 규칙을 지켜가며 사용하는 것이다.
참고
프레임워크란?
노마더코드
퉁퉁코딩