본문 바로가기
반응형

전체 글855

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.
Python/Django - 리스트 마지막 콤마?! Python 코드를 보다보면 리스트를 작성할 때 마지막에 콤마를 찍는 경우를 볼 수 있다. 필자는 콤마를 찍지 않는 편인데, 콤마를 찍는 사람들 보고 이상하게 느껴졌다. 콤마를 왜 찍는 거지? 실제 동작은 콤마를 찍으도 찍지 않아도, 정상적으로 동작한다. 얘기를 들어보면, 단순하다. 습관이라는 것이다. 그리고 Github 이나 여러 개발자 여러 개발자들이 콤마를 찍는 습관이 널리 퍼진 것이라고 할 수 있다. 요약해보면, List 새로 추가할 때 기존 콤마를 고려하지 않기 위해 미리 마침표 처럼 찍는 것 깔끔히 마무리하기 위해서 마침표 처럼 찍는 것으로 보인다. 2024. 3. 14.
Django - django-admin을 찾지 못할때 django 패키지를 설치했는데 django-admin을 찾지 못한다면, path 경로에 문제가 있을 수 있다. 먼저 자신이 설치한 pip 혹은 pip3의 버전 정보를 통해 python이 동작한 디렉토리를 확인한다. pip -version 확인해보면 아래와 같이 현재 동작한 경로 정보를 알 수 있다. 패키지에서 사용하는 파일은 윈도우 기준으로 위 디렉토리 하위에 LocalCache\local-packages\Python버전 명\Scripts 위치한다. 해당 경로로 이동하여 LocalCache 디렉토리가 있는지 확인한후 따라 들어가도록 하자. PS C:\Users\Han\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0> l.. 2024. 3. 14.
웹게임 - 아랑전설 3 아랑전설 2로부터 3년 후, 사우스타운은 다시금 혼란에 빠진다. 죽은 줄 알았던 기스 하워드가 부활하여 새로운 음모를 꾸미고 있었던 것이다. 주인공 테리 보가드는 기스의 야망을 막기 위해 다시 한번 싸움에 나선다는 스토리를 가지고 있다. 아랑전설 3은 1992년에 SNK에서 개발 및 출시되었고, 2012년에는 플레이스테이션 3, 엑스박스 360, 윈도우용으로 리메이크 버전이 출시되었다. 게임 방법 1. 시작 : Load후 'PLAY NOW' 버튼 클릭 2. 동전 : SHIFT 3. 시작 : ENTER 4. 조작키 이동 : 방향키 A : Z B : X C : A D : S 2024. 3. 14.
웹게임 - 데이트 퀴즈 고고! 데이트 퀴즈 고고: 1990년대 추억을 깨우는 달콤씁쓸한 러브스토리 한글 1998년 세미콤에서 출시한 데이트 퀴즈 고고는 오락실을 장악했던 최고의 퀴즈 게임입니다. 풋풋한 고등학생 주인공이 세 명의 매력적인 여고생 중 한 명과 데이트를 하며 펼치는 이야기는 당시 많은 청소년들의 마음을 사로잡았습니다. 1. 운명적인 만남 게임 시작과 동시에 플레이어는 미미, 아라, 시은이라는 세 명의 여고생 중 한 명을 선택하게 됩니다. 선택은 단순히 외모만 보고 하는 것이 아니라, 각 캐릭터의 성격과 취향까지 고려해야 했습니다. 예를 들어, 미미는 귀엽고 활발한 반면, 아라는 우아하고 지적인 매력을 가진 캐릭터입니다. 2. 퀴즈 풀면서 쌓아가는 호감도 데이트 장소는 경기장, 극장, 노래방, 도서관 등 다양하며, 각 장소.. 2024. 3. 14.
반응형