프레임워크란
https://contents.premium.naver.com/3mit/wony/contents/220803201944775qi
https://aws.amazon.com/ko/what-is/framework/
https://namu.wiki/w/%ED%94%84%EB%A0%88%EC%9E%84%EC%9B%8C%ED%81%AC
"프레임워크, 어떻게 탄생했을까? 💡
개발을 하는 과정에는 공통되는 작업들이 적지 않아요. 중복되는 작업들에 대해서는 굳이 여러 번 반복할 필요가 없죠. 따라서 누군가가 미리 코드를 짜 놓은 후, 누구나 쉽게 가져다 쓸 수 있도록 모아놓았고 이게 프레임워크가 된 거예요.
웹 개발을 위한 프레임워크도 있어요. 웹을 개발하는 데는 다양한 언어가 사용돼요. 우리가 흔히 보는 화면, 즉 사용자 인터페이스(UI)를 담당하는 프론트엔드 개발에는 주로 자바스크립트 언어가 사용되는데요. 자바스크립트에 대한 프레임워크인 Angular, React, Vue가 있어요. 각각 구글, 페이스북, 그리고 일반인이 만든 프레임워크예요.
반면, 서버를 담당하는 백엔드 개발에는 자바, 파이썬, 루비 언어가 사용되는데, 이들 언어에 대해서는 스프링(Spring), 장고(Django), 익스프레스(Express Js) 등 서버를 쉽고 빠르게 개발할 수 있는 프레임워크가 있어요.
비슷한 개념의 '라이브러리' 💻
프레임워크와 아주 비슷한 개념이 있는데요. 바로 '라이브러리'예요. 라이브러리는 다른 사람들이 만들어놓은 코드를 이용할 수 있게 한다는 측면에서 프레임워크와 같아요. 그렇다면 프레임워크와 라이브러리는 어떻게 다를까요?
'제어할 수 있는 권한'에서 차이가 발생해요. 프레임워크는 특정 틀(Frame) 안에서 미리 준비되어 있는 코드가 제공돼요. 학교라는 공간 안에서 학생은 학교가 만든 커리큘럼을 따라가는 것처럼요. 반면 라이브러리는 필요할 때마다 사용자가 꺼내 쓸 수 있어요. 마치 도서관(Library)에서 읽고 싶은 책만 읽는 것 처럼요.
즉, 전체적인 흐름에 대해 제어할 수 있는 권한이 프레임워크에 있는 것과 달리, 라이브러리는 사용자가 직접 제어를 하며 필요한 기능에 대한 코드만 가져다 쓸 수 있어요."
- 초등학생도~에서 발췌함 -
--------------------------------
2. 라이브러리와의 차이점[편집]
읽기전에 답부터 이야기하면 둘의 차이를 엄밀히 말하는건 불가능에 가깝다. 여러 사이트들의 설명[1]들은 학술적으로는 의미가 없는 내용이다. 해외의 유명한 개발책들을 읽어도 갑론을박이 활발한것을 알 수 있다. 아래의 설명을 읽을 때 대략 이런 경향이있다로 이해를 해야지 단순하게 라이브러리는 무엇이고 프레임워크는 무엇이다 같은 이야기를 면접때 한다면 매우 불리해질 것이다.[2][3]
보통 프레임워크라고 하면 여러 기능을 가진 클래스와 라이브러리가 '특정 결과물을 구현하고자' 합쳐진 형태라고 볼 수 있다. 따라서 프레임워크는 라이프 사이클이나 일종의 상태를 가지며 대부분의 프레임워크들은 다양한 기능들을 지원하기 위해 많은 라이브러리들을 가지고 있다. 다만 이 분류법도 예외가 있다.
메서드 및 클래스화, 즉 모듈화를 하는 이유 중 하나가 재사용성인데, 프레임워크는 이 재사용성을 큰 그룹 단위로 묶어주었다고 보면 된다. 재사용 가능한 수많은 클래스들과 라이브러리들을 융합한 채로 처음부터 제공해 주기 때문에, 여러 개의 표준을 만들지 않아도 돼서 개발자의 피곤함을 덜어준다.
예를 들어, 웹 프레임워크는 '웹 서버'를 구현하기 위한 목적으로 만들어진 프레임워크다. 웹 서버를 구현하기 위해선 페이지 구현, DB 관리, 유저 인증, API 서버, 라우팅, 사이트맵, 세션 관리 등 여러 기능이 들어있어야할 것이다. 각 기능을 보유한 라이브러리들을 한데 묶어 담은 것이 바로 프레임워크라고 보면 된다.
현재는 만든사람이 라이브러리라고 하면 라이브러리이고 프레임워크라고 하면 프레임워크로 굳는 분위기 이다.
- 나무위키 발췌 -
--------------------------------
개발 유연성
개발자는 소프트웨어 프레임워크를 사용하여 주요 소프트웨어 변경 사항을 구현할 때 더 민첩하게 대응할 수 있습니다. 목표에 맞는 다양한 프레임워크를 교체하면서 프로젝트별 코드를 유지할 수 있습니다. 이렇게 하면 개발자가 수행해야 하는 코드 재작성 작업이 줄어듭니다. 예를 들어 기존 기계 학습(ML) 프레임워크를 보다 강력한 프레임워크로 대체하여 이미지 인식 애플리케이션을 업그레이드할 수 있습니다.
- aws 발췌 -
--------------------------------
확실히 지난번보다 이번에 더 많이 이해했음. 특히 프레임워크가 근본적으로 개발언어를 기반으로 만들어지며 만드는 방식의 차이로 프레임워크의 성격이 달라진다던지 하는 부분들?!
'일상' 카테고리의 다른 글
20240204(from20240130) (0) | 2024.02.04 |
---|---|
20240203 (0) | 2024.02.03 |
20240201 (0) | 2024.02.01 |
20240131(from20240130) (0) | 2024.01.31 |
20240130 (1) | 2024.01.30 |