프레임워크 vs 라이브러리

창진·2023년 7월 18일
0

cs 지식

목록 보기
2/50

라이브러리

라이브러리는 특정 기능들을 모듈화하여 공통으로 사용할 수 있게 제공하는 것으로, 폴더와 파일명에 대한 규칙이 없고 프레임워크에 비해 더 자유롭습니다.
ex) axios

라이브러리 장점

  • 코드를 재사용하기 쉽다.

  • 코드의 내용을 숨겨 기술 유출을 방지할 수 있다.

  • 이미 구현되어 있는 기능들을 가져다 쓸 수 있어 개발 시간을 단축할 수 있다.

  • 컴파일 시간을 단축할 수 있다. (라이브러리는 미리 컴파일되어 있어 링킹만 하면 바로 사용 가능하다)

라이브러리 단점

  • 정적 라이브러리는 애플리케이션의 크기가 라이브러리와 합쳐진 용량이 되므로, 직접 구현하는 것보다 성능 면에서 더 낮은 결과를 얻을 수 있습니다. 만약 라이브러리의 코드가 중복되거나 유사한 경우, 메모리 공간을 이중으로 차지하여 효율성이 떨어집니다.

  • 동적 라이브러리는 외부에서 파일을 불러오기 때문에 컴파일 시점에 문제가 없지만, 실행 시 라이브러리의 버전이 일치하지 않거나 누락된 경우 문제가 발생할 수 있습니다.

프레임워크

프레임워크는 공통적으로 사용될 수 있는 특정 기능들을 모듈화하여 제공하는 것을 말합니다. 폴더명과 파일명에 대한 엄격한 규칙이 있으며, 라이브러리에 비해 구조가 더 체계적입니다.

프레임워크의 장점

  • 체계적인 코드관리로 유지보수가 용이하다.

  • 기본설계 및 기능 라이브러리를 제공하여 개발 생산성이 높다.

  • 코드에 대한 재사용성이 높다.

  • 추상화된 코드 제공을 통해 확장성이 좋다.

프레임워크의 단점

  • 학습난이도가 높다.

  • 기본 설계된 구조에 의해 자유로운 개발에 한계가 있다.

  • 사용하지 않는 기능에 대한 라이브러리가 포함될 수 있다.

  • 제공되는 기능만큼 프로젝트의 용량이 증가한다.

ex) spring , vue.js, Django

라이브러리와 프레임워크의 공통점과 차이점

공통점은 둘 다 애플리케이션 개발에 있어서 생산성을 향상시키고 개발 속도를 빠르게 해준다는 점입니다.

차이점은 제어 흐름의 주도권이 누구에게 있는지에 있습니다. 프레임워크의 경우 정해진 구조 안에서 개발자가 코드를 작성해야 하지만, 라이브러리는 개발자가 직접 호출하여 원하는 위치에서 사용할 수 있습니다.

profile
안녕하세요

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

뛰어난 글이네요, 감사합니다.

답글 달기