본문 바로가기
반응형

전체 글1084

Django - 메일 주소 표준화, 자동 교정하기 email 사용자 정보를 입력을 받는 경우 보통 개발자의 의도와 다르게 입력되는 경우가 많다. 특히 표준화된 포맷이 있는 경우 사용자의 입력을 믿기 보다는 교정을 해주는 것이 바람직하다. 여기에서는 django 에서 제공하는 기능으로 email address를 표준으로 자동 교정해주는 기능을 사용해보고자 한다. Email 주소의 표준은 도메인 주소를 소문자로 표기하는 것이라고 할 수 있겠다. 본기능은 UserManager에서 사용할 수 있으며, 다음과 같이 사용이 가능하다. """ Database Model """ from django.db import models from django.contrib.auth.models import BaseUserManager class UserManager(BaseUserMan.. 2024. 3. 14.
SQLAlchemy - Database Connection Pool 관리 Python에서 많이 활용하는 SQLAlchemy 기준으로 Database를 관리하는 방안에 대해서 정리해 보고자 한다. Python은 Database를 연결 할때 Connection Pool을 통해서 관리하는데, Connection Pool 은 데이터베이스로의 추가 요청이 필요할 때 기존 연결을 재사용하는 방법으로 연결시 사용되는 리소스를 절약하는 구조라고 할 수 있다. 이유는 TCP 연결은 새로운 연결시 기본적으로 TCP 3 Way-Handshake를 진행하는데 이 부분에 대한 자원 소모는 상당한 편이다. 그리고 요청이 많은 경우 기존 연결된 Connection을 활용하면 상당한 리소스를 절약할 수 있다. 다만, Database에 연결하는 Connection Pool은 연결 관리를 해주지 않을 경우,.. 2024. 3. 14.
Python - Random 정수/소수점/리스트 이해 Random 함수를 통해 숫자 랜덤을 쉽게 구현할 수 있다. 특정 범위 혹은 리스트에서 임의의 값을 선택해야 할 때 유용하므로 자주 사용된다. 여기에서는 가장 많이 사용되는 정수와 소수점, 리스트에 대해 알아보고자 한다. 리스트 - choice >>> import random >>> my_list = ['a', 'b', 'c'] >>> random.choice(my_list) 'c' 정수 - randint >>> import random >>> random.randint(1,10) 10 >>> random.randint(1,10) 5 소수점 - unifrom >>> import random >>> random.uniform(0.2, 0.7) 0.38972597256511843 >>> >>> random... 2024. 3. 14.
Python - Session, HTTPAdapter 효율적인 ConnectionPool 관리 파이썬에서 HTTP Session을 통해 빠르게 연결을 지속 사용할 수 있다. 여기에서는 실제 사용중 발생했던 내용에 대해 정리하여, 추후 HTTP Connection 이해를 하는데 도움이 되고자 한다. Session TCP 연결시 본격적으로 데이터를 요청하기전에 네트워크를 연결하는 작업을 진행하게 된다. 이를 TCP 3-Way Handshake 라고 하며, 매 데이터를 요청할 때 마다 새로 연결 작업을 한다는 것은 데이터 처리에 그만큼 시간이 더 걸리게된다. 이러한 부분을 개선해서 동작할 수 있는 구조가 최초 연결한 Session을 만든이후 만든 세션을 재사용하여 요청을 처리하는 구조이다. 이는 보통 HTTP Keep-alive 와 같은 구조로 Python 코드로는 다음과 같이 이용할 수 있다. imp.. 2024. 3. 14.
Python - 왜 좋을까?, 해야 하는 이유 Python 현재 2022년 직업 구인 공고 기준으로 소프트웨어 언어로 1위를 달리고 있다. 필자 역시 현재 Python을 이용하여 개발을 진행하고 있는데, Python이 왜 좋은지 간단히 정리해 본다. 1. 웹 개발 웹 언어 부분에 대해서 Python을 이용할 경우 다양한 프레임 워크를 제공하고 있어서 용도에 알맞게 개발을 용이하게 진행할 수 있다. 가장 가볍게 개발할 수 있는 Flask 부터 REST API 를 쉽게 개발 할 수 있는 FastAPI, Full-Stack 기반으로 프론트를 포함한 MVC 기반의 개발을 지원해주는 Django까지 본인의 환경에 맞춰서 선택한다면 적은 코드로도 휼륭한 결과를 만들 수 있을 것이다. 성능적인 부분 역시 상당한 부분 과거보다 개선되어 문제없이 사용이 가능하다. .. 2024. 3. 14.
VSCode - Python 라이브러리 자동 완성 안될 때 Django에서 자동완성이 되지 않는 상황에서 어떻게 해결할 수 있을까 정리해본다. 보통 이런 상황은 가상 환경이거나, Docker 환경등에서 발생할 가능성이 높다. 이유는 현재 VS Code에서 바라보는 Python 실행 환경이 django 라이브러리를 인식할 수 없는 상태이다. 즉 다중 환경으로 개발을 하는데 현재 VSCode의 환경에서는 사용이 불가능 하다는 얘기이다. 따라서 해결 방법으로는 2가지가 있다. 1. 현재 환경에 Django 환경과 동일하게 라이브러리를 설치해준다. 2. Django 를 개발하는 환경의 Python 경로를 입력한다. 첫번째 방법은 개발 환경마다 따로 구성할 필요가 없도록 구성하여 개발 편의성은 있지만, 라이브러리의 기능적 문제나 환경 문제등에 민감하지 않기 때문에 문제가.. 2024. 3. 14.
반응형