웹 프레임워크(Web Framework)

Gom La·2023년 3월 30일
1

IT 지식

목록 보기
1/9
post-thumbnail
post-custom-banner

웹 응용 프로그램이 대중화되며 점점 프로그래밍 개발도 접근하기 쉬워지고 있다. 몇 년 전까지만 해도 코딩과 프로그래밍은 오랜 교육을 받은 소수의 사람들만 접근할 수 있었지만 오늘날에는 소프트웨어를 만들기위한 주요 지식만 습득한채 프로그래밍을 할 수 있게 되었다.

현재에는 초보자와 전문가 모두 작업을 쉽게 만들어 주는 도구를 사용하여 프로그래밍을 하는데 그것이 바로 웹 프레임워크 이다. 그렇다면 개발자에서 프로그래밍을 쉽게 만들어주는 웹 프레임워크 가 무엇인지 알아보도록 하자.


🔖 Web Framework란?

웹 프레임워크는 웹 개발 프로세스의 일부 측면을 자동화하여 더 쉽고 빠르게 만들 수 있는 소프트웨어 도구이다. 즉, 웹사이트, 웹 업플리케이션, 모바일 앱 또는 소프트웨어의 아키텍처를 구축하는데 도움이되는 모델 및 라이브러리인 것이다.

더 자세하게 설명하자면 사용자 인터페이스 / 비즈니스 규칙 / 데이터 모델을 분리하여 웹 페이지 개발 하는 과정에서 DB연동HTML템플릿 양식, Session, 코드 재사용 등의 개발자의 번거로움이 들어가는 부분들을 해결해 주며 여러 기능들을 제공한다.


🔖 프레임워크와 라이브러리의 다른점

라이브러리프레임워크와 마찬가지로 프로젝트를 개발하는데 있어 기능을 제공해주고 개발자에게 편리함을 주는데 왜 다른명칭으로 불릴까?

  • 라이브러리 : 우리가 개발하려는 모듈이나 프로젝트에 적합한 기능을 제공해준다.
  • 프레임워크 : 물론 적합한 기능을 제공해주는 역할도 있지만 그것보다 하나의 완성된 안전한 프로젝트 구조에 맞는 틀, 즉 패키지를 제공해주는 것이다.

쉽게 말하면 라이브러리는 우리 입맛에 맞게 사용하는 기능이라면 프레임워크는 우리가 그 구조나 패키지에 맞게 개발을 해야한다는 것이다.


➤ Web Framework를 사용하면 좋은점

서비스를 구현하는데 패키지 및 모듈을 제공하여 프로그래밍의 간편함과 속도를 높여줄 뿐만아니라 어떤 개발자라도 프로그래밍하는데 있어 필요하지만 매번 하는 공통적인 작업들을 일괄적으로 처리해주며 그 부분에 신경을 덜 쓸 수 있게 해준다. 또한 개발 중에 발생한 오류등을 쉽게 찾을 수 있는 디버깅이나 테스트를 제공하여 오로지 어플리케이션 로직에 더 신경 쓸 수 있는 장점이 있다.

  • 보안 : 프레임워크는 여러 관점에서 보안을 제공한다. 외부 공격 및 문제, 충돌 속도 저하 및 기타 부정적인 측면으로부터의 보안해주며 어플리케이션의 품질이 저하될 수 있는 경우를 줄여준다.
  • 확장성 : 프레임워크는 매우 유연하다. 간단한 소프트웨어 도구에서 복잡한 도구까지 웹 어플리케이션을 구축할 때 동일한 프레임워크를 사용할 수 있다.

➤ Web Framework의 유형

일단 본인은 백엔드 개발자이기 때문에 백엔드 웹 프레임워크에 대해 알아보려고 한다. 백엔드 웹 프레임워크에는 두 가지 주요 유형이 존재한다.

클라이언트 측 웹 프레임워크

