본문 바로가기

Python

(21)
[Python] 파이썬 비동기 프로그래밍 asyncio Intro비동기 프로그래밍이란 무엇일까요? 작업이 완료될 때까지 기다리지 않고 잠재적으로 오래 실행되는 작업을 시작하여 해당 작업이 실행되는 동안에도 다른 이벤트에 응답할 수 있게 하는 기술입니다. 이러한 비동기 프로그래밍이 필요한 이유는  Server Request, Disk Read/Write 등 CPU작업 없이 결과를 기다리기 심심할 때(?) 그 사이에 CPU작업을 할 수 있도록 설계하기 위함입니다. 만약 Server와 통신하는 프로그램이 항상 동기적으로 작성하게 된다면 Server Request를 요청한 다음에 Response가 올때까지 아무 작업도 하지 못한 채 기다려야만 합니다. CPU는 놀고있는데 말이죠. 이렇게 외부 요청, Disk작업이 진행될 때에도 CPU가 멈추지 않고 계속 진행하도록 ..
[Python] - numba가 빠르긴 빠릅니다 IntroPython은 쉽고 직관적인 문법 덕분에 많은 개발자들에게 사랑받는 Interpreter 기반의 언어입니다. 하지만, 순수 Python 코드의 실행속도는 C/C++, Go, Rust같은 Compile 기반의 언어에 비해 상당히 느립니다. 이런 느린 실행속도는 대규모 데이터를 처리할 때 매우 불리하게 작용합니다.이러한 대규모 데이터를 빠르게 처리하기 위해서 Numpy를 사용하기도 합니다. Numpy는 C언어로 구현된 고성능 library로, Python만으로 구현된 코드와 비교하면 상당한 실행속도를 보입니다. 하지만 이는 Python의 자체 속도를 늘려주기 보다는 Numpy에서 제공하는 수학 공식과 관련된 함수들이 빠르게 동작하는 것에 의의가 있습니다. 본인이 작성한 알고리즘이 Numpy에서 지원..
[Python] only python vs numpy vs multiprocessing Intro저는 개발 업무를 진행하면서 주로 Python을 사용해왔지만, 최근에 Rust를 접하게 되면서 Rust에 대해 궁금한 점이 생겼습니다.  Application 영역에서 Rust는 Python과 비교했을 때 어떤 차이가 있을까요?   Python은 간결한 문법과 강력한 라이브러리 생태계를 갖춘 언어로, 이미 여러 응용 분야에서 널리 사용되고 있습니다. 예를 들면 아래와 같은 분야들이 있습니다. 각 분야에 제공되는 library도 다양합니다. Web Development : Django, Flask, FastAPIData Science : Numpy, Scikit-learn, Pandas, MatplotlibAI, ML : Tensorflow, Pytorch, KerasImage Processing..
[Redis] - Tutorial with Python *목차 - Intro - 환경설정 - 예제코드(Redis 기능 제외) - Redis 없이 기능 Test - Redis 적용 - Redis 적용 후 기능 Test - Outro Intro안녕하세요, 이번에는 Redis를 Python에서 활용하는 방법에 대해서 알아 보겠습니다. Redis 자체는 Python만을 위한 것이 아닌 In-memory 방식의 DBMS입니다. 그래서 category도 DB에 넣을까 하다가 Python에서 사용하는 Redis에 대한 문법이 주로 소개될 것 같아 Python Library로 하여 소개 드립니다. Redis는 다음과 같은 특징을 가지고 있습니다.In-memory : Redis는 data를 기본적으로 disk가 아닌 memory에 저장합니다.저장 관점 : MySQL, Pos..
[Alembic] - Tutorial * 목차 - Intro - 환경 구성 - 예제 코드 작성   1. local_main.py   2. server_main.py - Init Alembic   1. First Migration   2. Table 추가, 변경 후 migration   3. Migration 이전 version으로 rollback - Outro IntroAlembic은 Python용 SQLAlchemy 데이터베이스 툴킷과 함께 사용하기 위한 경량 데이터베이스 마이그레이션 도구입니다. Django에서는 자체적으로 DB의 schema 구조 변경에 따라 Migration file을 생성해서 적용하거나 이전 기록을 추적해서 rollback하는 기능이 있습니다. 하지만 Django 없이 Flask나 Fastapi을 통해 Web bac..
Django REST framework tutorial3 - Class-based Views * 목차 - Intro - Class 기반 View로 API 재작성 - Mixin 사용 - Class기반 Generic view 사용 *이전글 Django REST framework tutorial2 - Requests and Responses * 목차 - Intro - Code 작성 - URL에 format suffix 추가하기 - Test *이전글 Django REST framework tutorial1 - Serialization * 목차 - intro - Set Environment - Serialization을 위한 Model 작성 - Serializer class 만들기 - Serializer 사용 tyoon9781.tistory.com Intro function 기반 view가 아닌 clas..
[Django] REST framework tutorial - Requests and Responses * 목차- Intro- Code 작성- URL에 format suffix 추가하기- Test *이전글 Django REST framework tutorial1 - Serialization* 목차 - intro - Set Environment - Serialization을 위한 Model 작성 - Serializer class 만들기 - Serializer 사용하기 - ModelSerializers 사용하기 - Serializer를 Django View에서 활용하기 - Web API test Intro 이번 시간에는 djangotyoon9781.tistory.com Intro이전글에서는 단순히 Serializer를 소개하는 수준이었다면 이번 Tutorial에서는 rest framework의 핵심을 본격적으..
[Django] REST framework tutorial - Serialization * 목차- intro- Set Environment- Serialization을 위한 Model 작성- Serializer class 만들기- Serializer 사용하기- ModelSerializers 사용하기- Serializer를 Django View에서 활용하기- Web API test Intro이번 시간에는 django Rest framework tutorial을 진행해보도록 하겠습니다. django를 주로 backend로 사용하고 있는 저로써는 web api를 구축할 때 django rest framework를 안쓸 수가 없습니다. Rest framework는 아래와 같은 기능들이 포함됩니다. - 웹 브라우징 가능한 API- OAuth1a, OAuth2를 포함한 인증 정책- ORM, non-O..
[Flask] - Quickstart *목차1. A Minimal Application2. Debug mode3. Route4. Static Files5. Rendering Templates6. Accessing Request Data7. Redirect and Errors8. About Response9. Sessions10.Message Flashing11. Logging12. Hooking in WSGI Middleware13. Using Flask Extensions14. Deploying to a Web Server    * 본 문서는 Flask 공식 튜토리얼을 참조하였습니다.* linux ubuntu 22.04 LTS server, vscode 환경에서 진행하였습니다. Flask의 QuickStart 내용을 예제와 함께 다뤄보았습..
[Flask] - Tutorial * 목차1. Python virtual environment 설정2. Flask 설치3. Flask 파일 작성4. Flask 실행  * 본 문서는 Flask 공식 튜토리얼을 참조하였습니다.* linux ubuntu 22.04 LTS server, vscode 환경에서 진행하였습니다.Flask는 정말로 간단하게 Server를 만들 수 있습니다. 바로 시작하겠습니다. 0. python 설치저는 EC2 ToyServer에서 진행합니다. python3.10이 깔려 있습니다. 1. Python virtual environment 설정특별한 일이 없다면 시스템 python version과 같은 가상환경을 최신으로 맞춰줍시다.python -m venv .venv 저는 python3으로 해야 시스템python이 실행됩..