본문 바로가기

Java/Spring

프레임워크란?

1. 프레임워크

"소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것"

프레임워크는 구체적이고 확장가능한 기반코드를 가지고 애플리케이션의 틀과 구조를 결정할 뿐만 아니라 개발자의 코드를 제어한다. 
구조에 대한 일종의 가이드라인이라고 생각하자. (이미 규칙이 정해진)

  • 확장 가능한 기반 코드 : 설계의 기반이 되는 부분을 기술 
  • 라이브러리 : 개발자가 코드를 확장하는 데 필요한 라이브러리
 를 통합제공하는 형태가 프레임워크라고 할 수 있다.

2. 프레임워크 vs 라이브러리

쉽게말해 프레임워크는 내가 끌려가는 것이고 라이브러리는 내가 부르는 것이다.

라이브러리는 내가 필요할 때 가져다 쓰는 대상일 뿐이지만 프레임워크는 라이브러리에 일종의 뼈대처럼 '설계의 기본 틀'이 추가된 형태다. 

프레임워크에는 제작자가 의도한 제약사항이 존재하며 이에 따라 개발자의 유연성과 자유도가 제한되지만 신뢰도와 효율을 높일 수 있다.

3. 프레임워크의 종류

 구분
종류 
 자바 프레임워크
Struts, Spring, 전자정부 프레임워크 
QRM 프레임워크 
myBatis(iBatis), Hibernate 
자바스크립트 프레임워크 
AngularJS, ReactJS, ExtJS, Polymer, Ember 
프론트엔드 프레임워크 
Bootstrap, Foundation, MDL 

4. 장점

  • 시간과 비용이 절약되며, 생산성이 좋아진다.
  • 다수의 개발자가 사용하고 수정을 거치므로 검증된 코드라 할 수 있다.
  • 코드가 체계적이므로 유지보수에 효율적이다. 

5. 단점

  • 개발자의 유연성과 자유도에 한계가 있다. 
  • 기본적인 기능의 사용법을 익히는 것에 시간이 필요하며 남이 작성한 코드이므로 적응시간이 필요하다. 



이해가 쉬운 댓글이 있어 퍼옴 :