[소논문]프레임워크 개념과 비교 분석 및 주요 기업들의 사용현황

김정민·2023년 10월 6일

토이프로젝트

목록 보기
2/3

Abstract

웹프레임워크는 웹개발을 위한 라이브러리들의 모음이다. 웹 애플리케이션을 개발 할 때, 웹 프레임워크를 통해 개발 한다면, 개발 및 유지, 보수, 확장에 있어 이득을 취할 수 있다. 수많은 웹 프레임워크가 있지만, 가장 대표적인 6가지 웹프레임워크가 있는데, 이들은 다양한 방면에서 장단점이 있다. 그래서 기업에서 다양한 프레임워크들을 채택하기 때문에 컴퓨터공학과 학생으로서 원하는 기업이 사용하는 프레임워크를 숙지하고 미리 학습한다면 취업에서 좋은 결과를 얻을 수있을 것이다.

서론

World wide web의 크기와 기능이 확장되고, 사람들간의 비대면 접촉 등이 많아지면서 웹 개발은 현대사회에서 없어서는 안될 기술이 되었다. 이러한 상황에서 웹 개발 프레임 워크는 웹 애플리케이션의 효율성, 안정성 및 확장성을 향상 시키는 핵심 구성 요소 중 하나로 간주된다. 웹 개발자들은 다양한 웹 프레임워크 중에서 하나를 선택 할 수 있고, 이 선택은 프로젝트의 완성도에 큰 영향을 미친다.
본 보고서의 목적은 현업에서 널리 사용되는 대표적인 웹 프레임 워크들을 비교 분석하고, 이러한 프레임 워크들의 장단점을 명확히 이해하여 예비 개발자들이 될 독자들에게 학습 가이드라인을 제공하는 것이다.
글의 구조는 다음과 같다. 첫번째로 웹 프레임워크의 개념과 역할, 두번째로 비교 분석할 대표적인 웹프레임워크들을 소개하고 각각의 특징을 요약한다. 마지막으로 대상 프레임 워크들을 비교 분석하여 각각의 장단점을 분석하고 이를 통해 어떤 프레임워크가 어떤 상황에 적합한지에 대한 결론을 도출한다.

본론

웹 프레임 워크는 웹 애플리 케이션을 개발하기 위한 소프트웨어 플랫폼으로, 웹 개발 작업을 보다 효율적으로 진행할 수있도록 미리 구축된 코드와 도구(라이브러리)를 제공한다. 이러한 웹 프레임 워크를 통해 개발자들은 본인이 구축하고 싶은 기능을 위해 필요한 라이브러리들을 빠르고 쉽게 이해하고 사용하면서 개발의 효율을 높일 수 있다. 또한 자동으로 최신 웹 개발 표준을 따를 수 있어서 애플리케이션의 유지 보수 확장 또한 쉽게 해준다.
2022년 기준 가장 인기있었던 웹 프레임 워크는Spring, Angular, django, flask, Laravel, Ruby on rails, React, VueJs, Express, Ember.js 이다. 이 글에서는 Spring, django, React, flask, Ruby on rails, Angular에 대해서 다루겠다. Spring은 java기반의 enterprise 애플리케이션을 신속하게 제공할 수있도록 설계되었다. 현업에서 가장 많이 사용되는 애플리케이션 중 하나이다. django는 파이썬 언어로 개발된 가장 오래되고(2005년) 가장 성숙한 풀스택 프레임워크 중 하나로, 문서화된 다양한 솔루션이 광범위하다. flask는 파이썬의 마이크로 웹 프레임 워크로, 다양한 웹 엔진에 붙여서 쓸 수있고 가벼운 특징이 있다. React는 meta에서 개발한 오픈소스 자바스크립트 라이브러리로 프론트엔드를 위한 라이브러리이다. Ruby on rails는 Ruby기반의 백엔드 프레임워크이다. Angular는 React와 마찬가지로 프론트엔드 기반 프레임워크이다.
이제 위 6개의 프레임워크들을 언어 및 환경, 사용분야, 아키텍쳐, 학습곡선, 커뮤니티 및 생태계, 보안 관점에서 비교한 결과를 나타낸 표는 다음과 같다. 정성적 자료는 서로 상대적인 관점에서 높고 낮음을 비교하였다.

