프레임워크와 라이브러리 차이점에 대해 설명해주세요.
캐시의 장단점과 어떤 부분에 활용하는지 설명해주세요. 프론트엔드에서 캐시를 사용할 수 있는 2~3가지 영역을 제시해주세요
정리 : 프레임워크와 라이브러리의 차이점은 "제어 흐름"의 권한이 어디에 있는가이다.
개발 시 필요한 기능이 있을 경우 능동적으로 라이브러리를 호출하여 사용하거나 기존에 구성된 함수나 코드를 가져다 써야 합니다.
애플리케이션 코드는 프레임워크가 짜 놓은 틀에서 수동적으로 동작하기 때문에 제어의 흐름은 프레임워크가 가지고 있고 사용자가 그 안에 필요한 코드를 작성하게 됩니다.
메모리 공간 한계가 있습니다. 캐시는 메모리 공간에 데이터를 저장하므로 메모리 공간이 한계가 있습니다. 캐시에 저장된 데이터가 너무 많아지면 다른 프로세스나 애플리케이션에 할당할 메모리가 부족해지는 문제가 발생할 수 있습니다.
데이터 일관성 유지 어렵습니다. 캐시는 데이터를 미리 저장해 두므로 데이터가 변경되면 캐시도 함께 업데이트해야 합니다. 이 과정에서 일관성을 유지하는 것은 어려울 수 있습니다.
캐시 미스가 발생합니다. 캐시에 저장된 데이터가 메인 메모리나 디스크에 없을 경우 캐시 미스가 발생합니다. 이 경우 데이터를 메인 메모리나 디스크에서 불러와야 하므로 성능이 떨어질 수 있습니다.
JavaScript 캐시: JavaScript는 캐시를 사용하여 웹 페이지의 로딩 속도를 향상시킬 수 있습니다. JavaScript 파일을 캐시하여 웹 페이지의 로딩 시간을 단축할 수 있습니다.
브라우저 캐시: 브라우저는 이미 방문한 웹 페이지의 일부 데이터를 로컬에 저장하고 다시 방문할 때 불러옵니다. 이를 브라우저 캐시라고 합니다. 브라우저 캐시를 사용하면 웹 페이지의 로딩 속도를 향상시킬 수 있습니다.
웹 애플리케이션 캐시: HTML5에서는 웹 애플리케이션 캐시(Application Cache)를 사용하여 오프라인 상태에서도 웹 애플리케이션을 사용할 수 있습니다. 웹 애플리케이션 캐시는 사용자가 방문한 웹 페이지의 콘텐츠를 로컬에 저장하고 다음에 방문할 때 캐시된 콘텐츠를 사용합니다.