Computer Language/Java

[파헤치기] Library vs Framework (+API) 개념의 이해

짠백이 2018. 8. 4. 20:37
반응형

 

이번 포스팅은 자바공부를 하면서 저에게 많은 혼란을 안겨주었던 개념인 

 

Library (라이브러리)와 Framework (프레임워크)에 대해서 

 

정리해보려고 합니다.

 

 

저는 공부를 할 때 용어가 상당히 중요하다고 믿습니다.

 

해당 분야의 전문가들이 개념의 함축적인 의미를 담아놨기 때문에 

 

용어를 이해한다는것은 개념을 이해하는것과 동일한것이라고 생각하는데, 이는 

 

사람 이름이나 사물의 이름 심지어 게임 캐릭터의 이름을 결정 할 때도 

 

아주 사소한 의미라도 담아 놓기 때문이죠.

 

그래서 용어를 이해하는것은 곧 개념을 이해하는 것이라고 생각합니다.

 

 

 

 

첫번째로 Library입니다.

 

사전적 정의로는 도서관인데요. 

 

 

 

자바 또는 다양한 프로그래밍언어에서도 도서관과 매우 유사한 의미를 가지고 있습니다.

 

마치 주민들이 도서관에서 다양한 책들을 빌려서 보는것처럼, 'Library'는 

 

개발자들에게 유용한 정보를 보관해 놓은 것입니다. 

 

(class, interface, methode, variable 등)

 

 

 

그리고 'API' (Application Programming Interface)는 

 

개발자와 Library간 접점(interface)의 역활을 합니다. 

 

 

API를 기술해놓은 문서는 주민들이 책의 내부를 

 

보지않고 책표지나 목록으로 내용을 파악해서 책을 빌려가는것처럼,

 

Library의 구체적인 내부를 보지않고도 내용을 파악하여 Library를 사용 

 

할 수 있도록 도와줍니다.

 

(API 문서에는 Library class / interface / method 등의 이름과 설명이 명시되어 있습니다)

 

 

 

* Library 예시

- front lib  : JQuery(비동기 통신 라이브러리) 등

-back lib : crypto lib(암호모듈) 등 

 

 

 

 

 

두번째는 Framework입니다.

 

사전적정의로는 

 

Frame : 틀 + work : 일하다

 

 

'Framework'는 틀(Frame)안에 들어와서 일(work)을 하는 개념입니다.

 

비유를 하자면 로마에서는 로마법을 따른다는 말이 있듯이 틀 안에서는 해당 규칙을 따라야 하는것처럼,

 

자바가 정의한 표준화된 설계에 따라서 Framework 를 사용 할 수 있습니다.

 

* Framework 예시

- front framework  : bootstrap, angularJS reactJS, vue ...

-back framework : mybatis, spring ...

 

 

 

Library 와 Framework의 가장 큰 차이점은 '제어의 역전과 수정' 이며,

 

 

Library는 외부에서 제어가 이루어지고 내부의 수정이 불가능한 특징이 있습니다.

 

 

반면, Framework는 내부에서 제어가 이루어지고 

 

Frame을 기준으로 내부의 수정이 가능한 특징이 있습니다.

 

 

 

최대한 정확한 정보를 공유하고자 항상 신중하게 포스팅을 하고 있지만, 

내용에 개선이 필요한 부분이 있을 수 도 있습니다.

혹시나 추가적인 보완이 필요하다고 판단되는 부분이 있다면 댓글로 조언해주세요. 

참고하여 수정해놓겠습니다.

 

 

* 해당 포스팅이 도움이되셨다면 공감과 댓글 부탁드릴께요 ㅎㅎ

반응형