[IT Study] 프레임워크(Framework)란?
면접에서 종종 들었던 질문이였던 프레임워크에 대해서 정리해보고자 한다.
프레임워크란?
일정한 형태의 틀, 부품을 가지고 다양한 형태의 결과물을 만드는 것!
개발에 필요한 화면구현, DB연동, 개발환경들의 공통적인 부분을 제공함으로서
개발 시간과 (인력)비용을 절감할 수 있게 해준다.
즉, 프로그램 개발의 다양한 기능들을 통합적으로 제공하는 것으로 한마디로 표현하자면
'특정 프로그램을 개발하기 위한 여러 요소들과 메뉴얼인 룰을 제공하는 프로그램' 이다.
프레임워크 VS 라이브러리
프레임워크(자동차 틀) vs 라이브러리(자동차 부품들)
이 둘의 결정적인 차이는 자유도!
프레임워크를 가지고 프로그램을 만들기 시작하면 어떤 규약을 꼭 지키면서 만들어야한다.
하지만 라이브러리는 도구로 프레임워크가 가지고 있는 규약을 지키면서 어떠한 도구를 사용하여도 무방하다.
결국 둘 다 프로그램을 쉽게 만들기 위해서 만든 것들이라는 공통점이 있다.
프레임워크 장단점
장점
1. 효율적
- 프레임워크는 이미 만들어진 코드를 사용하게하여 시간과 비용을 아낄 수 있다.
2. 완성도
- 프레임워크에서 제공하는 기능들은 검증된 코드이다. 이를 사용함으로 오류를 줄이고 품질을 살릴 수 있다.
3. 유지보수
- 프레임워크를 사용하면 다른 회사에서 같은 프레임워크로 다른 시스템을 개발해왔다면 쉽게 적응할 수 있다.
4. 확장성
- 새로운 이슈나 기능이 업데이트 되고 이를 사용할 수 있다. 업데이트된 기능을 통해 프로그램의 품질을 올릴 수 있다.
단점
1. 학습필요
- 특정 프로그램 언어를 배우고 해당 프레임워크의 사용법을 학습해야합니다.
2. 제약사항
- 프레임워크는 사용법이 정해져 있습니다.
웹 프레임워크 종류
1. JAVA 기반
spring - 전자정부 표준프레임워크
2. JavaScripts 기반
Node.js - 자바스크립트 활용 서버쪽까지 제어할 수 있는 프레임워크
Angular JS - 자바스크립트 기반의 오픈 소스 프론트엔드 웹 애플리케이션 프레임워크
React - 프론트엔드 라이브러리
Vue.js - 웹 페이지 화면을 개발하기 위한 프론트엔드 프레임워크
*현 프로트엔드 3대장 웹 프레임워크 - Angular, React, Vue
3. Python 기반
Django - 고도의 데이터베이스 기반 웹사이트
Flask - Django보다 단순하고 가볍다