본문 바로가기
프로그래밍언어/Python

파이썬 시작하기 Python 언어와 제공하는 웹프레임워크 알아보기 1편

by by 앵과장 2021. 12. 12.
반응형

안녕하세요

앵과장입니다.

 

최근에 집에서 파이썬 공부를 가볍게 해보려고 어떤걸 만들어볼까 고민하다가

집에서 마눌님이 관리하고있는 여러 가계부나 정산처리 등을 좀더 손쉽게 편하게 사용할수 있도록

관리자 APP을 만들어보려고 합니다.

 

JAVA는 많이 해봤으니 Python으로 구현 예정입니다.

 

하다가 어!! 왜이러지 할수 있는 것들이 발생 할수도 있지만

시행착오와 여러 경험을 하면서 점진적으로 성장 해보도록 하겠습니다.

 

 

Python Framework

Python 언어 관련 Syntax는 가볍게 생활코딩이나 집에 사둔 책이 있어서 목차정도만 살펴보도록 하겠습니다.

 

언어라는게 모 거기서 거기 아니겠습니까?!

아닌가... 물론 하다보면 이거 머리로 생각나고 로직도 생각나는데 손으로 구현이

안되는 알고리즘 풀때 느낌이 확오긴합니다.

 

일단 스켈레톤을 구성하기 위해서는 맨땅에 첨부터 만들기에는 너무 험난하고 귀찮기 때문에 기능을 구현하기 쉬운 접근을 해보도록 하겠습니다.

물론 Framework 가 어떻게 동작하고 내부 구조 돌아가는 방법이나 라이프싸이클 여러가지 기능등 메뉴얼을 잘 읽어가면서 하는것이 정석이지만 우리 뭐 이케아 조립할때 메뉴얼 한땀한땀 읽어가며 만드는거 아니자나요?!! 

 

일단 막히면 보도록 하겠습니다.

개발자 구력이 있지 !! 우리에게는 구글이 있으니까요!!

 

일단 파이썬에서 제공하는 웹프레임워크 등에 대한 종류만 가볍게 알아보도록 하겠습니다.

이정도로 많이 있을줄 몰랐네요 Java는 Springboot로 평정했는데 말입니다.

 

파이썬 웹프레임워크 리스트

  1. Django - http://www.djangoproject.com/
  2. Flask - http://flask.pocoo.org
  3. Tornado - http://www.tornadoweb.org/
  4. FastAPI - https://fastapi.tiangolo.com/
  5. AIOHTTP - https://docs.aiohttp.org/
  6. Bottle - http://bottlepy.org
  7. Pyramid - http://www.pylonsproject.org/
  8. WebPy - http://webpy.org/
  9. Sanic - https://sanicframework.org/
  10. Web2py - http://www.web2py.com
  11. CherryPy - http://cherrypy.org/
  12. Falson - http://falconframework.org/
  13. Gnok - http://grok.zope.org
  14. Zope - http://zope.org
  15. TurboGrears - http://www.turbogears.org
  16. Quart - https://pgjones.gitlab.io/quart/
  17. Masonite - https://masoniteproject.com

일단 파이썬 을 시작하기 위해서 Google에 검색 해본결과 Django 라는 framework를 사용하는것 같습니다.

너무 많기 때문에 한국에서 Python으로 서비스 중인 플랫폼 회사들에 Framework 사용빈도수를 검색해보도록 하겠습니다.

여러 회사들이 Python을 사용하고 있는 그중에 그래도 이름을 좀 들어본 회사들 부터 나열해보도록 하겠습니다.

 

당근마켓, 브랜디, 화해(버드뷰), 놀이의발견, 원티드랩, 야나두, 요기요, 샌드버드, 에이블리

 

그럼 회사들 JD좀 볼까요?

 

 

자 어떠신가요?!

 

Python 을 하려면 Django, Flask, FastAPI 가 가장 많이 사용되고 있는것으로 확인이 됩니다.

3가지 Framework 에 대한 부분 가볍게 알아보고 가도록 하겠습니다.

 

Django (장고)

http://www.djangoproject.com

 

The web framework for perfectionists with deadlines | Django

Django Django makes it easier to build better web apps more quickly and with less code. Get started with Django

www.djangoproject.com

 

