라이브러리란?

공통적으로 쓰는 기능을 모듈화한 뭉치입니다.

개발자가 모든 프로그램을 하나하나 하드코딩 하지는 않습니다. 근데 상황마다 달라요. 해야 되는 경우도 있습니다. 무튼 대부분의 프로젝트에서 라이브러리를 쓰지 않는 경우는 거의 없습니다.

로그인.png

예로들면 제가 소개팅앱을 만들려고 합니다. 로그인 기능이 필요해서 만들었습니다. 그렇다면 쇼핑몰앱을 만들 때 제가 소개팅앱을 만들 때 개발한 로그인 기능을 쓸 수 있는 것입니다. 즉, 로그인 기능이 라이브러리가 되는 것입니다.

현실속에서 비유하겠습니다. 저희가 빨래를 할 때 미리 만들어진 세탁기에 빨래합니다.

어느 누가 빨래를 하려고 세탁기를 만들고 있습니까?

프로그래밍도 마찬가지입니다. 특정 기능을 만들 때 대부분은 기존에 만들어 놓은 라이브러리가 있습니다. 그것을 응용 또는 커스텀을 합니다. 기능을 만들 때마다 세탁기를 만들지는 않는다는 겁니다.

<aside> 💡 질문 그러면 개발자들은 라이브러리를 가져다 써서 애플리케이션을 쉽게 만들 수 있는거 아닌가요?

→ 이론적으로는 그런데 현실 속에서는 시행착오가 많습니다. 프로젝트별로 세팅한 상황, 기획, 디자인에 따라 다시 만들어야 하는 경우가 대부분입니다. 혹은 대부분 커스텀 합니다. 그리고 라이브러리 썼더니 호환이 안되거나 레거시인 경우도 많구요. 다 적용해놨더니 특정 기능이 안되서 갈아앞는 경우도 많구요.

더 나아가서 어떤 라이브러리를 채택해야 하는지 리서치하는 시간도 제법 걸리구요. 디버깅도 재수없으면 하루 웬종일 하고 있을 수도 있습니다. 그냥 누가 만든거 갖다 쓴다라고 해석하시면 안됩니다.

</aside>

프레임워크란?

framework.png

프로그램을 개발하기 위한 정형화된 규칙을 제공하는 프로그램 입니다. 라이브러리의 상위개념입니다.