분류 전체보기 (364) 썸네일형 리스트형 [AWS] EC2(Amazon Linux 2023)에 Service 파일 생성하기 HTML 삽입 미리보기할 수 없는 소스 개요 (추후 작업할 때 참고할 용도로 작성하는 글이다.) systemd? 왜 쓰는가? EC2에서는 Django, Flask, FastAPI 혹은 Daemon을 실행시키기 위해서는 system daemon을 이용해야한다. 이는 linux os에서 특정 프로그램을 상시 가동시킬 수 있게 만들어준다. (단순히 코드를 실행시키는 main.py만 실행시키고 terminal session을 종료하면 같이 종료된다) 1. Service File Service File은 대략 다음과 같이 생겼다. [Unit] Description=PROJECT SERVICE After=network.target [Service] User=ec2-user WorkingDirectory=/proje.. [AWS] EC2(Amazon Linux 2023)에 Python 설치하기 목차 ">목차 개요 Python Project 배포용으로 AWS EC2의 Amzon Linux 2023을 선택한 경우 사전에 필요한 명령어들이다 1. Setting Command패키지 업데이트sudo yum update -ysudo yum groupinstall "Development Tools" -ysudo yum erase openssl-devel -y이후 Python을 설치하기 전 필요한 패키지들을 설치해주자.sudo yum install openssl-devel libffi-devel bzip2-devel wget -y 2. Python 설치하기이 내용은 파이썬을 컴파일하여 설치하는 방법이다. Python3.10 버전의 Source를 받아 Compile 을 통해 설치하는 경우 다음과 같다... [NGINX] Multiple Upstream 구성하기 HTML 삽입 미리보기할 수 없는 소스 개요 AWS-EC2에 Nginx의 Reverse Proxy를 이용해 FastAPI와 연계해 놓은 구성에 추가로 FastAPI를 등록해서 사용해야 한다. 이때 추가로 등록하고자 하는 FastAPI는 기존에 연계해 놓은 FastAPI가 아닌 전혀 다른 프로젝트를 기반으로 하는 것이다. 1. 도식 아래는 이해를 돕기 위해 기존에 등록한 구성의 도식이다. 만약 "http://www.example.com/"를 입력하면 먼저 설정해 놓은 "A-Service"로 라우팅 된다. A-Service의 Wroker를 증가시킴으로써 Nginx의 Upstream의 구성이 달라질 수는 있겠지만 위 도식은 일반적인 예제를 그린 것이다. 이러한 설정에 다음과 같은 구성을 추가적으로 설정하려 .. [NGINX] 504, Gateway Time-Out HTML 삽입 미리보기할 수 없는 소스 개요 FastAPI + LangChain을 이용한 간단한 WAS를 AWC-EC2에 올려놨다. 이 구조에 더해 Reverse Proxy로써 Nginx도 같이 구성해 놓은 상황이다. 또한 LangChain에서 특정 결과를 내기까지 적어도 60~80초가 걸리는 현상이 존재하는 상황이기도 하다. 그렇다보니 요청을 한 후 응답을 받기까지의 시간이 60초가 넘었을 때 Nginx에서 504 Gateway TimeOut이 뜨는 현상이 발생했다. 어떻게 해결할 수 있을까? 1. Nginx에 설정 추가하기 Nginx에서 일단 설정을 다음과 같은 설정을 추가해 주자. location / { # 아래 항목 추가 proxy_connect_timeout 300; proxy_send_tim.. [Programmers] 코딩 기초 트레이닝 #8 HTML 삽입 미리보기할 수 없는 소스 배열 만들기 3 https://school.programmers.co.kr/learn/courses/30/lessons/181895 def solution(arr, intervals): answer = [] for x in intervals: start, end = tuple(x) answer.extend(arr[start:end + 1]) return answer 문자 리스트를 문자열로 변환하기 https://school.programmers.co.kr/learn/courses/30/lessons/181941 def solution(arr): return ''.join(arr) 문자열 돌리기 https://school.programmers.co.kr/learn/c.. [FastAPI] Request 단위의 Transaction 잡기 HTML 삽입 미리보기할 수 없는 소스 2023.10.06 - [Frame Work/FastAPI] - [FastAPI] DI는 bootstrapping을 생각해보기 개요 FastAPI에서 DI를 적용하기 위해, FastAPI의 Depends 함수가 아닌 dependency-injector 라이브러리를 활용했다. 이를 통해 DB Session을 Singleton으로 설정하고, Repository에서 Session을 주입받아 처리하는 시도를 했다. 그러나 이 과정에서 여러 Repository 간에 수행되는 쿼리에 대한 Transaction이 올바르게 묶이지 않는 문제가 발생했다 이번 글은 이러한 문제의 배경과 함께 어떻게 이를 해결했는지에 대한 기록을 담는다. 1. Transaction 처리의 발단 Fas.. [Programmers] 코딩 기초 트레이닝 #7 HTML 삽입 미리보기할 수 없는 소스 콜라츠 수열 https://school.programmers.co.kr/learn/courses/30/lessons/181919 def solution(n): answer = [] while n != 1: answer.append(n) if n % 2 == 0: n = int(n / 2) else: n = int(3 * n + 1) answer.append(1) return answer 가까운 1찾기 https://school.programmers.co.kr/learn/courses/30/lessons/181898 def solution(arr, idx): for x in range(idx, len(arr)): if arr[x] == 1: return x retur.. Google OAuth 로그인의 번거로움 해결하기 Google OAuth Token을 얻는 과정이 매번 번거로운데 어떻게 하면 편하게 얻을 수 있을까? HTML 삽입 미리보기할 수 없는 소스 개요 최근 Google OAuth Login 기능을 구현하면서 상당히 번거로운 점을 체감했다. 매번 url을 클릭해서 브라우저를 열고 계정을 선택해서 나온 callback url에서 code를 따로 추출하고 url decoding을 한 뒤 이를 다시 access_token으로 가져오기 위한 코드를 사용한다는 점이 그러했다. 어떻게 하면 이렇게 번거로운 과정을 단축하여 편하게 id_token과 access_token을 얻을 수 있을지 고민했는데 Google 개발 문서를 뒤적거리고 조금의 아이디어를 보태서 해결할 수 있었다. 그러한 배경으로 앞서 이야기한 번거로운 과정.. 이전 1 ··· 9 10 11 12 13 14 15 ··· 46 다음