TIL💡/Python(2)
-
[Python] 파이썬 웹서버 & Flask vs. FastAPI
평소에 Flask보다 FastAPI가 더욱 성능이 좋다는 것은 알고 있는데, 왜 그럴까? 왜냐하면 Flask가 WSGI 기반임에 불구하고, FastAPI는 ASGI 기반으로 개발되었기 때문이다. 우선 둘의 차이점을 알아보기 이전에, Spring 계열에서는 웹서비스를 Tomcat 등의 WAS로 배포를 하는데, 공교롭게도 Python에서는 이러한 WAS를 제공하지 않는다. 그렇다면 어떻게 웹서버와 Python 애플리케이션을 연결하는 것일까? CGI(Common Gateway Interface)와 FastCGI CGI를 이용하면 웹서버에 들어온 요청으로 파이썬 프로그램을 실행하고, 그 결과를 각각의 브라우저로 보여줄 수 있게 된다. 과거에는 정적 HTML 파일 하나만 가지고 웹 서비스를 하였기 때문에 CGI가..
2022.10.26 -
[Python] @classmethod와 @staticmethod의 차이
@classmethod 클래스 메서드는 인스턴스 메서드가 인스턴스를 받는 것처럼 클래스를 첫 번째 인수로 수신한다.(cls) 클래스 메서드는 C++, Java의 static method와 다르다. 다른 이유는 아래에 나온다. @staticmethod 메서드를 정적 메서드로 변환시켜준다. 클래스 바디에 함수에 대한 참조가 필요하고, 인스턴스 메서드로 자동 변환하지 않는 경우에 사용 얼핏 봐서는 둘의 차이가 극명하지 않다. 둘은 상속이 일어날 때 확실히 차이가 있다. class Person: default= "아빠" def __init__(self): self.data = self.default @classmethod def class_person(cls): return cls() @staticmethod ..
2022.10.20