주요 프레임워크 비교분석
Python+ django | Python + Flask | NodeJS + Express | JAVA + Spring | |
장점 | 1. batteries-included (외부패키지 임포트 할 필요 없이 장고에서 필요한 모든 기능을 제공한다.) 2. 파이썬의 빅데이터 라이브러리 활용 가능 3. 빠른 프로토타입 구축이 가능하다. 4. MVC 아키텍처를 따른다. 5. 다양한 보안 기능을 내장하고 있다. 6. ORM |
1. 자유도가 높다. 2. 파이썬의 빅데이터 라이브러리 활용 가능 |
1. 자유도(확장성)가 높다. 2. 프론트와 동일한 언어를 사용한다 (JS) - 추가언어학습이 필요없이 프론트와 백엔드에 대한 접근이 가능하다. 3. 많은 양의 트래픽과 데이터를 처리할 수 있다. 4. 미들웨어 기능 지원 5. 실시간 서비스 작성에 유리하다. 6. 내장된 오류처리 메커니즘. 7. npm을 활용한 간편한 모듈 |
대기업 취업에 가장 용이 (시장수요 많다.)(특히 정부표준 프레임워크라서 정부산업과 관련 일자리가 많다) 고성능 서비스를 작성할 수 있다. (대량 트래픽 처리에 가장 유리) |
단점 | 1. 장고의 엄격한 규칙에 따라야한다. 2. 일단 서비스가 생성된 후에 수정하는 것이 어렵다. |
1. 작은 취업시장 |
자바언어의 복잡성 (학습곡선이 완만하다) |
|
어디에 써야하나? | 1. 기업단위(Enterprise size) 서비스 2. CRUD 서비스 |
소규모~중간급 서비스 | 커스터미아징이 많이 필요한 경우 많은 API와 연결해야 하는 경우 |
대형 서비스 |
만들어진 서비스 | Instagram 워싱턴포스트 모질라 |
(Netflix??) |
Uber Paypal |
TOSS를 포함한 대부분의 대기업 서비스(특히 한국) |
참고1) Most Popular Backend Frameworks in 2023 [What to Choose] (acropolium.com)
참고2) 무엇을 언제 써야할까? Node JS vs Django! - YouTube
참고3 강추강추) Back-end Framework 선정 기준 (velog.io)
주워들은 이야기
- Django를 이용하면은 빠르게 구축은 가능하지만, 너무 앞서나간 *추상화로 인해 웹에 대해 학습할 기회가 없이 구현만 잘하게 될 수 있으므로 Flask로 입문을 추천하는 글을 보았다. ( *프레임워크의 목적은 기능구현에 필요한 신뢰도 높은 코드를 미리 작성해놓음으로써 개별 개발자의 시간을 절약해주는 것. 즉, 미리 다 만들어져있어 왜 이렇게 구동되는지 고민해볼 시간이 안 생긴다는 것)
유념해야 할 것
1. 서비스의 형태에 따라 강점을 가진 프레임워크가 있는 것이지 어떤 프레임워크가 다른 것에 비해 절대적 우위를 가지지는 않는다.
2. 모든 프레임워크는 기본적으로 모든 서비스를 구축할 수 있다. 기본 내용은 같은데 언어가 다른 것 뿐
나의 결정
- 나는 파이썬에 굉장히 친숙하지만 (pandas, numpy, matplotlib, ... 못 잃어) 웹에 대해 처음 배울때 기초를 다지고 싶다는 생각이 있다.
- 그래서 Flask로 백엔드에 입문하려고 하는데 Flask를 활용해서 웹에 대해서 A-Z까지 알려주는 강의를 쉽게 찾을 수가 없다.
- 우선 사람인 기준 NODEJS 검색결과는 800개, 이에 비해 FLASK 는 100개, Django는 200개이다.
- JAVASCRIPT는 어쨋든 프론트엔드에서 사용해야 하는데, 나의 JS 숙련도를 조금 더 높이고 싶은 생각도 있다.
- 그리고 이미 파이썬 해봤다고 파이썬에 머무르고 싶은데 이게 조금 더 하면은 완전히 파이썬에 고착화되어버릴까봐. 무섭다.
- 【한글자막】 100일 코딩 챌린지 - Web Development 부트캠프 | Udemy 해당 강의를 결제했는데 (프론트엔드부분까지 완강) 강의내용에 만족하기도 하고, 다른 나의 임의대로 FLASK강의를 붙이면은 전체 커버해야하는 내용에서 공백이 생길까봐 무섭다. (애초에 A-Z까지 다뤄줬으면 하는 마음으로 강의시간이 긴 강의를 골랐다.)
- 그래서 ! 1) 안쓰게 될지도 모르는 nodejs를 배우느라 제품출시의 지연이라는 비용을 치루고서, nodeJS로 백엔드 입문결정