학부 때부터 프레임워크는 느낌으로는 뭔지 알겠으나 명확하게 설명할 수는 없었다. 단순히 프레임워크는 뼈대다. 이걸 왜 이해 못 해?라고 할 수 있겠지만 놀랍게도 나에겐 2년간 와닿지 않는 의미였기에 이번 포스팅을 통해 확실하게 정리하고자 한다.
이번 프로젝트에서는 springboot 프레임워크를 쓰고...
jquery 라이브러리 사용해서...
그래서 둘 차이가 정확하게 뭐예요?
쉽게 말해 우리가 프로젝트를 구성할 때를 생각해보자. 처음 이클립스나 스프링을 켜서 [File]-[New]-[Maven Project]로 프로젝트를 생성하고 Group Id부터 Artifact Id 등 많은 것들을 하나씩 지정하고 만들게 된다.
이때, 만약 같은 패턴의 프로젝트를 만들어야 한다면 위와 같은 과정을 반복하며 같은 구조를 잡아나가야 한다. 시간과 비용이 많이 들고, 귀찮은 일이다. 하지만, 장점도 분명 있으니 우선 여기서 개념을 이해하자.
프레임워크(Framework)
"프로그램 구조 세팅은 내가 다 했어. 너는 내가 정해준 방식대로 클래스랑 메서드 기능만 만들어줘."
라이브러리(Library)
“자주 쓰는 코드나 함수, 내가 미리 만들어놨어. 가져다가 바로 사용하면 돼!”
프로젝트를 만들어내는 것은 자동차🚘를 만드는 것으로 생각해볼 수 있다. 자동차를 만들기 위해선 ⚙️자동차 프레임(뼈대)이 있어야 하고, 프레임에 끼워 넣을 🛞부품(타이어, 와이퍼, 헤드라이트 등)이 있어야 한다. 이때 자동차 프레임이 되는 것이 “프레임워크”이고, 프레임에 끼워 넣을 부품은 “라이브러리”라고 할 수 있다.
다른 특성 또한 자동차를 만드는 것과 동일한 논리로 이해할 수 있다.
- 한번 정해진 자동차 프레임(프레임워크)은 바꿀 수 없다.
소형 프레임으로 SUV를 만들 순 없는 일이다. 다만 부품을 자유롭게 변경할 수는 있다.
- 프레임(프레임워크)과 부품(라이브러리)은 직접 제작해도 된다.
꼭 기존의 프레임과 부품으로 자동차를 만들어야 하는 것은 아니다. 시간과 비용이 많이 들뿐 원하는 부분을 커스텀하는 것은 더 만족스러운 결과를 나타낼 수 있는 것처럼 프로그램 또한 동일하다.
정리하자면, 프레임워크와 라이브러리는 ‘하늘을 나는 자동차를 만들고 싶은 사람’이 프레임부터 부품까지 직접 커스텀해도 되지만 시간과 비용적인 여유가 없고 프레임부터 제작하다간 정작 내가 원하는 하늘을 나는 기능에 투자하는 시간은 줄어들어 퀄리티가 떨어질까 걱정인 개발자를 위해 탄생했다.
개발자가 프레임워크와 라이브러리를 사용한다는 것은 개발기간 동안 하늘을 나는 기능에 집중하기 위해 프레임과 부품을 아웃소싱(Outsourcing)하는 것이다.
⚙️Reference : http://tobetong.com/?p=6640
잘 고른 프레임워크, 프로젝트 성패를 가른다 – TOBETONG
프레임워크가 뭐길래 십여 년 전, 고객과의 기술미팅에서 처음으로 ‘프레임워크’ 라는 용어를 접했다. 고객은 ‘스트러츠’ 라는 프레임워크를 사용 중이었고, 그 당시 컨설팅 하던 제품과의
tobetong.com
'Study > cs (computer science)' 카테고리의 다른 글
쿠키 1부 : HTTP로 설명하는 쿠키 (5) | 2023.11.24 |
---|---|
equals() 와 hashCode() 동일성과 동등성, 완전범죄하기 (48) | 2023.10.31 |
REST API/RESTful API Design Guide/REST 디자인 패턴/Http Methods 는 무엇인가 #2 (0) | 2023.01.04 |
REST API/RESTful API란/Representational State Transfet API/REST 디자인패턴 쓰는 이유 #1 (0) | 2023.01.03 |
빌드(Build)/Jankins 젠킨스/CI도구 써야하는 이유 (0) | 2023.01.03 |