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