🤖 Computer Science
Framework란?
정의
응용 프로그램이나 소프트웨어의 솔루션 개발을 수월하게 하기 위해 제공된 소프트웨어 환경
목적 및 특징
- 프로그래머들이 비즈니스 로직 등 제품 개발에만 집중, 효율을 향상시킬 수 있다.
- 개발할 때 자주 사용되는 범용 기능을 제공
- 개발자 입장에서는 검증된 코드를 이용해서 최소한의 부분만 바꾸어 빠르게 개발하기 위해
- 회사 입장에서는 누구에게 개발을 맡기던 일정 수준 이상의 결과물을 기대할 수 있기 때문
- 응용 프로그램의 흐름 주도권이 프레임워크에 있다.
- 프레임워크가 프로그래머의 코드를 요청한다.
- 집과 같은 것
- 법규(규칙)에 따라 집을 짓는다.
장점
- 공통적인 개발 환경을 제공한다.
- 통일된 형태의 개발로 협업의 효율 상승
- 의도치 않은 오류 감소
단점
- 개발할 수 있는 범위가 정해져있다.
- 사용법을 익힐 시간이 필요하다.
- 프로그래머가 통제하기 어렵다.
- 한번 선택하면 해당 프레임워크에 의존성이 발생하므로 선택이 중요
- 개발자가 구현하는 코드와 관련없는 오버헤드가 발생
예시
- Django
- Node.js
프레임워크 VS 라이브러리
Framework VS Library면접 질문
- 프레임워크는 한번 선택하면 해당 프레임워크에 의존성이 발생한다. 이 중요한 프레임워크 선택에 고려해야할 사항에 대해 간단히 말씀해주세요.
- 만들려는 소프트웨어의 특성
- 각 프레임워크의 장단점
- 학습시간
- 자유롭게 다루는 개발자의 능력, 수
- 프레임워크와 라이브러리의 차이점에 대해 간단히 말씀해주세요.