PYTHON 56

TIL_Channels

기술적 의사 결정 채팅 기능: 실시간으로 AI와 메시지를 주고 받는 기능을 통해 영어 회화 능력을 향상시킬 수 있는 서비스 Channels client와 server 사이의 실시간 양방향 *통신 및 비동기 처리가 능하도록 해주는 기능들을 모아놓은 library - WebSocket - 연결이 유지되는 동안 실시간 양방향 통신을 지원 - * Redis와 연동 - 데이터를 Cache memory에 저장하기 때문에 빠르게 메시지 전달이 가능 - 여러 server에 분산시켜 관리하는 scale out 방식으로 많은 user의 handling이 가능 - *redid server에 수평적 확장(scale out)이 용이하여 트래픽 상승 대비하여 유연하게 대응이 가능 - 메시지를 전달하는 시스템으로, publishe..

TIL_장바구니 비움과 주문 내역 저장

목적 결제 시스템에서 상품이 성공적으로 결제된 후, 장바구니는 비워주고 결제 내역을 따로 기록해 두려고 함 가능한 방법들 1) 해당 장바구니의 DB 값을 비우고, 같은 내용을 order이라는 entity로 이동하여 저장CartItem(장바구니) entity의 값 중 status(상태)가 ‘paid’일 경우, 해당 user의 장바구니 값들을 for문으로 하나 씩 가져와서 OrderItem(결제 내역) entity에 저장 2) 1)의 내용과 같지만 추가적으로 ‘transaction.atomic()’으로 감싸주어 어떠한 예외가 발생하게 된다면 rollback을 하고, 예외가 발생하지 않는다면 커밋을 하도록 함 선택한 방법 2)의 ‘transaction.atomic()’ 방법을 선택하여 데이터베이스 작업이 안전..

TIL_PortOne을 이용한 결제 시스템

결제 시스템 구현 목적 웹 사이트 기능 중, AI 채팅을 요청하거나 AI Reading 부분에서 문제 생성을 할 때마다 chatGPT 토큰을 사용하게 된다. 일정량의 토큰 이상을 사용했을 경우 요금이 부과가 되는 점을 고려하여 웹사이트의 자체적인 코인을 만들어 chatGPT 토큰을 남용할 수 없도록 기획하였다. 기본으로 제공되는 코인이 부족해진다면 상품 페이지에서 원하는 만큼 코인을 구매할 수 있다. 결제 시스템 관련 페이지 상품 선택 페이지 장바구니 페이지 결제 창 PortOne 온라인에서 상품을 판매하기 위해서는 결제 서비스가 필요하다. 수많은 은행, 신용카드 회사와 직접 문의하여 결제 수단을 연동하고 발생하는 모든 거래 내역에 대한 승인을 요청할 수도 있지만 매우 복잡한 과정이 될 것이다. 그래서 ..

TIL_Generator란?

Generator은 python에서 반복 가능한 객체(iterator)를 생성하는 함수이다. 일반 함수와 비슷하지만, 'return' 대신 'yield'를 사용하여 값을 생성하고 호출자에게 반환한다. def my_generator(): yield 1 yield 2 yield 3 gen = my_generator() for value in gen: print(value) 위의 Generator 함수 예제를 보면, my_generator 함수가 호출을 통해 Generator 객체를 반환하고, yield를 통해 값을 반환하고 호출자에게 제어를 양도한다. 그리고 for loop을 통해 Generator에서 값을 하나씩 가져와 출력할 수 있다. Generator 사용의 장점 메모리 효율성: 여러 값을 한 번에 메..

TIL_Closure란?

Python에서 Closure은 함수 내에서 다른 함수를 정의하고, 이 내부 함수가 외부 함수의 local variable을 기억하고 있다가 외부 함수의 실행이 끝난 후에도 그 변수에 접근할 수 있게 만드는 메커니즘이다. def outer_function(x): # 외부 함수의 지역 변수 def inner_function(y): return x + y # outer_function의 x에 접근 가능 return inner_function # inner_function을 반환 closure_instance = outer_function(10) # outer_function을 호출하여 closure_instance에 할당 result = closure_instance(5) # closure_instance를..

Python의 parameter와 argument의 차이점은?

programming에서 자주 쓰이는 parameter(매개변수)와 argument(인자)의 차이점에 대해서 정리해 보았다. 비슷하지만 다른 parameter와 argument. 함수를 정의할 때 이름 옆의 괄호 안에 들어가는 variable들이 'parameter'이고, 함수를 사용할 때 passing(넘겨주는) 해 주는 variable들이 argument이다. # 여기서 a와 b는 Parameter def sum(a, b): return a + b # 여기서 2와 5는 Argument sum(2, 5)

TIL_환경 변수(PATH)란?

백과사전에서는 환경 변수(Environment Variable)란 '프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는, 동적인 값들의 모임'이라고 설명하고 있다. 환경 변수의 종류는 역할에 따라 여러 가지가 존재하는데, 그 중 PATH에 대해 알아보았다. 환경 변수 PATH를 지정한다는 것은 좀 더 쉬운 말로 설명하면 어떤 프로그램의 경로를 변수의 값에 저장해 놓고 현재 나의 위치와 상관 없이 어디에서든 그 프로그램을 실행시킬 수 있는 방법이다. 예를 들면, Python을 설치할 때를 생각해 보자. 위와 같이 'Add Python 3.7 to PATH'라는 체크란이 보인다. 저 체크란을 선택하게 되면 현재 나의 위치와 상관없이 전역에서 Python 3.7을 실행할 수 있게 된다. 즉, 환경 변수 PAT..

TIL_가상 환경(Virtual Environments)이란?

Python을 이용한 웹 프로그램을 만들 때 가장 먼저 설치하고 실행하는 것이 바로 가상환경(venv)이다. 가상 환경(Virtual Environments)이란? 가상 환경은 독립적인 python 실행 환경을 의미한다. Python을 포함한 대부분의 언어들은 package나 module의 버전을 계속 업데이트 한다. 한 환경에서 한 버전의 패키지만 설치가 가능하기 때문에 일반적으로 프로젝트 별로 버전을 관리해야 편리하다. 각각의 가상 환경은 다른 환경에 영향을 미치지 않고 각자 다른 종류와 버전의 패키지를 갖고 있어서 독립적인 버전 관리가 가능하다. 즉, 가상 환경은 프로젝트마다 다른 버전의 라이브러리를 사용하여 각각 독립적이게 관리할 수 있도록 해주는 역할을 한다. Virtual Environment..

TIL_Python의 장점과 단점

현재 Python의 Django framework를 이용해서 웹사이트를 만들고 있고, AI library를 가져와서 사용하고 있다. 이 외에도 데이터 분석, 인공지능 분야 등 사용범위가 넓은데, 이번에는 Python의 장점과 단점에 대한 정리를 해 보았다. Python의 장점 1. Script Language compile 과정 없이 interpreter가 코드를 한 줄씩 읽어서 바로 실행하는 script 언어이다. 이 때문에 코드를 편집하고 즉각적으로 결과를 확인할 수 있고, debugging 과정에서도 빠르게 오류를 찾아낼 수 있다. 2. Dynamic Typing 변수의 자료형을 선언하지 않아도 되서 코드 작성 시간을 단축시켜준다. 변수의 type은 코드가 실행되는 시점에 결정된다. 3. Platf..

LIST