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

zitto·2023년 4월 1일
0

TIL

목록 보기
15/77
post-thumbnail

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

What do libraries and frameworks have in common

  • 재사용이 가능한 코드 모음집
  • 애플리케이션을 개발 시 쉽고 빠른 생산성을 제공해 개발 속도 향상(편리성 up!!!)

📙 라이브러리(Library)

도서관에서 필요한 책(정보)를 꺼낼 수 있는 공간!
프로그래밍에서는, 필요한 기능들이 모여있는 코드들의 집합으로 누가 만들어 놓은 도구를 가져다가 사용!
반복적인 코드작성을 줄이기 위해 클래스,함수,변수들을 만들어 필요할때마다 호출해 사용한다.
즉, 개발주도권이 개발자에게 있다.

예시)

[장점 PROS]

  1. 개발 시간 / 컴파일 시간 단축 / 버그최소화
  2. 개발시간과 돈 절약
  3. 코드의 은닉성

[단점 CONS]

  1. 정적 라이브러리의 경우,
    application크기가 라이브러리를 합친 용량이 되기 때문에 직접 구현 시보다 성능이 떨어지는 경우가 있다.
  2. 비슷한 코드 사용이나 중복사용한 경우 메모리공간을 중복으로 차지해 효율성 떨어짐
  3. 동적 라이브러리의 경우,
    외부에서 파일을 불러오므로 컴파일에는 문제없지만,
    실행 시 라이브러리의 버전이 맞지 않거나 없다면 문제가 발생한다.

🪟 프레임워크(Framework)

클래스와 라이브러리가 합쳐진 구조로,
원하는 기능 구현에만 집중해 빠르게 개발할 수 있도록 뼈대를 제공한다.
( 프로그래밍 시 필수코드,알고리즘 등 어느정도의 가이드를 제공! )

but 작업의 구조가 정해져 있기 때문에 프레임워크에서 정해놓은 대로 따라야함

제어의 역전 (Inversion Of Control, IoC)

제어역전이란,
개발자가 가지고 있어야 할 객체의 제어권을 프레임워크가 대신 해준다는 의미!


예시)

[장점 PROS]

  1. 체계적인 코드 관리로 다른회사라도 같은 프레임워크면 유지보수용이
  2. 기본적인 보일러 플레이트와 라이브러리 제공으로 작업속도 높이고 단순화 가능, 개발 생산성 높음
  3. 이미 생성된 코드라 퀄리티 향상

[단점 CONS]

  1. 유연한 개발 어려움
  2. 프레임워크에서 사용하는 규칙이나 프레임워크 전용 기능들을 따로 공부해야함.
  3. 프로젝트의 용량이 증가하므로 성능 최적화 필요

💡 라이브러리와 프레임워크의 차이점

Differences Between Library and Framework

핵심은 '흐름을 누가 가지고 있냐!'

  • 프레임워크가, 여러기능을 가진 클래스와 라이브러리가 어떠한 결과물을 구현하고자 합쳐진 형태로 라이브러리 보다 상위의 그룹이라고 볼 수 있다.
  • 리액트는 라이브러리인가 프레임워크인가?
    내가 필요할때 부르지만, 컴포넌트를 부르기 때문에 라이브러리도,프레임워크도 될 수 있음.
    vue도 마찬가지

✔️ 정리

👩‍🍳 라이브러리는 요리도구와 재료를 제공해주고 마음대로 요리하는 것 → 다양한 결과!
🍱 프레임워크는 밀키트 같은 것으로 정해진 요리와 방법이 정해져있음 → 완성도 보장!



✔️ MEMO

라이브러리는 docs를 보고 적용방법을 익혀야 한다.
습득력을 키우기!
예외상황) 천만이 넘는 라이브러리들은 왠만해서는 바뀌지 않음. 따로 기술 공부를 해도 괜찮음!

profile
JUST DO WHATEVER

0개의 댓글