깔끔한 파이썬 탄탄한 백엔드 - 3장

Jajuna_99·2022년 6월 9일
0

3장 첫 API 개발 시작

  • Flask 소개 및 설치
  • API 기초적인 기능 구현(ping 엔드포인트 구현)
  • API 실행
  • 책에서는 가상 환경에서 실습을 진행하지만, 저는 가상 환경은 고려하지 않고 실습했습니다.

    Flask 소개 및 설치

    Flask는 파이썬으로 웹 애플리케이션(web application)을 구현할 때 사용되는 프레임워크(framework)다.

    플라스크의 특징

    • 대표적인 파이썬 프레임워크인 장고(Django)에 비해 가볍고 기능이 적어 빠르게 쉽게 배울 수 있다.
    • 가볍고 배우기 쉽지만 기능이 적거나 대규모 시스템에 적합하지 않는 프레임워크가 아니다. 직접 기능을 만들 수 있는 기능도 있다.
      프레임워크 : 특정 시스템을 구현하기 위해서 공통적으로 요구되는 기능들과 구조를 재사용이 가능하도록 구현해 놓은 뼈대.
      라이브러리 : 역시 특정 기능을 재사용이 가능하도록 구현해 놓은 코드. 차이점은 라이브러리는 개발자, 자신의 코드 안에서 원할 때 실행하게 할 수 있고, 프레임워크는 프레임워크가 개발자의 코드를 실행하는 개념이다. (개발자는 뼈대 안에서만 구현이 가능하다고 보면 편하다.)

    API 기초적인 기능 구현(ping 엔드포인트 구현)

    첫 API 로 ping 엔드포인트(endpoint)를 구현할 것 이다.

    *엔드포인트 : API 서버가 제공하는 통신 채널 or 접점 (클라이언트는 백엔드 API서버의 엔드포인트에 접속하는 형태로 통신한다.)

    우선 api를 만들 디렉토리를 생성

    mkdir ~/api
    cd ~/api

    생성한 디렉토리에서 'app.py' 라는 파이썬 파일을 만들고 열기

    ### 편하게 생성하고 들어가자
    vim app.py
    code app.py

    ping 엔드포인트 구현하기

    from flask import Flask		#1
    
    app = Flask(__name__)		#2
    
    @app.route("/ping", methods=['GET'])	#3
    def ping():			#4
    	return "pong"
    • 1 : Flask를 사용하기 위해서 Flask에서 Flask 클래스를 import 하기
    • 2 : Import한 Flask 클래스를 객체화(instantiate)시켜서 'app' 이라는 변수에 저장했다. 이 앱이 API 애플리케이션이 된다. (이 변수에 API 설정, 엔트포이트들 추가 작업을 하면 웹 애플리케이션이 된다.)
    • 3 : Flask의 route 데코레이터(decorator, 백엔드 쬐금만 해보면 익숙한 기능!)를 사용하여 엔드포인트를 등록. 이 경우에는 ping 함수를 엔드포인트 함수로 등록했고, 고유 주소는 "ping"이며 HTTP 메소드(method)는 GET으로 설정 되어 등록했다.
    • 4 : route 데코레이터를 통해 엔드포인트로 등록된 'ping' 함수를 정의했다. 이 엔드포인트는 'pong' 텍스트(스트링, String)만 리턴한다.
      Flask가 알아서 HTTP 응답(resonse)을 변환하여 해당 HTTP 요청(request)을 보낸 클라이언트에게 전송한다.

    API 실행

    해당 파일 경로에 터미널에서 다음과 같이 실행

    FLASK_APP=app.py FLASK_DEBUG=1 flask run
    • FLASK_APP 환경 변수에는 Flask 애플리케이션을 실행시킬 파일을 지정해 주면 된다. (이 경우에는 app.py)
      *파일 경로 조심하자! 디렉터리를 못 찾을 수도 있다!
    • FLASK_DEBUG 환경 변수를 1로 지정하면 디버그(debug)모드 활성화, 0으로 지정하면 비활성화다.
    • 실행되면 localhost IP 주소에서 실행되고 있을것이라고 터미널에서 알려준다.

    httpie

    터미널 환경에서 HTTP 요청을 보낼 수 있게 해주는 용도로 주로 사용되는 툴(tool)

    httpie 설치하기!
    편한 방식으로 설치하자!
    
    brew install httpie
    or
    sudo apt install httpie

    설치 후 다음 명령어를 설치하자

    http -v GET http://localhost:5000/ping
    • http - 이 명령어로 HTTP 요청을 터미널에서 보낼 수 있게 된다.
    • -v : 이 옵션은 'verbose' 옵션으로 해당 HTTP 요청과 응답에 관한 추가적인 정보를 출력한다.
    • GET : HTTP 메소드를 'GET'으로 지정.
    • IP 주소 : 해당 HTTP 요청이 전송되어야 할 엔드포인트의 고유 주소를 지정한 것

    명령어가 성공적을 실행됐다면 'ping' 요청과 'pong' 응답, 그리고 여러가지 http 정보들을 볼 수 있을 것이다.

    3장 요약

    파이썬의 대표격 프레임워크인 Flask를 알아보고 Flask를 통해 기초 API를 만들어 봤습니다.

    httpie 사이트
    https://httpie.io/

    profile
    Learning bunch, mostly computer and language

    0개의 댓글