Library와 Frame Work의 차이
라이브러리, 프레임 워크.. 참 많이, 자주 쓰는말이다.
하지만 스스로에게 두개의 차이를 설명해보라고 하니까, 명확히 설명하지 못하고 있는 나 자신을 발견했다.
이를 반성하며 공부했던 내용을 정리해보려고 한다.
라이브러리에서 가져다 쓴다.
Library (도서관)
C++의 STL
, Python의 Pandas
ETC….
- 우리는 정보를 필요로 할때, 도서관에서 책을 가져다 읽는것을 상상해볼 수 있다.
- 이것을 무언가를 만들때, 창고 (라이브러리) 에서 도구를 빼는것으로 확장 시켜 생각 해볼 수 있다.
왜 탄생했을까?
- 반복되어 사용되는 도구를
- 매번 도구를 새로 만들어서 사용할 필요없이, 이미 만들어진 도구를 사용하면 된다.
개발을 용이하게 이미 만들어진 기능을 제공하는 도구 라고 생각하면 된다.
프레임 워크에 들어가서 작업한다.
Frame Work (Frame + Work)
Spring
, Diango
, React
ETC….
- 이해하기 쉽게 단어의 뜻부터 생각해보자
Frame
(틀) +Work
(일하다)- 틀에 맞춰서 일을 한다 고 생각하면 이해하기가 용이해진다.
- 무언가를 만들때 어떤 규약, 제약 에 맞춰서 만드는 약속 이라고 생각하자.
왜 탄생했을까?
다양한 개발자들이 등장하기 시작했다.
- 이는 전체 시스템의 통합, 일관성의 부족을 불러오기 시작했다.
- 소프트웨어의 생산성, 안정성이 하락하기 시작했다.
- 이를 해결하기 위해서 개발자들이 약속하고, 지켜야할 가이드 라인의 필요성이 대두대기 시작했다.
- 거대하고, 복잡한 프로젝트를 가이드라인 (틀)에 맞춰서 작업한다.
- 중복되고, 뒷단의 작업은 프레임워크에서 작업하게 한다.
장점
- 개발시간이 단축된다.
- 코드의 중복성이 떨어진다.
- 유지보수가 용이해진다.
단점
- 너무 프레임워크에만 의존하면, 개발자 스스로의 역량이 저하될 수 있다.
프레임 워크 vs 라이브러리
라이브러리에서 가져다 쓴다.
프레임 워크에 들어가서 작업한다.
이 두가지를 보면 차이를 알 수 있다. 개발 흐름의 주체가 무엇인지를 알아보면된다.
라이브러리
는 개발자가 필요로 할때 사용한다.프레임워크
는 프레임워크에 맞춰 개발자가 코드를 작성한다.
자동차를 만든다고 생각해보자
프레임워크
자동차의 철제 프레임 (틀)라이브러리
자동차의 기능들 (헤드라이트, 엔진, 바퀴 등등등)
프레임워크 없이 자동차를 만들수 있다.
- 그냥 헤드라이트, 엔진, 바퀴를 이곳저곳 자유롭게 가져다 붙이면 된다.
- 어떻게 잘 가져다 붙이면, 굴러가는 자동차는 만들어낼 순 있을것이다.
- 하지만, 엔진이 상단에 있다던가? 헤드라이트가, 차 밑에 달려있다던가?
- 상당히 비효율적인 구조를 가진 자동차가 제작될 가능성이 높다.
- 굴러가는 기능을 수행 시킬때까지, 상당한 시간과 자원을 소모해야 할것이다.
- 물론 고장났을때 수리하기도 힘들것이다.
결론
둘다 개발을 용이하게 하기 위해서 만들어졌다는 공통의 목적을 가지고 있다.
프레임 워크
는 자유도를 제한하는, 가이드 라인 (Frame) 을 만들고- 가이드 라인 안에서 작업하는것이다.
라이브러리
는 필요할때 가져다 쓰는 도구 인것이다.- 개발자가 원할때 가져다가 쓸 수 있다.
Reference
위키피디아
https://galid1.tistory.com/191
https://private.tistory.com/8