[CS] 프레임워크와 라이브러리

dev_gu·2023년 1월 8일
0

Computer Science

목록 보기
1/2
post-thumbnail

💻 프레임워크와 라이브러리

더욱 클린하고 윤택한 코딩을 하기위해 둘다 많이 사용한다. 그러나 둘의 차이는 분명 있다. 이것을 알아보자.

📌 프레임워크

'FRAME 프레임(틀, 규칙or법칙)'+'WORK 워크(일, 소프트웨어의 목적)'

💡 개념

프레임워크는 어떠한 목적을 달성하기 위해 복잡하게 얽혀있는 문제를 해결하기 위한 구조며, 소프트웨어 개발에 있어 하나의 뼈대 역할을 한다.

  • 소프트웨어 형식을 제공
  • 사용규칙이 정해져있다.

⚒️ 종류

  1. 스트럿츠 프레임워크 (STRUTS Framework)
    자바기반의 JSP만을 위한 프레임워크로, 다양한 운영체제에서 활용할 수 있으며, 오픈소스이기 때문에 개발에 필요한 부분을 수정하여 사용할 수 있다.
  2. 스프링 프레임워크 (Spring Framework)
    엔터프라이즈급 애플리케이션 개발에 필요로하는 경량형 프레임워크로 JAVA개발에 있어서 대표적인 프레임워크로 자리잡고있다. JDBC를 비롯하여 iBatis, 하이버네이트, JPA등 DB처리를 위해 널리 사용되는 라이브러리와 연동을 지원한다.
  3. 앵귤러 JS( AngularJS)
    자바스크립트 기반의 프레임워크로, 기본적으로 MVC (Model-View-Controller) 모델 지원과 같은 다른 웹 어플리케이션 프레임워크에서도 지원하는 기능을 제공한다. 복잡해지고 대형화 되고있는 (클라이언트 사이드 스크립트)를 (MVC 패턴)으로 규격화 함으로 해서 (프로젝트 유지보수) 비용을 최소화 할 수있다.
  4. 장고 프레임워크 (Django Framework)
    파이썬으로 작성된 오픈 소스 웹 애플리케이션 프레임워크로 쉽고 빠르게 웹사이트를 개발할 수 있도록 돕는 구성요소로 이루어져 있다. 개발기간을 상당히 단축시킬 수 있다. 장고프레임워크는 그에 수반되는 강력한 라이브러리들을 그대로 사용할 수 있다는 점이 가장 큰 장점이다.

📌 라이브러리

💡 개념

쉽게 비유 하자면 톱, 망치, 삽 같은 연장(도구)로, 기능만을 제공해주며 어떻게 사용할지는 사용자가 결정한다.

  • 부품이되는 소프트웨어의 집합
  • 작은 기능들을 함수 단위로 만들어 제공
  • 복적인 코드 작성을 없애기 위해, class나 function으로 정의하여 필요할 때 호출해서 사용
  • 쉽게 대체 가능

⚒️ 종류

종류가 무수히 많아 대표적인거 1개만 !

  • JQuery
    HTML의 클라이언트 사이드 조작을 단순화 하도록 설계된 크로스 플랫폼의 자바스크립트 라이브러리이다.

🔍 장점과 단점

  • 장점
    • 의도하지 못한 오류를 줄임
    • 개발이 편하고 일정을 획기적으로 줄임
  • 단점
    • 통제가 어려움
    • 필요이상의 컴퓨팅 자원 소모
    • 사용법을 익힐 시간이 필요

⚡ 차이점

주체를 생각하면 쉽다. 내가 코드를 컨트롤하는지 아니면 내가 코드 규칙에 따라 코딩해야하는지 생각해보자. 라이브러리는 내가 필요할 때 호출해서 쓰면되고 언제는 대체가 쉽다. 하지만 프레임워크는 이미짜여진 틀에 내가 들어가는 것이므로 프레임워크가 나를 부르며 정해진 코드규칙에 따라야한다.

❗ 즉, 라이브러리가 가져다 사용하는 개념이라면, 프레임워크는 제공된 틀만으로 들어가 주어진 규칙을 지켜가며 사용하는 것이다.

참고
프레임워크란?
노마더코드
퉁퉁코딩

0개의 댓글