본문 바로가기

programming/용어정리

프레임워크와 툴, 라이브러리의 차이 (Framwork, Tool, Lib)

참고 : https://blog.gaerae.com/2016/11/what-is-library-and-framework-and-architecture-and-platform.html 


본 용어는 사실 필자가 마지막 학년일때, 어떤 교수님께 받았던 질문이다.


너희들이 실제로 개발을 하게 될텐데~ (물론 지금 나는 취준생이다.)

많이들 혼용하는 용어가 있어~


라고 시작된 질문은 강의시간 한 시간 가량을 투자할 만큼의 가치가 있었는가?

글쎄 그것은 잘 모르겠다.


하지만 사용시에 분명한 차이가 있다고 말할 수 있겠다.

라이브러리를 이용한 개발과 프레임워크를 이용한 개발... 나아가서 플랫폼과 아키텍쳐를 참고 사이트에서 다룬다.


1. 라이브러리 (library)


 영어 단어 라이브러리를 직역해보자. 무슨 뜻인가? 도서관이다. 도서관.

 도서관은 책이 꽂혀있다. 카테고리별로. 분류별로. 이런것이 라이브러리이다.


 무슨 헛소리를 하는것인지 감이 오지 않을 것이다.

 예를 하나 들어보자.

 

 발렌타인데이가 다가오고 있다.

 민지는 짝사랑하는 친구에게 편지와 함께 초콜릿을 만들어 고백하고자 한다.


 자, 초콜릿 만들기다.

 뭐부터 해야할까?

 지식이 없는 상태에서 맨땅에 헤딩하는 것을 우리는 트라이한다고 하자. (츄라이츄라이, 헤딩팟)


 뭐 가족이나 친구한테 전하는 것은 헤딩하고 실패해도 괜찮지 않은가! (아니다 이악마야)


 초콜릿을 만들기 위해 우리는 반사적으로 스마트폰에서 검색창에 '초콜..' 까지 칠 것이다.

 그만큼만 쳐도 연관검색어로 나온다.

 이제, 재료들을 가지고 보고 만들기만 하면 될 것이다.


 그런데 처음 초콜릿을 만든 사람도 한번에 맛있게 만들게 되었을까? 아닐것이다.

 카카오 매스나 닙스 먹어봐라 쓰고 떫다.

 어떻게 가공했더니 맛있어 진것이고, 이런 가공법을 문서나 기록으로 남기고 이것이 점점 발전해서 현재까지 온 것이다.


 프로그램개발에 있어서도 마찬가지다.

 맨땅에 헤딩해서 얻는 값진 코드는 [라이브러리] 가 아니다.


 그러나 헤딩해서 얻은 프로그램을 다른 사람들이나 나 자신이 나중에 사용하기 위해 가공한 것을 [라이브러리] 로 부를수 있다.


 jQuery 는 javascript 에서 자주 쓰이는, 혹은 직관적으로 사용하면 편리할 함수를 많이 만들어 둔 것이다.

 따라서 jQuery 는 라이브러리라고 할 수 있는 것이다.



2. 프레임워크 (Framework)


 드디어 나오셨다.

 괜찮다. 개발자들도 혼용한다.


 프레임워크는 합성어다. Frame + work. 어려워 하지 말자.


 Frame 은 직역하면 틀이다. work 는 일이다.

 눈치가 빠른 사람들은 여기까지 보면 느낌 가져갔다.


 프레임워크는 정해진 틀(Frame)에서 일(work)할 수 있도록 만들어진 것이다.


 앞에서 우리는 초콜릿을 예로 들었다.

 초콜릿에 대한 라이브러리가 초콜릿과 관련된 책들(만드는방법, 재미있는 이야기, 등) 이라면


 프레임워크는 [초콜릿 만들기] 세트이다.

 만들기 세트안에 만드는 방법이 포함 될 수도 있다. 뿐 아니라 재료도 포함되어 있다.


 프로그램에서도 마찬가지이다.

 jQuery 는 라이브러리이다. JSP 의 C 태그도 라이브러리라고 한다.

 이들을 이용하여 무궁무진한 것들을 만들수 있겠지만 

 오로지 웹에 특화하여 더 빠르게, 더 쉽게 만들수 있도록 한 것이 스프링 프레임워크라고 한다.


 개발의 속도를 원한다면 프레임워크를 적극 활용하되, 프레임워크는 아무래도 특화된 묶음이기에 지원하지 않는 라이브러리나 재료(코드, 파일형식 등)도 있을 수 있다. 심지어는 내가 꼭 사용해야 하는 라이브러리와 충돌이 일어날 수도 있다. 이를 꼭 확인하고 프레임워크를 사용하도록 하자.



3. 툴 (Tool)


 끝으로 툴과 프레임워크는 다르다.

 정확히 말하자면 사각형과 정사각형의 관계와도 같다.


 모든 정사각형은 사각형이다.

 그러나 사각형은 모두 정사각형이 될 수 없다. 평행사변형도, 직사각형도 있기 때문이다.


 마찬가지로, 툴은 도구라는 뜻이다. 생산적인 모습에서 프레임워크와 혼용되지만 모든 툴이 생산적인 것은 아니다.

 예를들어, 최적화 툴은 시스템의 찌꺼기나 남는 리소스를 정리한다. 그러나 최적화 툴을 프레임워크라고 말하지는 않는다.

 

반응형