Spring은 유연하고 사용편의성이 있으며 큰 개발자 커뮤니티를 통해 정보 공유 및 에러 대응에 유연하게 반응 할 수있다. 하지만 복잡하고 방대한 라이브러리 및 모듈로 인해 초보 개발자가 처음 배우기에 난이도가 있다. Django는 상대적으로 오래된 역사를 가지고 있어 보안부터 ORM, 서드 파티와의 연계등 대부분의 기능이 갖추어져있으며, 마찬가지로 거대한 커뮤니티와 상세한 문서를 통해 정보를 빠르게 취득할 수있다. 또한 admin 페이지를 지원하여 administrator에게 편리한 기능을 제공한다. 하지만 상대적으로 사이즈가 크고 느린 속도로 제공되고, orm의 버젼이 오래돼 유연하지 않은 단점이 있다. React는 프론트엔드 전용 프레임워크로, ui수정과 재사용성이 좋으며, 코드 가독성이 높다. 또한 커뮤니티가 방대하다. 하지만 로딩시간이 길고, 데이터 모델링, 라우팅, Ajax등의 기능을 지원하지 않는다. Flask는 최소한의 셋팅을 제공하고 다양한 라이브러리를 통해 개발자의 입맛에 추가하는 방식으로 확장이 유용하며 개발 난이도가 쉽다. 하지만 비동기식 처리를 지원하지 않기 때문에 한번에 많은 트레픽을 처리하기 어렵다. Ruby on Rails는 아주 간단한 테스트 도구를 지원해주고, 배포하기 쉽고. ruby라는 간단한 언어를 사용한다는 장점이 있지만, 부팅속도가 상대적으로 느리고, 멀티 스레딩 체계를 지원하기 때문에 잘 다루지 못하는 개발자들은 퍼포먼스를 향상시킬 수 없다. 마지막으로 Angular는 React와 비교되는 프론트엔드 프레임워크로, 구글이 안정적인 지원을 해주기 때문에 유지 보수하기 쉽고, 상대적으로 라이트한 장점이 있지만, 리액트에 비교해서 배우기가 어렵다.
이렇게 6가지 프레임워크 모두 각자의 장단점이 있다. 기업들은 이러한 툴들을 자신들의 요구조건과 상황에 맞게 선택하여 사용한다. 다음은 국내 주요 it기업들의 프레임워크 및 툴 사용 현황이다. 모두 표시한 것이 아닌 이 보고서에서 다룬 6개 항목을 위주로 표시하였으며, 상위에 위치할 수록 주요 사용 툴이다.

결론

각각의 웹프레임워크는 장단점이 뚜렷하기 때문에 항상 좋을 수 없고 항상 나쁠 수도 없다. 또한 언급하지 않은 웹 프레임워크도 매우 많으며, 그중에서 차세대 프레임워크로 선정되기 시작한 것들도 많다. 웹프레임워크 성능비교 사이트인 웹사이트인 web framework bench mark의 2022년 7월 19일 기준 조사에 따르면, 현재 약 290개의 프레임워크가 있다고한다. 하지만 그 중에서 실제 기업에서 널리 사용되는 것은 많지 않기 때문에, 그중에서 장단점을 잘 비교해서 컴퓨터공학과 학생들이 선택해야 한다고 생각한다. 특히 목표 기업이 있는 학생이라면 그 기업의 기술 스택을 찾아보고 관련 프레임워크를 익힌다면 취업 준비에 도움이 될 것이다. 필자의 개인적인 생각으로는, 만약 목표 기업이 아직 없다면, 백엔드 개발자를 지향할 경우, 현재 보편적으로 가장 많이 쓰이는 Spring, 프론트엔드 개발자를 지향할 경우 React를 배우는 것이 어떨까.

참고문헌 및 레퍼런스

[1] 올인원 스프링 프레임워크, 김명호 저, 한빛 아카데미
[2] https://www.codenary.co.kr/company/detail/1246
[3] https://tech.toktokhan.dev/2021/06/28/python-web-framework/
[4]https://www.javatpoint.com/java-spring-pros-and-cons
[5] https://ppcexpo.com/blog/google-recommended-page-load-time

profile
computer science engineering

0개의 댓글