Django(/dʒæŋɡoʊ/ jang-goh/쟁고/장고)는 파이썬으로 만들어진 무료 오픈소스 웹 애플리케이션

프레임워크(web application framework)입니다.

쉽고 빠르게 웹사이트를 개발할 수 있도록 돕는 구성요소로 이루어진 웹 프레임워크랍니다.

웹사이트를 구축할 때, 비슷한 유형의 요소들이 항상 필요합니다. 회원가입, 로그인, 로그아웃과 같이 사용자 인증을 다루는 방법이나 웹사이트의 관리자 패널, 폼, 파일 업로드와 같은 것들 말이지요.

 

그런데 정말 다행이게도, 오래전에 어떤 웹 개발자들이 새로운 웹 사이트를 개발할 때 서로 비슷한 문제들에 직면한다는 것을 깨달았습니다. 그래서 팀을 조직했고요. 바로 사용할 수 있는 구성요소들을 갖춘 여러 프레임워크를 만들었답니다. 장고도 그중에 하나인 거죠.

다시 발명해야 하는 문제로부터 해방감을 주고 새로운 웹사이트를 개발할 때 뒤따르는 간접비용의 부담을 덜어준답니다.

 

flask

http://flask.pocoo.org

 

Welcome to Flask — Flask Documentation (2.0.x)

 

flask.palletsprojects.com

플라스크(Flask)는 2004년 오스트리아의 오픈소스 개발자 아르민 로나허(Armin Ronacher)가 만든 웹 프레임워크다. 플라스크는 아르민 로나허가 만우절에 장난삼아 던진 아이디어였는데 사람들의 관심이 높아져 서비스로 만들어졌다고 한다. 플라스크는 장고(Django)와 더불어 파이썬 웹 프레임워크의 양대 산맥으로 자리매김하고 있다.

 

플라스크는 많은 사람이 ‘마이크로 웹 프레임워크’라고 부른다. 여기서 ‘마이크로’는 ‘한 개의 파이썬 파일로 작성할 수 있다’ 또는 ‘기능이 부족하다’ 와 같은 의미가 아니라 프레임워크를 간결하게 유지하고 확장할 수 있도록 만들었다는 뜻이다.

FastAPI

https://fastapi.tiangolo.com/

 

FastAPI

FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for production Documentation: https://fastapi.tiangolo.com Source Code: https://github.com/tiangolo/fastapi FastAPI is a modern, fast (high-performance), web framework for buil

fastapi.tiangolo.com

 

FastAPI는 현대적이고, 빠르며(고성능), 파이썬 표준 타입 힌트에 기초한 Python3.6+의 API를 빌드하기 위한 웹 프레임워크입니다.

 

주요 특징으로:

  • 빠름: (Starlette과 Pydantic 덕분에) NodeJS  Go와 대등할 정도로 매우 높은 성능. 사용 가능한 가장 빠른 파이썬 프레임워크 중 하나.
  • 빠른 코드 작성: 약 200%에서 300%까지 기능 개발 속도 증가. *
  • 적은 버그: 사람(개발자)에 의한 에러 약 40% 감소. *
  • 직관적: 훌륭한 편집기 지원. 모든 곳에서 자동완성. 적은 디버깅 시간.
  • 쉬움: 쉽게 사용하고 배우도록 설계. 적은 문서 읽기 시간.
  • 짧음: 코드 중복 최소화. 각 매개변수 선언의 여러 기능. 적은 버그.
  • 견고함: 준비된 프로덕션 용 코드를 얻으세요. 자동 대화형 문서와 함께.
  • 표준 기반: API에 대한 (완전히 호환되는) 개방형 표준 기반: OpenAPI (이전에 Swagger로 알려졌던) 및 JSON 스키마.

 

오늘은 파이썬을 시작하기전에 우선 어떤 프레임워크들이 존재하는지 알아보았고 다음편부터는

기능을 위한 설치를 진행해보도록 하겠습니다.

 

파이썬 공부하면서 별도의 기본적인 자료형, 숫자처리, 변수 입력, 조건문, 반복문, 함수의활용, 예외처리, 모듈, 클래스 등은 스킵하도록 하겠습니다.

 

처음 개발해보는것도 아니구 하다가 막히면 그때그때 필요한 부분만 참고하는 형태로 진행하도록 하겠습니다.

그럼 다음 시간에 봐요