이 프레임워크는 사용자 인터페이스에 보다 엄격하게 초점을 맞춘 프레임워크라고 보면 된다. 이는 클라이언트 측에 사용자가 시각적으로 바라보고 프로그램과 상호 작용하는 방법 등과 관련되 모든 측면이 포함된다.

서버 측 웹 프레임워크

서버 측 프레임워크는 백엔드 기능에 사용된다. 여기서 말하는 백엔드 기능이라 하면 데이터베이스 조작, 데이터 관리, 웹 서버 관리 등이 있다.

이렇게 분류되는 방법 외에도 웹프레임워크를 분류하는 다른 방법도 존재하는데 대표적으로 프로그래밍 언어를 고려하는 것이다. Python, Javascript, .NET, JAVA가 가장 널리 사용되고 있는데 이런 언어에 따라 사용하는 프레임워크가 다른 것이다.


🔖 언어마다 대표적으로 사용되는 Web Framework

Django

가벼운 사이트보다 좀 더 무겁고 복잡한 경우 Django를 사용할 수 있다. 데이터베이스 기반의 복잡한 웹사이트 구축에 중점을 둔 Python기반 웹 프레임워크이다. Python을 사용하며 고성능 웹사이트를 보유하는 것이 우선된다면 Django를 선택해야 한다.

  • Django는 확장성이 뛰어나며, 코드 재사용성 기능을 통해 개발자는 웹사이트에서 증가하는 트래픽에 쉽게 적응할 수 있다.
  • Django는 SEO 지향적이다. 즉, Django를 기반으로 하는 웹사이트는 최적화가 쉽고 SEO 친화적이다. 주된 이유 중 하나는 IP 주소가 아닌 URL을 통해 서버에서 Django 기반 어플리케이션을 유지할 수 있기 때문이다.
  • 매우 인기 있는 백엔드 프레임워크인 Django는 도구를 사용하는 모든 사람을 지원할 준비가 된 대규모 커뮤니티를 신뢰할 수 있다.
  • Django 프레임워크가 코드없는 프레임워크는 아니지만 개발자가 코드를 사용하지 않고 활용할 수 있는 패키지가 있다.
  • 데이터베이스 기반의 웹사이트에 적합하지만 그외 다른 유형의 웹 사이트를 만드는 데 사용해도 무방하다.
  • MVT(Model and View and Template)패턴을 가진다.
  • ORM(Objective Relational Mapping) 객체관계매핑 데이터베이스 운영을 파이썬으로 할 수 있게 한다. 다양한 데이터 베이스를 적용해야 해는 어플리케이션에서 강점을 지닌다. Model은 데이터 정보를 가공해주고 주고 받는 역할을 하는 컴포넌트이며 View는 데이터를 입력을 받거나 Model에서 넘겨주는 데이터를 출력하는 컴포넌트이다. 이 View부분에서 사용자가 시각적으로 데이터 정보를 볼 수 있다. Template는 Model 과 View사이에서 사용자의 이벤트를 처리하는 컴포넌트에 속한다.

Express.js

Express.js는 javascript 기반의 백엔드 웹 어플리케이션 프레임워크이다. 웹 응용 프로그램 및 모바일 앱을 만드는 것을 목표로 한다.

  • 개발자의 작업을 쉽게 해주는 많은 표준 Node.js 기능을 사용할 수 있다.
  • Express는 웹 페이지를 만드는 데 도움이 되는 몇 가지 템플릿을 제공한다.
  • Express.js에서는 버그가 포함된 코드의 정확한 부분을 더 쉽게 식별할 수 있으므로 디버깅이 더 쉬워진다.
  • Express.js는 확장성이 뛰어난 프레임워크이다. 앞서 언급했듯이 확장성을 통해 프로젝트 및 요구 사항이 증가함에 따라 동일한 프레임워크를 유지할 수 있다.
  • Express.js는 매우 인기 있는 백엔드 프레임워크이기 때문에 개발자들은 서로 작업을 지원하고 필요할 때 도움을 제공하는 대규모 커뮤니티에 의존할 수 있다.
  • Express.js를 사용하면 프론트엔드 및 백엔드 웹 개발 모두에 동일한 프로그래밍 언어(JavaScript)를 사용한다.

