Framework & Library

zeew00·2024년 7월 30일
post-thumbnail

- Framework -

개념

  1. 프레임워크라는 단어는 일반적으로 뼈대나 하부 구조를 의미한다.

  2. 소프트웨어 개발의 뼈대와 같은 역할을 담당하며 개발자에게 기본적인 구조와 규칙을 제공한다.
    이로 인해 개발자는 보다 빠르고 효율적으로 소프트웨어를
    개발할 수 있으며 코드의 재사용성과 유지보수성을 향상시킬 수 있다.

특징

  1. 개발자에게 기초적인 가이드를 제공하여 개발 과정에서의 방향성과
    구조를 제시하고 개발의 일관성을 유지하며 복잡성을 줄여준다.

  2. DB 연결, 사용자 인증, 라우팅 등의 개발자들이 반복적으로
    자주 사용하는 기능들(미리 구현한 클래스나 컴포넌트)을
    재사용 가능한 형태로 제공하여 개발 속도를 빠르게 한다.

  3. 웹 개발, 모바일 어플리케이션, 데이터 분석 프레임워크 등
    각기 다른 목적과 기능을 가지고 있어 이 범위에 따라 선택할
    프레임워크가 결정되며 그에 맞는 개발 작업을 수행할 수 있다.

  4. 빌드, 패키지 관리, 디버깅, 테스트 도구 등의 개발자의
    편의성을 높이기 위한 다양한 도구들을 지원하는데 이러한 도구들은
    코드 작성, 디버깅, 테스트, 빌드 배포 등의 작업을 쉽게 할 수 있도록 도와준다.

장점

  1. 자주 사용되는 기능과 구조를 미리 구현해 놓아서
    개발자는 기본적인 요소를 직접 만들 필요가 없다.

  2. 표준화된 방법으로 작성된 코드가 품질 높은 결과물을 보장할 수 있다.

  3. 프레임워크의 구조와 규칙 덕분에 변경사항을 관리하고
    오류를 최소화할 수 있으며 즉 유지보수가 용이하다.

단점

  1. 프레임워크에 너무 의존하면 개발자 스스로의 능력만을 이용하는 것이
    아니기 때문에 실질적인 개발 실력이 낮아질 수 있다.

  2. 개발에 활용하기 위해서는 해당 프레임워크를 공부해야 하기에
    개개인에 따라 다르겠지만 이러한 부분에서 많은 시간이 소요될 수 있다.

프레임워크의 예시

  1. React : 페이스북에서 개발한 UI 라이브러리이며 컴포넌트 기반 구조와
    가상 DOM을 사용하여 빠르고 효율적인 UI 개발을 지원하며 SPA와
    모바일 어플리케이션 개발에 적합하다.

  2. Django : 파이썬으로 작성된 웹 프레임워크이며
    MTV(Model-Template-View)패턴을 사용하며 강력한 내장 기능을 제공하여
    빠르고 효율적인 웹 어플리케이션 개발이 가능하다.

- Library -

개념

  1. 라이브러리라는 단어는 일반적으로 도서관을 의미하며, 다양한 정보가 정리되어 있는 집합을 떠올리면 된다.

  2. 소프트웨어에서의 라이브러리는 특정 기능을 개발하기 위해 필요한 도구나 함수들의 집합으로, 미리 작성된 코드, 변수, 함수, 클래스 등이 포함되어 있다. 개발자는 필요할 때 이들을 호출하여 사용할 수 있다.

특징

  1. 특정 함수, 클래스, 컴포넌트 등을 모아둔 집합으로, 누구나 만들 수 있다.

  2. 특정 동작에 대한 로직을 이미 구현해 두었기 때문에, 이를 활용하는 것이 간편하다. 직접 구현할 필요 없이 미리 만들어진 기능을 호출하여 사용할 수 있다.

장점

  1. 코드 재사용성: 이미 작성된 코드를 재사용할 수 있어 개발 시간이 단축된다. 중복된 작업을 피하고, 기능을 손쉽게 추가할 수 있다.

  2. 기능 간소화: 특정 기능이나 작업을 간단하게 처리할 수 있어, 복잡한 로직을 직접 작성할 필요가 없다.

  3. 유지보수 용이: 잘 정의된 라이브러리를 사용하면 코드의 일관성이 유지되며, 버그 수정과 기능 업데이트가 상대적으로 용이하다.

단점

  1. 의존성 문제: 외부 라이브러리에 의존하게 되면, 해당 라이브러리의 업데이트나 변경 사항에 영향을 받을 수 있다. 라이브러리가 더 이상 유지보수되지 않거나, 호환성 문제로 인해 문제가 발생할 수 있다.

  2. 성능 문제: 라이브러리가 제공하는 기능이 과도하게 복잡하거나 필요 이상의 기능을 포함하고 있을 경우, 성능에 영향을 미칠 수 있다.

라이브러리의 예시

  1. C++의 표준 템플릿 라이브러리 (STL): 다양한 데이터 구조와 알고리즘을 제공하는 라이브러리로, C++에서 자주 사용되는 벡터, 리스트, 맵 등의 컨테이너와 정렬, 검색, 반복 등의 알고리즘을 포함한다.

  2. jQuery: JavaScript 라이브러리로, HTML 문서의 조작, 이벤트 처리, 애니메이션 및 Ajax 기능을 간단하게 사용할 수 있게 해준다. 클라이언트 사이드에서의 DOM 조작을 쉽게 할 수 있도록 도와준다.

사진 인용 및 두 방식에 대한 참고 블로그
profile
컴공 편입 폴붕이의 일상

0개의 댓글