정해진 매뉴얼, 룰을 제공하여 원하는 기능 구현에 집중하여 개발할 수 있도록 일정한 형태와 필요한 기능을 갖추고 있는 골격, 뼈대를 의미합니다.
개발할 때 필요한 필수적인 코드, 알고리즘, DB 연동과 같은 기능들을 위해 어느 정도 뼈대(구조)를 제공하며 이러한 뼈대 위에서 사용자는 코드를 작성하여 개발합니다. 앱/서버 등의 구동, 메모리 관리, 이벤트 루프 등의 공통된 부분은 프레임워크가 관리하며, 사용자는 프레임워크가 정해준 방식대로 클래서, 메서드들을 구현하면 되기 때문에 완성도는 높으나 그만큼 자유도는 떨어지는 편입니다.
ex) Flask, Bootstrap, Angular, Vue.js
라이브러리는 어떤 특정한 기능을 구현하기 위해 미리 만들어진 함수들의 집합으로, 필요할 때만 자유롭게 사용할 수 있는 일종의 도구입니다.
라이브러리를 사용하더라도 프레임워크가 정한 방식에 따라야 하지만 어떻게 사용할 지는 개발자가 정할 수 있기 때문에 자유도는 높지만, 그만큼 완성도는 보장되지 않습니다.
ex ) React, npm modules, jQuery
캐시의 장점은 데이터를 미리 복사해 놓아 계산이나 접근시간 없이 빠른 속도로 데이터에 접근할 수 있습니다.
단점으로는 비용이 비싸고, 메모리공간에 용량 제한이 있다는 점입니다.
프론트엔드에서는 캐시를 웹 서비스 최적화에 사용하는데, 동일한 이미지, CSS, JS같은 정적 컨텐츠에 캐시를 사용합니다.