Nest.js

웹 프레임워크(Nest.js)

주병현 2023. 3. 7. 17:56

인터넷 및 웹 개발 소개

  • 인터넷은 정적 이미지와 텍스트의 저장소에서 전자 상거래 및 금융과 같은 여러 분야를 처리하는 것으로 발전했습니다.
  • 자바스크립트는 화면을 동적으로 구성하는 중요한 도구이자 웹 기반 애플리케이션에서 반드시 배워야 할 언어가 되었습니다.

서버 사이드 렌더링(SSR)

  • 과거에는 웹 페이지에서 실행되는 모든 응용 프로그램은 서버가 요청을 처리하고 HTML 및 JavaScript를 브라우저에 보내는 SSR 방식을 사용했습니다.
  • 웹 기술이 복잡해짐에 따라 개발자가 웹 앱에 필요한 기술을 작성하는 데 너무 많은 시간과 노력이 필요했습니다.

웹 프레임워크

  • 개발자가 더 쉽게 사용할 수 있도록 웹 개발의 필수 요소를 하나로 묶는 웹 프레임워크가 도입되었습니다.
  • 웹 프레임워크는 데이터베이스 연결 및 관리, 세션 관리 등과 같은 작업을 위한 표준 방법 및 인터페이스를 제공합니다.
  • 프레임워크를 사용하여 개발자는 안정적인 애플리케이션을 빠르고 쉽게 구축할 수 있습니다.
  • 프레임워크는 개발자가 구축할 수 있는 미리 만들어진 골격을 나타냅니다.
  • 업계에서 많이 사용되는 웹프레임워크에 다음과 같은 것들이 있습니다. 
  • 여기에는 백엔드, 프론트엔드를 구분하지 않았습니다.다음은 각 백엔드 웹프레임워크를 소개하는 표 입니다

각 대세 프레임워크

  • 이 외에도 많은 프레임워크가 존재합니다. 위에서 소개해 드린 것들은 국내에서 많이 사용되거나 인기있는 프레임워크입니다. 
  • 프론트엔드의 프레임워크는 최근 몇년간 리액트가 크게 인기를 얻으면서 많은 서비스들이 SPA기반으로 구축되었습니다. SPA는 SSR 방식과 다르게 서버로부터 매 요청에 대해 최소한의 데이터만 응답받고 화면 구성 로직을 프론트엔드에서 구성합니다. 
  • 따라서 페이지 이동시 화면이 깜빡거리는 것과 같이 어색한 화면이 줄어듭니다. 
  • 반면에 첫 진입 화면에서 프론트엔드 애플리케이션을 다운로드 받아야 해서 초기 로딩 속도가 오래 걸립니다. 최근에는 혜성처럼 등장한 Svelte가 주목을 받고 있습니다. 
  • 백엔드 프레임워크는 자바진영에서는 스프링, 파이썬 개발자들에게는 장고가 대세입니다. 스프링은 국내에서 인기가 많습니다. 
  • 국내 빅테크 기업들에서 많이 사용하기도 하고 특히 정부 프로젝트를 따내기 위해서는 전자정부프레임워크를 사용해야 하는데 이게 스프링 기반으로 만들어져 있기 때문입니다. 
  • 루비는 루비온레일즈가 그 명성을 이어오고 있고, Go 언어 기반의 백엔드 프레임워크는 딱히 시장을 장악하고 있는 것은 없는 듯합니다.

프레임워크 고려사항

웹 프레임워크를 어떤 것을 선택해야 할 지 고민일 때 다음 사항들을 고려해 보면 좋겠습니다.

  • 개발 문서
    • 쉽게 이해할 수 있게 잘 쓰여진 개발 문서는 사용자의 생산성을 증대시켜 줍니다. 커뮤니티에 질문하고 원하는 답변을 얻기 까지 시간이 오래 걸립니다. 문서를 통해 현재 가진 문제를 해결 할 수 있으면 가장 좋습니다.
  • 사용자 수
    • 사용자 수가 많다는 것은 그 만큼 안정적으로 운용된다는 반증입니다. 더불어 궁금한 점이 생겼을 때 개발자 커뮤니티에서 답을 쉽게 찾을 수도 있습니다.
  • 활성 커뮤니티
    • 요즘에는 언어나 특정 기술에 대한 개발자 커뮤니티가 많이 있습니다. 페이스북, 슬랙, 디스코드와 같은 채널 외에도 질문/답변 서비스를 제공하는 스택 오버 플로우에도 해당 기술을 키워드로 검색하면 얼마나 많은 사람들이 활동하고 있는지 가늠해 볼 수 있습니다.
  • 깃허브 스타 수와 이슈 대응
    • 대부분의 프레임워크는 오픈 소스로 개발하고 소스 코드가 깃허브에 공개되어 있습니다. 깃허브 스타 수는 그만큼 사람들이 인정하고 있다는 뜻입니다. 또 사용자들이 리포트 하는 이슈가 얼마나 잘 대응되고 있는 지도 중요한 요소 입니다. 개발이 멈춘 프로젝트는 최신 언어 트렌드와 아키텍처를 따라잡지 못하고 있을 수 있습니다.

참고사이트