상세 컨텐츠

본문 제목

Web Framework -1

프로그래밍/Web

by wlwwlwwlw 2021. 11. 16. 11:06

본문

Framework 란?

 프레임워크란 소프트웨어의 구체적인 부분에 해당하는 설계와 구현을 재사용이 가능하도록 일련의 형태로 클래스들을 제공하는 것이다. 프레임워크(Framework)는 사전적인 의미로 뼈대’, ‘구조라는 뜻을 가지며 웹 사이트 개발에 있어서 틀과 구조를 제공한다. 웹 사이트 개발에 공통적이고 중복적인 작업들에 대해 미리 로직을 정의하고 코드를 구조화시킨 다음, 누구나 쉽게 가져다 쓸 수 있도록 만들어놓은 것이 프레임워크이다.  

 

Framework의 필요성

Productivity(생산성)

웹 개발에 공통적으로 필요한 기능 혹은 라이브러리를 제공해 주기 때문에 웹사이트를 처음부터 구현하는 것보다는 개발 시간이 줄어들고 생산성이 향상된다.  

 

Consistency(일관성)

프로젝트를 같이 수행하는 개발자들이 각기 다른 언어와 코딩 방법으로 코드의 일관성이 없어지며, 유지 보수 또한 어려워진다. 프레임워크는 개발에 필요한 각 과정들의 기본 규격을 제공하기 때문에 여러 개발자들이 같은 틀과 규칙 아래에서 개발할 수 있게 된다.

 

Perfection(완성도)

프로젝트에서 자주 사용하는 함수를 직접 개발하는 경우 버그가 생기기 쉬우며, 나중에는 유지 보의 대상이 된다. 프레임워크에서 제공하는 기능들은 이미 수년 동안 검증된 코드이며, 개발자들이를 사용함으로써 오류가 적은 완성도 높은 코드를 짤 수 있다.

 

Frontend & Backend

Frontend

사용자가 직접적으로 웹 사이트에서 보게 되는 레이아웃을 가진 인터페이스 영역을 말한다. 웹 사이트에서 주소 입력창, 레이아웃, 매끄러운 화면 연결 등이 프론트엔드에 해당된다. 

 

Backend

백엔드는 프론트엔드와 반대로 사용자의 눈에 보이지 않는 서버와 DB를 관리하는 기술이다. 프론트엔드에서사용자가 입력한 데이터를 저장, 관리하는 역할을 한다.

 

 Frontend Framework 

Angular TypeScript
React JavaScript
Vue.js JavaScript

 

Backend Framework

Sprint Java
Django Python
Express JavaScript
Flask Python

 

Web Framework 동향 

towardsdatascience Post 참조

 

2021 StackOverflow 웹 프레임워크 순위 설문조사 결과

 

 

2018-2021 StackOverflow 웹 프레임워크 동향

 위 그래프는 2018~2021년도 동안 StackOverflow에서 실시한 설문조사 데이터를 기반으로 작성하였다. 2018년도에는 Agular가 가장 많이 사용하는 웹 프레임워크이었던 반면, 2021년도에 Agular는 3위로 밀려나고 React.js가 가장 많이 사용되었으며 Express가 그 뒤를 이었다.

 

웹 프레임워크 선택 기준

인기도 및 커뮤니티 구조

 많은 사람들이 사용하고 인기 있는 프레임워크일수록 새로운 아이디어, 플러그인의 품질 등 업데이트될 가능성이 더 높다. 또한 질문에 대한 답변을 쉽게 찾고 도움을 받을 수 있다.

 

지속 가능성

프레임워크를 선택하기 전에 프로젝트를 진행하는 기간 동안 계속 사용 가능한지 확인이 필요하다.

 

보안성

어떤 응용 프로그램이던 잠재적으로 취약점을 가지고 있다. 위험을 최소화하려면 보안 기능을 보장할 수 있는 프레임워크를 선택하는 것이 좋다. (: cross-site-sripting)

 

라이선스

프레임워크로 개발을 시작하기 전에 프레임워크가 배포되는 라이선스의 종류를 확인해야 한다. 대부분의 라이선스는 작업하기에 자유로운 편이며, 상용 애플리케이션을 만들 수 있지만 일부 라이선스는 관대하지 않을 수 있다. 따라서 상업적 배포가 허용되는지 확인해야 한다.

 

학습 난이도

모든 프레임워크에는 이름 지정 규칙, 디렉토리 구조 및 기타 사항이 포함되어 있다. 일부 프레임워크는 이와 관련하여 유연하지만 다른 프레임워크는 아주 작은 실수에도 오류를 반환하는 등 엄격한 규칙을 필요로 할 수 있다. 프레임워크를 선택할 때 학습 난이도가 가능한 작은 프레임워크를 선택하는 것이 업무 수행 시간을 줄일 수 있다.

 

Documentation

 설명이 잘 되어있고 자세한 문서는 더 많은 사용자들이 입문할 수 있도록 도와준다. 조잡하고 혼란스러운 문서를 사용하게 되면 선택하기 어렵다. 많은 예제, 샘플 코드, 기사 및 튜토리얼 등이 포함된 문서가 있는 프레임워크를 찾는 것이 중요하다.

 

확장성

쉽고 간단하게 확장할 수 있는 프레임워크를 선택해야 한다. 다른 애플리케이션에서 재사용 하기에 적합하도록 구성 요소를 변경하는 작업이 어렵지 않아야 한다. 사용자가 기능을 변경 또는 추가해야할 때 처음부터 만들 시간이 없는 경우가 많은데 이때는 선택할 수 있는 확장 기능이 많으면 시간을 절약할 수 있다. 확장의 수가 아니라 확장의 품질이 중요하다.

 

'프로그래밍 > Web' 카테고리의 다른 글

Web Framework-2  (0) 2021.11.16

관련글 더보기