프레임워크란?

프레임워크는 어떠한 목적을 달성하고 복잡하게 얽혀있는 문제를 해결하기 위한 구조이며, 소프트웨어 개발에 있어 하나의 뼈대 역할을 한다.

프레임워크와 라이브러리의 차이

  1. 라이브러리는 단순 활용가능한 도구들의 집합을 말함. 개발자가 만든 클래스 또는 함수등을 나열하여 필요한 클래스를 불러서 사용하는 방식.
  2. 라이브러리와 프레임워크의 차이는 제어 흐름에 대한 주도성이 누구에게/어디에 있는가에 있음.
  3. 프레임워크는 전체적인 흐름을 스스로가 쥐고 있으며 개발자는 그 안에서 필요한 코드를 짜 넣으며 반면에 라이브러리는 개발자가 전체적인 흐름을 만들며 라이브러리를 가져다 쓰는 것이라고 할 수 있다. 라이브러리는 라이브러리를 가져다가 사용하고 호출하는 측에 전적으로 주도성이 있으며 프레임워크는 그 틀안에 이미 제어 흐름에 대한 주도성이 내재(내포)하고 있다.
  4. 프레임워크는 가져다가 사용한다기보다는 거기에 들어가서 사용한다는 느낌/관점으로 접근.
  5. 라이브러리를 사용하는 애플리케이션 코드는 흐름을 개발자가 직접 제어하여 필요한 부분에서 함수, 클래스 호출하여 사용
  6. 라이브러리는 함수들이나 기능 모음을 가져다가 쓰는 것. 프레임워크는 특정 디자인 패턴이나, 전처리 후처리에 필요한 동작과 기능들을 수행하기 위해서 프레임워크가 실행되는 중간 중간에 특정 비지니스나, 특정 구현 단에서만 사용자의 코드를 lookup(검색)하여 사용하는 형태

왜 프레임워크를 사용해야 하는가

  1. 특정 개념들을 추상화하여 여러 클래스나 컴포넌트로 구성. (기본 개념의 라이브러리 구현 불필요. DB, 라우팅, request, response 처리, 에러처리등)
  2. 추상적인 개념들이 비슷한 문제를 해결하기 위해 작업하는 방법을 정의함. (문제 해결의 일관성)
  3. 지속적인 프레임워크 업데이트로 기본 기능의 효율성 및 퀄리티 향상