프레임워크(Framework)란?
소프트웨어 프레임워크(software framework)는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조, 간단히
뼈대, 골조, 프레임워크(framework)라고도 한다.
출처: Wiki 소프트웨어 프레임워크
소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하게끔 일련의 협업화된 형태로 클래스들을 제공하는 것
Ralph Johnson
프레임워크는 애플리케이션을 개발을 하는데 있어 기본적으로 필요한 구조와 구성을 갖추고 있어 개발자가 기능 구현에 집중할 수 있도록 합니다. 프레임워크는 프레임워크만으로 프로그램이 동작하는 것이 아니라 뼈대를 제공하고 그 위에 개발자가 코드를 올려 동작하게끔 합니다.
개발자의 입장에선 좀 더 로직에 집중을 할 수 있게 하고 객체 지향 개발을 하는데 있어 시스템을 일관성있게 관리할 수 있도록 도와줍니다.
여러 명의 다양한 개발자들이 각자의 취향에 따라 설계하고 코딩한다면 관리적인 측면에서 어려움을 겪을 수 밖에 없을 것이고 이는 프레임워크가 제공하는 뼈대와 가이드에 맞게 설계하고 개발함으로써 시스템의 통합, 일관성을 유지할 수 있게 됩니다.
어려운가요? "설계는 내가 할게 너는 구현만 해" 라고 생각해보면 더 쉽게 이해할 수 있을 것 같습니다.
라이브러리(Library)란?
소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임.
출처: Wiki 라이브러리
라이브러리란 개발을 하기 위해 필요한 것 들을 미리 구현해놓은 대상, 도구입니다. 재사용이 가능한 기능을 미리 구현해놓고 필요한 곳에서 호출하여 사용할 수 있도록 만들어진 집합들을 말합니다.
프레임워크는 틀이고 그 안에서 재사용이 가능하도록 만들어진 도구들을 라이브러리라고 합니다.
프레임워크와 라이브러리의 차이
프레임워크와 라이브러리는 애플리케이션을 개발하는데 있어 쉽고 빠른 생산성을 위해 사용한다는 공통점을 가지고 있습니다.
"제어반전"
둘의 가장 큰 차이점은 흐름을 누가 가지고 있느냐에 있습니다. 프레임워크는 스스로 흐름을 가지고 있어 사용자로 하여금 코드를 연결할 공간을 강제하지만 라이브러리를 사용할 때에는 사용자에게 흐름을 직접 제어하게 합니다. 어디서, 언제 호출할지 사용자가 결정짓게 되는 것입니다.
프레임워크의 장점
- 가이드를 제공함으로써 프로그램을 체계적으로 관리할 수 있음.
- 기본적인 설계와 라이브러리를 제공하여 개발 속도를 향상시킴.
- 코드의 재사용성이 높고 확장성이 좋음.
프레임워크의 단점
- 각 프레임워크에 따른 별도의 학습을 필요로 함.
- 자유롭고 유연하게 개발이 불가능함.
- 프로젝트의 용량이 증가함.
프레임워크의 종류
- Spring Framework, Lararvel Framework, CodeIgniter, Django 등등..
'Develop > CS' 카테고리의 다른 글
객체지향 프로그래밍(OOP) (0) | 2022.11.22 |
---|---|
MSA(Micro-Service Architecture) 란? (0) | 2022.11.14 |