Web Framework란?
이번 GO 강의를 들으면서 echo라는 go 기반 프레임워크를 아주 잠깐 사용하게 되었는데,
프레임워크를 내가 정확하게 알고 있는가? 생각이 들었다.
그래서 번역에 가깝지만 아래 링크를 참고하여 다시 한 번 정리를 해보려고 한다.
참고 사이트!
https://www.monocubed.com/10-most-popular-web-frameworks/
10 Most Popular Web Frameworks to Use in 2021 | Monocubed
Here is a list of 10 popular web frameworks to choose and build fast and reliable web applications like PayPal, Twitter, Netflix, Spotify and more.
www.monocubed.com
프레임워크란 무엇인가?
프레임워크란 웹 애플리케이션과 웹사이트 개발을 위한 소프트웨어 플랫폼이다. 프레임워크는 다양하고 방대한 라이브러리와 모듈을 가지고 있으며, 사용자는 프레임워크에 이미 존재하는 요소들을 커스텀 할 수 있다.
프레임워크는 웹 서비스나 APIs 또는 다른 웹 리소스를 개발하는 데 사용되며, 사용자가 온전히 개발에 집중할 수 있도록 모든 백그라운드 환경을 효과적으로 관리해준다.
프레임워크에는 일반적으로 client side와 server side 프레임워크로 두 가지 타입이 있다.
클라이언트 쪽 프레임워크는 대개 UI에 관련되며, 서버 쪽 프레임워크는 웹 사이트의 기능을 좀 더 효율적으로 하는 등에 관련된다.
프레임워크의 유형
- Model View Controller(MVC)
: 많은 웹앱 프레임 워크가 MVC ( Model View Controller ) 모델에서 작동합니다. 사용자 인터페이스에서 비즈니스 표준으로 데이터 모델을 분리하기 위해 대부분의 프레임 워크는 MVC 아키텍처를 채택합니다. 일반적으로 코드 재사용, 모듈화 된 코드를 촉진하고 다양한 인터페이스를 허용하므로 좋은 방법입니다.
- Model-View-ViewModel(MVVM)
: KnockoutJS 및 VueJS와 같은 프레임 워크는 Model-View-ViewModel 또는 Model-View-Binder 아키텍처 모델을 사용합니다. 이 아키텍처에서 뷰 계층은 컨트롤러 역할을 하며 모델 계층의 데이터 개체를 관리 가능한 구성 요소로 변환합니다. View 계층은 모든 사용자 요청을 직접 처리하므로 데이터 바인딩이 훨씬 더 간단합니다.
- Push기반 vs Pull 기반
: 일반적으로 MVC 프레임 워크는 '액션 기반' 이라고도하는 푸시 기반 아키텍처를 준수한다 . 이러한 유형의 프레임 워크는 필요한 처리를 수행 한 다음 결과를 제공하기 위해 데이터를 뷰 레이어로 '푸시'하는 작업을 채택합니다. 프레임 워크의 몇 가지 예는 Spring MVC, Symfony, Ruby on Rails, Sails.js, Django, CodeIgniter 및 Diamond입니다.
Struts, ZK, Play 및 RIFE와 같은 웹 개발 프레임 워크 는 푸시 기반 및 풀 기반 애플리케이션 컨트롤러 호출을 모두 사용합니다.
이 아키텍처의 또 다른 옵션은 '구성 요소 기반 '이라고도하는 '풀 기반' 입니다. 이것은 뷰 레이어에서 시작하는 일종의 프레임 워크로, 필요에 따라 다양한 컨트롤러에서 결과를 '끌어 올릴'수 있습니다. 풀 기반 아키텍처의 몇 가지 예는 JBoss, Tapestry, Lift, Wicket, Micro 및 JavaServer Faces 입니다.
- 3 tier organization
: 3 계층 조직 응용 프로그램은 응용 프로그램, 데이터베이스 및 클라이언트 측의 세 가지 물리적 계층으로 잘 규제됩니다. 이 데이터베이스는 일반적으로 관계형 데이터베이스 입니다.
애플리케이션은 서버에서 실행되고 HTTP를 사용하는 클라이언트에 해당하는 비즈니스 로직을 보유합니다. 클라이언트는 애플리케이션 계층에서 개발 한 HTML 코드를 실행하는 웹 브라우저를 사용합니다.
웹 프레임워크를 사용해야하는 이유?
- 프로그래밍 언어 단순화
- 개발 프로세스 최적화
- 재사용 성
- 표준화 된 코드 관행
- 테스트 및 디버깅
- 커뮤니티
가장 인기있는 프레임워크는?
Laravel (PHP 프레임 워크)
Django (Python 프레임 워크)
Rails 프레임 워크
AngularJS 프레임 워크
Spring (Java 프레임 워크)
더 자세한 사항은 위의 링크에서 확인!