본문 바로가기

Python5

[FastAPI] FastAPI란 Python으로 Application Server를 구축할 때 사람들이 많이 이용하는 프레임워크에는 3가지가 있다. 무겁지만 오랜 기간 이용되어 큰 커뮤니티와 다양한 레퍼런스를 가지고 있어서 빠르게 개발이 가능한 Django, 간결하고 가벼운 구조를 가지고 있어서 마이크로 서비스 개발을 빠르게 할 수 있는 Flask, 비동기 처리와 데이터 검증에 최적화되어 타 프레임워크보다 높은 성능을 가진 FastAPI가 있는데, 그중에서 FastAPI에 대하여 알아볼 것이다. FastAPI 공식 홈페이지 : https://fastapi.tiangolo.com/ko/ FastAPI FastAPI framework, high performance, easy to learn, fast to code, ready for p.. 2023. 10. 6.
[Python] "_" in Python (Underbar) Python의 Code는 PEP-8에 의거하여 작성하는 것을 권장하고 Snake_case를 기반으로 표기를 하는데 Python 내에서도 Underbar(_)는 다양한 용도로 사용한다. 다음은 용도에 대하여 분류하였다. 1. Interpreter의 마지막 값의 대용으로 사용 Python에서 연산을 마쳤을 때 Underbar는 Interpreter에서 마지막으로 출력한 값으로 사용할 수 있다. python3 >>> 1+1 2 >>> _+1 3 >>> _*3 9 2. 버리는 값 Python에서 Code를 입력할 때 버리는 값으로 Underbar를 많이 사용한다. 하지만 기능적으로 의미가 있는 것은 아니고 버리는 값이라고 명시적으로 표기해 주는 것이다. Example : one = "*" two = "**" f.. 2022. 10. 30.
[Python] 생성자(__init__)와 소멸자(__del__) Definition : 생성자, 소멸자는 객체의 처음과 끝을 장식하는 호출 함수 1. 생성자(Constructor) 파이썬은 클래스(Class)를 만들고 인스턴스(Instance)가 생성이 될 때 자동으로 생성자(__init__)가 같이 생성된다. Default : class New : def __init__(self): pass 클래스 내부적으로 항상 존재하나 별도의 기능이 있는 것이 아니기에 필요에 따라 개발자가 기능을 부여할 수 있다. Example : class Example : def __init__ (self, test1, test2): print(f"{test1} is printed") print(f"{test2} is printed") # Create new instance instance.. 2022. 10. 21.
[Python] GIL(Global Interpreter Lock) 파이썬에는 GIL(Global Interpreter Lock)이라는 특수한 개념이 존재하고 있다. 위의 사진에서 보는 것처럼 프로세스를 작업할 때 CPU의 한 개 쓰레드에 객체 접근 권한과 가용 자원을 전부 할당하고 타 쓰레드에서는 접근을 하지 못하도록 Lock(Mutex)을 하는 것이다. 왜 파이썬에 GIL이 존재하는가? GIL의 존재 이유를 알아보기 앞서 파이썬의 메모리 관리 체계를 알아 볼 필요가 있다. 파이썬은 OOP 기반으로 파이썬 내에는 객체들이 존재하고 이들은 별도로 참조 횟수(Reference Count)를 저장하고 있다. 메모리에 저장된 객체를 직접 삭제하는게 아니라면 보통 참조 횟수를 이용하여 참조 횟수가 0이 되었을 때 파이썬 내부의 GC(Garbage Collector)가 메모리에 .. 2022. 10. 15.
[Python] 파이썬이란 '비단뱀'이라는 어원을 가지고 있는 파이썬은 C 언어를 기반으로 만들어진 인터프리터 방식의 고급 프로그래밍 언어(High level language)이다. * 인터프리터(Interpreter) : 프로그램을 한 단계씩 기계어로 해석하여 실행하는 방식 * 고급 프로그래밍 언어 : 인간이 이해하기 쉽게 만들어 프로그래밍하기 편리하게 만들어진 언어 Features : 직관적이고 이해도가 높아 학습에 용이 내장된 라이브러리가 많아 편리 인터프리터 방식을 기반으로 동작하여 속도가 느림 OOP(Object-oriented programming) Code : print("Hello World!") 2022. 10. 13.