상세 컨텐츠

본문 제목

프레임워크란 ?

국비/[JAVA] 관련 상식

by 개발성훈 2020. 5. 4. 10:07

본문

프레임워크란?

Gof의 디자인 패턴으로 유명한 랄프 존슨(Ralph Johnson)은 "프레임워크란, 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것"이라고 정의하였습니다.

프레임워크란 용어를 아직 접하지 못하셨거나

저를 포함하여 접한 지 얼마 안 되신 분들은 아마 이해하기가 힘들 수 있습니다.

보통 Framework는 라이브러리라는 개념과 비교해서 많이 설명합니다.

 

 

프레임워크 vs 라이브러리

라이브러리란 자주 사용되는 로직을 재사용하기 편리하도록 잘 정리한 일련의 코드들의 집합을 의미합니다. (참고: 생활코딩)

생활코딩에서 정의한 라이브러리 내용은 어느 정도 이해가 가지만 저명한 전문가가 Framework를 정의한 것은 이해하기가 쉽지 않습니다. 또한 위의 정의만으로 두 개념 사이의 차이도 명확히 모르겠습니다.

저는 머릿속에 그림을 그려서 이해하는 것을 선호합니다. 예를 들어보겠습니다.

프레임워크는 자동차의 프레임, 즉 기본적으로 구성하고 있는 뼈대를 말합니다.

프레임워크의 장, 단점

 

프레임워크 종류

 구분

종류 

 자바 프레임워크

Struts, Spring, 전자정부 프레임워크 

QRM 프레임워크 

myBatis(iBatis), Hibernate 

자바스크립트 프레임워크 

AngularJS, React, Polymer, Ember 

프론트엔드 프레임워크 

Bootstrap, Foundation, MDL 

 

장점

1) 효율적.

- 아무것도 그려지지 않은 제로에서 코드를 일일이 짜는 것보다 시간과 비용이 훨씬 절약되며 생산성이 좋아집니다.

 

 

2) Quality 향상.

- 버그 발생 가능성을 처리해줌으로써 개발자가 반복 작업에서 실수하기 쉬운 부분을 커버해줍니다. 다수의 개발자가 사용하며 수정하다 보니 이미 검증된 코드라고 볼 수 있습니다.

 

 

3) 유지 보수 Good!

- 프레임워크를 쓰지 않고 일일이 코드를 짜 놓은 경우, 회사 입장에서 개발 담당자가 바뀌어버리면 곤란해집니다. 그러나 Framework를 사용하면 코드가 보다 체계적이어서 담당자가 바뀌더라도 위험부담을 줄일 수 있으며 유지 보수 안정적입니다.

 

 

단점

1) 학습시간이 길다.

- 코드를 본인이 짜 놓은 것이 아니기 때문에, 프레임워크에 있는 코드를 습득하고 이해하는 데 오랜 시간이 걸립니다.

 

2) 제작자의 의도된 제약 사항

- 제작자가 설계한 구조를 어느 정도 유지한 채 코드에 살을 붙여나가야 합니다. 따라서 개발자는 자유롭고 유연하게 개발하는 데 한계가 있습니다.

 

출처 : https://moolgogiheart.tistory.com/87

'국비 > [JAVA] 관련 상식' 카테고리의 다른 글

[JAVA] JAVA관련 기본상식 J2EE, JDK, JRE, J2SE 차이  (0) 2020.05.13
[JAVA] static 개념  (0) 2020.05.04
[JAVA] 요점정리 및 개념  (0) 2020.05.03
[JAVA] format 출력 형식  (0) 2020.05.03
[JAVA] 캐스팅이란?  (0) 2020.05.02

관련글 더보기