Flask

Flask는 Python기반의 WSGI 프레임워크이다. 사용자의 브라우저가 아닌 웹 서버를 실행한다. Flask를 사용하면 원할하게 실행되는 매우 개인화된 프로젝트를 만들 수 있기 때문에 많은 최신 웹 응용 프로그램이 Flask에서 실행된다.

  • Flask를 사용하면 내장된 웹 개발 서버가 제공된다. 이를 통해 디버깅이 더 쉬워지고 요청에 실수가 발생할 때 개발자가 브라우저에서 Python 코드를 구현할 수 있다.
  • Python을 기반으로 하는 Flask를 사용하면 애플리케이션을 빠르게 개발할 수있다. Python은 다른 개발 프로그래밍 언어보다 코딩이 덜 필요한 것으로 알려져 있다.
  • Flask를 사용하면 웹 서버를 쉽게 설정할 수 있다.
  • 빠른 학습 곡선: Flask는 배우기 쉬운 것으로 알려져 있지 않다. Flask를 둘러싼 커뮤니티는 너무 커서 수많은 문서와 튜토리얼을 찾을 수 있다. 많은 문서는 Flask 개발자 자신이 제공한다. 초보자도 빠르게 배울 수 있다.

Ruby on Rails

Ruby on Rails는 Ruby 프로그래밍 언어를 기반으로 하는 웹 개발 프레임워크이다. Ruby는 가장 인기 있는 프로그래밍 언어는 아니지만 Ruby on Rails는 단순성, 자동화된 테스트 및 라이브러리를 제공하여 프로그래밍 프로세스 중에 개발자를 돕기 때문에 매우 인기 있는 백엔드 프레임워크이다.

  • Ruby on Rails는 개발자가 작성한 코드에 대해 자동화된 테스트를 실행한다. 많은 시간을 절약하는 데 도움이 된다.
  • Ruby on Rails는 또한 매우 다양하고 유연하다. 이를 통해 개발자는 프로젝트를 완전히 제어할 수 있다. 개발자는 애플리케이션 데이터베이스의 작동 방식을 결정할 수 있다. 그런 다음 프레임워크는 개발자의 지시에 따라 자동으로 코드를 생성한다. 다시 말하지만, 이것은 일을 더 쉽고 빠르게 만드는 방법이다.
  • Ruby on Rails는 개발자가 데이터베이스를 구축하는 데 필요한 도구를 찾을 수 있는 많은 라이브러리를 제공한다.

Spring

Spring은 Java를 사용하는 웹 개발 프레임워크이다. 복잡한 웹사이트 구축 플랫폼인 Wix와 같은 많은 인기 있고 고성능 웹 사이트를 만드는 데 사용되었다.

  • 매우 인기 있는 프로그래밍 언어인 Java를 기반으로 하는 Spring은 매우 인기가 있으며 지원을 위해 광범위한 커뮤니티에 의존할 수 있다.
  • Spring의 성능을 높일 수 있는 많은 자매 프로젝트와 함께 제공된다.
  • Spring은 특히 함께 제공되는 사이드 프로젝트 덕분에 확장성이 뛰어나다.

🔖 결론

이러한 프레임워크의 대부분은 인기 있는 프로그래밍 언어로 작성되어 프로젝트를 구현하는 데 유용한 기능을 제공한다. 올바른 서버 환경을 선택하는 것은 프로젝트의 고유한 요구 사항에 따라 다르며 어떤 서버 프레임워크를 사용하는 것이 가장 좋은지 고려하는 것은 작업에 달려있다.

결국 웹 개발 프레임 워크의 목적을 이해하는 방법은 작성해야 하는 코드의 양을 줄이는 것이다.


🔖 참고

2022년 웹 개발을 위한 상위 10가지 최고의 웹 백엔드 프레임워크 | AppMaster

profile
인생 개발자 라곰!!
post-custom-banner

0개의 댓글