What is Framework& Library?

indevelop·2022년 5월 17일
1

프레임워크? 라이브러리?

개발 공부를 시작하면서 계속 접하게 되는 '프레임워크'와 '라이브러리'가 뭔지 문득 궁금해져서 구글링을 해보았다.

GoF디자인 패턴으로 유명한 Ralph Johnson교수는 프레임워크를

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

그러니까 요약하자면 무언가를 설계하는 것과 동시에 재사용이 쉽게하는 클래스를 제공하는 것이 프레임워크라는 말이군! 그렇지만 아직 확실히 와닿지는 않았다.

그럼 프레임워크와 단짝인 라이브러리. 이 친구는 무엇을 하는 아이인고? 물어보니
자주 쓰일만한 기능들을 모아 놓은 유틸(클래스)들의 모음집으로 정의되어있었다.

아직까지도 차이가 명확하게 와닿진 않는 기분이었다. 조금 더 검색을 해보기로한다.

프로그래머가 실제 구현하려고 하는 기능사이에 중간에서 도움을 주는 역할이다라는 면에 있어서 라이브러리와 프레임워크는 비슷한 점이있다.

그럼 왜 굳이 구분을 짓는데! 차이가 뭔데!라는 말이 나올 법 하다.

둘의 가장 큰 차이는 프레임워크 = 뼈대가 되는 클래스 = 설계의 기본틀 이라는 것이다.

라이브러리로 돌아가보자.
라이브러리란 자주 사용되는 로직을 재사용하기 편리하도록 잘 정리한 코드의 집합이다.

아래 사진을 본다면 비교적 이해가 수월해 질 것이다.

           -자동차의 뼈대의 해당하는 부분은 Framework

   -자동차의 헤드라이트,바퀴, 선루프등 부품에 해당하는 부분이 Library

한 번 정해진 자동차의 프레임을 바꿀수는 없다.
예를들어 소형차뼈대로 SUV를 만들 수는 없다는 것이다.
그러나 바퀴, 선루프, 헤드라이트 등은 비교적 교체가 쉬울 것이다.
아하, 이제 프레임과 라이브러리의 차이가 이해되었다.

만약 프레임과 부품이 없다면 하나의 자동차를 만들기 위해 비교적 많은 시간이 들 것이다.

그럼 이제 프레임워크의 장,단점에 대해서 알아보자

장점

1) 효율적: 아무것도 없는 상태에서 시작하는 것 보다 시간과 비용이 절약되어 생산성이 올라감
2) Quality향상: 다수의 개발자가 사용하며 수정하다보니 이미 검증된 코드
3) 유지보수 용이: 프레임워크를 쓰지 않고 코드를 개별적으로 짜놓은 경우, 개발 담당자가 바뀌면 곤란해진다. 그러나 프레임워크를 사용하면 체계적이기때문에 담당자가 바뀌어도 위험부담이 줄고, 유지보수에 안정적이다.

단점

1) 학습시간이 김: 프레임 워크에있는 코드를 습득하고 이해하는데 소요되는 시간이 길다.
2) 제약사항: 제작자가 설계한 구조를 토대로 살을 붙여나가야해서 자유롭고 유연한 개발하는데에 한계가 있다.

0개의 댓글