• [Flask] ๋งฅ m2 Flask ํ™˜๊ฒฝ์„ธํŒ…

    2024. 5. 29.

    by. @leeeun

    ๊ต๋‚ด AI ๋™์•„๋ฆฌ KHUDA ๋จธ์‹ ๋Ÿฌ๋‹ ๋ชจ๋ธ์„ ์„œ๋น™ํ•ด์•ผํ•  ์ผ์ด ์ƒ๊ฒจ์„œ,

    FAST API๋ž‘ FLASK์ค‘์— ๊ณ ๋ฏผ์„ ํ•˜๋‹ค ํ”Œ๋ผ์Šคํฌ๋Š” ๋ ˆํผ๋Ÿฐ์Šค๊ฐ€ ๋ณ„๋กœ ์—†๋‹ค๋Š” ๋ง์„ ์นœ๊ตฌํ•œํ…Œ ๋“ค์–ด

    ์•ˆ์ „ํ•˜๊ฒŒ ํ”Œ๋ผ์Šคํฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.

    ํ”Œ๋ผ์Šคํฌ๋ฅผ ์•„์˜ˆ.. ๋งŒ์ ธ๋ณธ ์ ์ด ์—†์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์„ธํŒ…๋ถ€ํ„ฐ ์‹œ์ž‘!!

     

    (์˜ˆ์ „์— ์จ๋†จ๋˜ ๊ฑด๋ฐ ์ด์ œ์•ผ ์˜ฎ๊ธฐ๋„น...)

     

     

    ํ”Œ๋ผ์Šคํฌ๋ž€?

    • ‘๋งˆ์ดํฌ๋กœ ์›น ํ”„๋ ˆ์ž„์›Œํฌ’ → ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์œ ์ง€ํ•˜๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅ
    • ๊ฐ„๊ฒฐํ•˜๋‹ค?
    from flask import Flask
    app = Flask(__name__)
    
    @app.route("/")
    def hello():
        return "Hello World!"
    
    if __name__ == "__main__":
        app.run()
    • ์ด ์ฝ”๋“œ ๋งŒ์œผ๋กœ ์›น ๋ธŒ๋ผ์šฐ์ €์— ‘Hello World’๋ฅผ ๋„์šธ ์ˆ˜ ์žˆ๋‹ค.
    • ํ™•์žฅ์„ฑ ์žˆ๋Š” ์„ค๊ณ„๋ž€?
      • ๋˜ ํ•˜๋‚˜์˜ ์œ ๋ช…ํ•œ ํŒŒ์ด์ฌ ์„œ๋ฒ„ ํ”„๋ ˆ์ž„์›Œํฌ์ธ ์žฅ๊ณ ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ์ž์ฒด์— ํผ๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํฌํ•จ → ๋ฉ์น˜๊ฐ€ ํฐ ํ”„๋ ˆ์ž„์›Œํฌ
      • ํ”Œ๋ผ์Šคํฌ๋Š” ํ”„๋ ˆ์ž„์›Œํฌ ์ž์ฒด์— ํฌํ•จx → ๊ฐ€๋ณ๋‹ค! ํ™•์žฅ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋ฅผ ๋ณด์™„
      • ์ฒ˜์Œ๋ถ€ํ„ฐ ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ํฌํ•จํ•˜๊ณ  ์žˆ์ง€ ์•Š๊ณ  ๊ทธ๋•Œ๊ทธ๋•Œ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•„์š”ํ•œ ํ™•์žฅ ๋ชจ๋“ˆ์„ ํฌํ•จํ•ด ๊ฐ€๋ฉฐ ๊ฐœ๋ฐœ

     

    ํŒŒ์ด์ฌ ๊ฐ€์ƒํ™˜๊ฒฝ

    ํ”Œ๋ผ์Šคํฌ๋ฅผ ์ด์šฉํ•œ ์›น ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์ค€๋น„ํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ด์ฌ ๊ฐ€์ƒ ํ™˜๊ฒฝ ๊ฐœ๋…์„ ์•Œ์•„์•ผ ํ•œ๋‹ค.

    ์šฐ๋ฆฌ๋Š” ํ”Œ๋ผ์Šคํฌ๋ฅผ ํŒŒ์ด์ฌ ๊ฐ€์ƒ ํ™˜๊ฒฝ์— ์„ค์น˜ํ•  ๊ฒƒ์ด๋‹ค.

    • ํŒŒ์ด์ฌ ๊ฐ€์ƒ ํ™˜๊ฒฝ → ํŒŒ์ด์ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ๋…๋ฆฝ๋œ ํ™˜๊ฒฝ ์ƒ์„ฑ
    • ex) ํŒŒ์ด์ฌ ๊ฐœ๋ฐœ์ž A๊ฐ€ 2๊ฐœ์˜ ํ”Œ๋ผ์Šคํฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ฐœ๋ฐœํ•˜๊ณ  ๊ด€๋ฆฌํ•  ๊ฒฝ์šฐ ๊ฐ๊ฐ ํ•„์š”ํ•œ ํ”Œ๋ผ์Šคํฌ์˜ ๋ฒ„์ „์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Œ → ์ด๋•Œ ํ•˜๋‚˜์˜ PC์— ์„œ๋กœ ๋‹ค๋ฅธ ๋ฒ„์ „์˜ ํ”Œ๋ผ์Šคํฌ๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ → ๊ฐ€์ƒ ํ™˜๊ฒฝ์„ ํ†ตํ•ด ํ•ด๊ฒฐ
    • ํ•˜๋‚˜์˜ PC์— ์„œ๋กœ ๋‹ค๋ฅธ ๋ฒ„์ „์˜ ํŒŒ์ด์ฌ๊ณผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ์„ค์น˜
    • ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋งŒ ์ง„ํ–‰ํ•  ๋•Œ์—๋Š” ํ•„์ˆ˜๋Š” ์•„๋‹˜

     

    ํ”Œ๋ผ์Šคํฌ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์„ธํŒ…

     

    ๋งฅ์— ํŒŒ์ด์ฌ ์„ค์น˜

    brew install python3

     

    ์ดํ›„ ์„ค์น˜๋œ ๊ฑฐ ํ™•์ธ -> python3 -V(๋Œ€๋ฌธ์ž v์ธ๊ฑฐ ์ฃผ์˜) or python3 --version

     

     

    ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑํ•  ํด๋”๋กœ ์ด๋™

     cd /Users/leeeunda/Desktop/Project

     

     

    ๊ฐ€์ƒํ™˜๊ฒฝ ์ƒ์„ฑ

     python3 -m venv checkhumate
    • ๋ณธ์ธ์ด ์„ค์ •ํ•˜๊ณ  ์‹ถ์€ ๊ฐ€์ƒํ™˜๊ฒฝ ์ด๋ฆ„์œผ๋กœ ์„ค์ •ํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค! (์—ฌ๊ธฐ์—์„œ๋Š” checkhumate)

     

    ํŒŒ์ด์ฌ ๊ฐ€์ƒํ™˜๊ฒฝ ํ™œ์„ฑํ™”

     source checkhumate/bin/activate

    • ์„ฑ๊ณต์ ์œผ๋กœ ๊ฐ€์ƒํ™˜๊ฒฝ์— ์ง„์ž…ํ•˜๋ฉด ์•ž์— ์„ค์ •ํ•œ ์ด๋ฆ„์ด ๋œฌ๋‹ค(์—ฌ๊ธฐ์„œ๋Š” checkhumate)

     

    ๊ฐ€์ƒํ™˜๊ฒฝ ์œ„์— flask ์„ค์น˜

    pip3 install flask
    
    • ๊ฐ€์ƒํ™˜๊ฒฝ ํ™œ์„ฑํ™” ์ƒํƒœ์—์„œ pip๋ฅผ ํ†ตํ•ด ์„ค์น˜ํ•˜๋ฉด ๊ทธ ๊ฐ€์ƒํ™˜๊ฒฝ์—๋งŒ ์ ์šฉ์ด ๋œ๋‹ค
    • ์•ž์œผ๋กœ ํด๋” ์•ˆ์—์„œ ํŒŒ์ด์ฌ ํŒŒ์ผ์„ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค

     

    ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

    ์ธํ„ฐ๋„ท ๊ธ€ ๋ณด๊ณ  ํ•œ๊ฑด๋ฐ ๊ทธ๋ƒฅ ๊ตณ์ด virtualenv์•ˆ ์จ๋„ ๋จ.

    ๋Œ“๊ธ€