찌우닝 2023. 3. 29. 12:25

📌프레임워크와 라이브러리 차이점에 대해 설명해주세요.

  • 프레임워크
    • 애플리케이션 개발 시 필수적인 코드, 알고리즘, DB 커넥션 등의 기능등을 위해 뼈대(구조)를 제공
    • 소프트웨어의 특정 문제를 해결하기 위해서 상호 협력하는 클래스와 인터페이스의 집합
    • 즉, 특정 프로그램을 개발하기 위한 여러 요소들과 메뉴얼인 룰을 제공하는 프로그램
    • 예시
      • Java -> Spring
      • Python -> Django
      • JavaScript -> Node.js
      • PHP -> Laravel
  • 라이브러리
    • 소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임
    • 여기에는 구성 데이터, 문서, 도움말 자료, 메시지 틀, 미리 작성된 코드, 함수, 클래스, 값, 자료형 사양을 포함
    • 프로그래머가 어떠한 기능을 수행하기 위해서 도움을 주는 또는 필요한 것을 제공해주는 역할이라고 보면 됨
    • 즉, 프로그램을 개발하기 위해 쓰는 공구와 같은 도구들
    • 예시
      • Python pip로 설치한 패키지/모듈 (tensorflow, pandas 등)
      • C++의 표준 템플릿 라이브러리 (STL)
      • Node.js에서 npm으로 설치한 모듈
      • HTML의 클라이언트 사이드 조작을 단순화하는 JQuery
      • 웹에서 사용자 인터페이스 개발에 사용되는 React.js
  • 프레임워크와 라이브러리의 차이는 무엇인가?

 

  •  
  • 프레임워크와 라이브러리의 차이점은 "제어 흐름"의 권한이 어디에 있는가의 차이.
  • 프레임워크는 전체적인 흐름을 자체적으로 가지고 있어 프로그래머는 그 안에서 필요한 코드를 작성.
  • 반면에 라이브러리는 프로그래머가 전체적인 흐름을 가지고 있어 라이브러리를 자신이 원하는 기능을 구현하고 싶을 때 가져다 사용할 수 있다는 것.

💡참고

더보기

📌캐시의 장단점과 어떤 부분에 활용하는지 설명해주세요. 

  • 캐시(Cache)란?
    • 자주 사용하는 데이터나 값을 미리 복사해 놓는 임시 장소
  • 캐시의 장단점
    • 장점
      • 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간 없이 더 빠른 속도로 데이터에 접근할 수 있다.
      • 불필요한 데이터 전송을 줄여서 네트워크 요금으로 인한 비용을 줄여준다.
      • 네트워크 병목을 줄여준다. 대역폭을 늘리지 않고도 페이지를 빨리 불러올 수 있게 된다.
      • 원서버에 대한 요청 감소. 서버는 부하를 줄일 수 있으며 더 빨리 응답할 수 있게 된다.
      • 거리로 인한 지연 감소. 페이지를 먼 곳에서 불러올수록 시간이 많이 걸린다.
    • 단점
      • 비용이 비싸다.
      • 메모리 저장공간은 속도가 빠를수록 용량이 작다.
  • 캐시 활용
    • 접근 시간에 비해 원래 데이터에 접근하는 시간이 오래 걸리는 경우
    • 반복적으로 동일한 결과를 돌려주는 경우
    • 값을 다시 계산하는 시간을 절약하고자 하는 경우

💡참고

더보기

📌프론트엔드에서 캐시를 사용할 수 있는 2~3가지 영역을 제시해주세요

  • Browser Caches
    • HTTP 캐시라고도 하며, 브라우저 혹은 HTTP 요청을 보내는 클라이언트의 내부 디스크 혹은 메모리에 저장되는 캐시.
    • 캐시된 리소스를 공유하지 않는 한 개인에 한정된 캐시
    • 브라우저의 back버튼 또는 이미 방문한 페이지를 재방문하는 경우 극대화
  • Proxy Caches
    • 브라우저 캐시와 동일한 원리로 동작하며, 클라이언트와 서버 사이에 위치한 네트워크 상(프록시 서버)에서 동작하는 캐시로, 회사나 IPS의 방화벽에 설치
    • 브라우저 캐시와는 달리 다수의 웹 서버에서 공유하여 사용할 수 있다는 장점이 있다. 

💡참고