Python

1-8-2. 외부모듈

앞서 외부모듈 설치
pip install 모듈 이름으로 설치됩니다.

파이썬 도서들을 살펴보면
사이킷-런, 텐서플로우, 장고, 플라스크, 넘파이 등
책들을 살펴볼 수 있습니다.

pip 는 모듈 설치 / 설치된 모듈 제거 기능을 모두 지원합니다.


외부모듈 찾아보기

1. 책에서 추천한 모듈 사용하기

웹 프로그래밍 책

Django 또는 Flask
(한국에서는 JAVA 쪽으로 보는게 좋을거 같아요)

기계학습

scikit-learn, tensorflow, keras

데이터분석

pandas, matplotlib가 대표적이지만
데이터에 따라 매우 다양함

크롤러 개발

requests, Beautiful Soup, scrapy

영상분석

cv2 또는 pillow

python 커뮤니티에서 추천받기

페이스북, 디스코드 같은 여러가지 커뮤니티가 있습니다.
스터디 모집 등 마음 맞는
사람들과 함께 공부 해볼 기회를
가질 수 있도록 하는 것도 하나의 방법입니다.

구글에 검색해보기 or Chat-GPT에게 추천받기

개발에 필요한 내용들을
구글에 검색해보거나 혹은 만들어볼 것들을
chat-gpt에게 설명하고
이와 관련된 모듈을 추천받는 것도 좋습니다.
해당 모듈을 잘 다루고 사용하고 싶다면
공식홈페이지에서 관련 모델을 자세히 알 수 있습니다.

현재는 Chat-gpt를 통해서
이해가 잘 안가는 부분 역시도 많이 해결이 가능합니다.


BeautifulSoup 모듈

pip install beautifulsoup4
from urllib import request
from bs4 import BeautifulSoup

# urlopen() 함수로 전국 날씨를 읽기
target = request.urlopen("http://www.kma.go.kr/weather/forecast/mid-term-rss3.jsp?stnID=108")
# html <> 단위로 쪼갭니다. 
soup = BeautifulSoup(target, "html.parser")

# <location>단위를 불러들여서 <>이름을 선택합니다.
for location in soup.select("location"):
    print("도시", location.select_one("city").string)
    print("날씨", location.select_one("wf").string)
    print("최저기온", location.select_one("tmn").string)
    print("최고기온", location.select_one("tmx").string)
    print()

Flask 모듈

Django는 매우 다양한 기능을 제공하는 웹 개발 프레임워크이지만
flask는 작은 기능만 제공하는 웹 프레임워크입니다.
플라스크 역시도 외부 모듈이므로

pip install flask

flask 기본예제

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return"<h1>Hello Flask"</h1>"

@app.route()라고 되어 있는 부분은
데코레이터(decorator)라고 부릅니다.
데코레이터는 ‘꾸며주는 것’이라는 의미를 가지고 있으며
프로그래밍에서는 함수 데코레이터, 와 클래스 데코레이터로 나누어집니다.

데코레이터를 사용하면 functools라는 모듈이 사용 가능
데코레이터를 사용할 때 매개변수 등을
전달이 가능하여 반복구문이 많아질 경우
가독성도 높이고 유용하게 만들 수 있게 됩니다.

# 함수 데코레이션
def test(function):
    def wrapper():
        print("안녕하세요!")
        funciton()
        print("종료되었습니다.")
    return wrapper
# 데코레이션을 붙여서 함수 만들기
@test
def hello():
    print("hello")
# 함수 호출
hello()

출력결과는

이렇듯 다양한 외부모듈이 존재하며
필요한 외부모듈을 찾아서 설치하고 익히는 것도 중요합니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다