dev/Python

파이썬으로 회원 가입 및 로그인 API 서버 구현하기 - 1

dev포포 2021. 11. 12. 20:21

저는 파이썬을 사용해본 적이 없습니다. 많은 리서치를 통해 해당 서비스를 구현해 볼 겁니다.

 

1. 파이썬 설치 

2. 프레임워크 선택 및 설치

3. 서비스 구현

 

위 3가지를 목표로 작업할 예정입니다.

 

1. 파이썬 설치와 프레임워크 선택을 같이 하도록 하겠습니다.

 

같이 하는 이유는 프레임워크에서 명시한 파이썬 버전과 일치시키려는 아주 단순한 이유입니다. 

프레임워크를 선정하는 데 있어 좋은 글이 있어 링크 올립니다.

 

https://dingrr.com/blog/post/%EC%96%B8%EC%A0%9C-django%EB%A5%BC-%EC%96%B8%EC%A0%9C-flask%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%B4%EC%95%BC-%ED%95%A0%EA%B9%8C

 

언제 Django를, 언제 Flask를 사용해야 할까? | 블로그 | 딩그르르

언제 Django를, 언제 Flask를 사용해야 할까?

dingrr.com

 

위 글은 flask와 django의 비교 글입니다.

 

저는 개인적으로 아무것도 모르는 상태이니 공부용으로 flask로 하나하나 개발해보도록 하겠습니다.

 

공식 문서는 https://flask.palletsprojects.com/en/2.0.x/

 

Welcome to Flask — Flask Documentation (2.0.x)

 

flask.palletsprojects.com

참고하시면 되지만

 

한글화 된 문서가 있네요 ^^ 저는 이걸 보고 작업하도록 하겠습니다.

https://flask-docs-kr.readthedocs.io/ko/latest/

 

Flask의 세계에 오신것을 환영합니다. — Flask 0.11-dev documentation

© Copyright 2012, Armin Ronacher.

flask-docs-kr.readthedocs.io

 

아래 문서 내용을 따라가다 보면 virtualenv설치 후 플라스크 설치 방법이 나오는데 약간 nvm 같은 느낌이려나 싶다.

설치하기:  https://flask-docs-kr.readthedocs.io/ko/latest/installation.html

 

설치하기 — Flask 0.11-dev documentation

Flask는 Werkzeug 와 Jinja2 라이브러리에 의존적이다. Werkzeug는 웹어플리케이션과 다양한 서버 사이의 개발과 배포를 위한 표준 파이썬 인터페이스인 WSGI를 구현한 툴킷이다. Jinja2 는 HTML 템플릿을 렌

flask-docs-kr.readthedocs.io

 

아쉽게도 플라스크를 설치하고 나서 글을 쓰다 보니 자세하게 공유하기가 어렵다... 줸장..

 

빠르게 시작하기를 살펴보자

시작하기:  https://flask-docs-kr.readthedocs.io/ko/latest/quickstart.html

 

빠르게 시작하기 — Flask 0.11-dev documentation

웹 어플리케이션에 있어서 클라이언트에서 서버로 보내는 데이타를 처리하는 것은 중요한 일이다. Flask에서 이 정보는 글로벌한 request 객체에 의해 제공된다. 여러분이 파이썬 경험이 있다면,

flask-docs-kr.readthedocs.io

 

가장 유명한 express와 비교해보면

express:

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
  res.send('Hello World!')
})

app.listen(port, () => {
  console.log(`Example app listening at http://localhost:${port}`)
})

flask:

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run(debug=True)

둘 다 짧아서 좋다...

 

상단에 디버그 true 하면 코드 블록 수정 후 저장 시 자동으로 재시작된다.

노드 js로 저거 하려면 nodemon 깔고 패키지 수정하고 이런 귀찮음이 동반되는데 인상적이다.

 

예제를 천천히 읽어보면 상당히 재밌는 내용이 많다. 

한번 쭉 읽어보고 다음 편부터 실제 인증 관련된 작업 내용을 올려야겠다.