192일차 백엔드 Flask - 정리 5

192일차 백엔드 Flask - 정리 5

// ======= 웹개발 프레임워크 ======= //

백엔드 프레임워크 (정적 사이트 제작 가능 = 전부 가져옴)

Python : Django, Flask Java : Spring

프론트엔드 프레임워크 (SPA = 필요한 부분만 가져옴)

언어 : html=뼈대, css=치장, javascript=동적움직임

React : 가장 많이 쓰이는 기술 Vue.js : 가장 힙한 기술 Angular : 완성도가 높고 구글이라는 백그라운드가 있지만, 뭐가 좋은지는 잘 모르겠는 기술

React와 Vue.js가 양대산맥

React의 경우, Learning Curve를 고려해야 하기 때문에, 바닐라 스크립트나 jQuery에만 익숙한 개발자가 빨리 결과물을 만들어내야 한다면, Vue.js가 더 적합할 것으로 보인다.

// ======= Django vs Flask ======= //

인스타그램은 CRUD이다. 사진을 Update, Read하고, 댓글을 Create 하거나 Delete한다. Django는 CRUD를 위한 최선의 옵션이다. Django는 거대한 상자와 같아서, 그 안을 뒤지면서 필요없는 건 버리고, 나에게 필요한 것만 남겨놓고 작업을 해야 한다.

Django : Full Stack Web Framework - 기능이 뛰어나지만 복잡

Flask : 가볍고 확장 가능한 Web Framework - 매우 단순하고 가볍

Django

ORM(Object Realtional Mapping) 기능이 내장

=> 객체 관계 매핑이라고도 하며, DB 시스템과 데이터 모델 클래스를 연결하는 역할을 한다. ORM을 이용해 다양한 DB를 지원하고 있으며, SQL 의존적인 코드를 벗어나 생산적인 코딩이 가능하게 되어 유지보수가 편하다. 자동으로 관리자 화면을 구성

=> DB에 대한 관리 기능을 위하여 프로젝트를 시작하는 시점에 관리자 화면을 제공한다. 이 관리자 화면을 이용하여 Web Application에서 사용하는 데이터들을 쉽게 생성하거나 변경이 가능하다.

Flask

10줄도 안되는 코드로 웹 서버를 구동할 수 있다.

=> 최소한의 패키지로 구성되어 있기 때문에, 간단한 것은 구현이 쉽지만 상용 웹 서버를 구현할 때는 단순하지만은 않다. ORM 기능이 제공되지 않는다.

=> 개발자가 직접 SQLAlchemy 등 패키지를 설치하여 사용할 수 있다.

Flask는 최소한의 기능만을 제공하기 때문에, DB 연결 외에도 양식 처리, 보안, 인증 등 개발자가 직접 처리해주어야 한다.

Django는 탄탄한 Framework 안에서 다른 설계 패턴으로 벗어날 수 없다는 점

Flask는 직접 새로운 Framework로 설계할 수 있지만, 신경써야할 게 많다는 점

Django는 게시판 같은 복잡한 구조의 웹을 구성하기에는 좋지만, 단순한 REST API서버를 만들기에는 Flask가 더 효율적으로 보인다.

// ======= 배포 ======= //

현업에서는 클라우드 서비스(AWS)를 사용하여, 리눅스 기반 서버에 Docker 기반 배포가 가장 일반적인 형태이다. 이를 위해서는 AWS 사용법, 리눅스 사용법, Docker 사용법을 익혀야 한다. 이외에 현업에서는 AWS기능과 파이썬을 사용해 자동 배포 기능을 구현한다.

AWS에서 실제 배포하는 기술은 리눅스, AWS 등에 매우 익숙해야 하며, 각 환경에 따라 문제 발생시에도 각 문제사항을 스스로 해결할 수 있는 기술력을 갖춘 상태에서만 배포가 가능하다.

from http://kwonputer.tistory.com/215 by ccl(A) rewrite - 2021-03-23 20:00:11