라이브러리와 프레임워크

시작

  • 프로그래밍에 있어서 라이브러리와 프레임워크를 뺄수가없습니다.
  • 그래서 오늘은 라이브러리가 무엇이고 프레임워크가 무엇인가를 정리하고 비교해보고자합니다.

라이브러리란?

  • 라이브러리는 특정 기능에 대한 API(도구 / 함수)를 모은 집합을 라이브러리라고 합니다.
  • 쉽게 예시를 하면 톱,망치 같은 연장 입니다.
  • 사람이 들고 행동하여 무언가를 할수있는 도구라고 보면됩니다.
    대표적인 Js라이브러리: Jqeury, React, Moment.js

프레임워크란?

  • 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것입니다.
  • 쉽게 예시를 하면 차, 비행기, 배 같은것입니다
  • 사람이 타서 엔진을 켜고 운전을 하거나 조종을 해야되는것입니다.
    대표적인 FrameWork: Spring FrameWork, AngularJS

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

  • 토비의 스프링 에서는 이 2가지의 차이를 IOC(Inversion of Control)의 유무라 설명합니다.
  • 하지만 이 포스트에서 IOC를 설명하지 않고 추후에 따로 스프링에서 IOC를 포스팅하겠습니다.

정리

  • 쉽게 예시를 하면
    내가 호출을 할수있으면 라이브러리
    내가 호출을 할수없고 내가 호출을 당하면 프레임워크입니다.
1
2
3
4
5
6
7
8
9
추가 설명을 붙이면 제가 정의한 예시로 설명을 하자면 사람은 도구를 선택하는 입장이기 때문에,
어떤 연장을 써서 어떤것을 해도 상관이없습니다.
망치가 없을때 몽키스패너로 못을 박을수있으나 효율이없겠지만 사용은할수있습니다.
어떤 도구를 사용하든 원하는 것을 만들어낼 수 만 있으면 됩니다.

반면 프레임워크는 정해진곳으로 다녀야합니다.
차로 하늘을 날수없습니다. 비행기로 차도를 달릴수없는것도 마찬가지입니다.
하지만, 그 목적에 맞게 만들어져 있기 때문에, 톱이나 망치를 들고 먼저 탈것을 만들어야할 필요가 없습니다.
그저 정해진 규칙에 맞춰서 엔진, 기어, 핸들만 잘 돌리면 됩니다.

마무리

  • 프로그래밍 세계에는 수많은 라이브러리와 프레임워크가 있고 맞게 사용하는것만으로도 훌륭하다고합니다.
    그러기 위해서 계속 공부하고 또 기술을 늘려야겠다고 생각하는 포스트였습니다
0%