반응형

분류 전체보기 543

k8s ALB ingress 배포 앱의 timeout이 60초로 제한될 때 해결법

서비스를 배포한 코드와 도커 환경 내에서는 타임아웃이 60초보다 더 길지만(즉, 로컬 환경에서는 정상 실행이 가능)배포 이후 60초의 timeout 제한이 걸리는 경우가 있습니다. 만일, timeout이 제한되는 앱이 쿠버네티스에서 ALB 유형의 ingress로 배포한 서비스라면 ALB를 설정한 ingress yaml 파일에서 다음과 같은 사항이 포함되어있는지 확인해봅니다.(아래 예시는 timeout이 2분으로 설정된 경우입니다.)metadata: annotations: alb.ingress.kubernetes.io/load-balancer-attributes: idle_timeout.timeout_seconds=120 만일, alb.ingress.kubernetes.io/load-balancer..

Infra/Debugging 2024.09.03

k8s에서 웹 서비스 배포 후 "backend service is not existed" 현상 해결법

쿠버네티스에서 웹 페이지로 구성된 서비스를 배포한 이후,정상적으로 페이지가 보이지 않고 흰 화면에 "backend service is not existed"메시지만 나오는 경우 해결 방법을 간략하게 정리해보도록 하겠습니다.  해결 매뉴얼1. 먼저, 다음 명령어를 통하여 의도한 namespace 내에 서비스가 잘 배포되었는지 확인합니다.kubectl get svc -n  위 명령어로 조회한 결과, 서비스가 목록에서 조회되지 않는다면,오타가 있었거나 엉뚱한 이름이 대신 지정된 경우가 흔하기에service yaml 파일 등을 열어 namespace나 app 이름이 올바르게 지정되었는지확인하고 수정 후 다시 배포합니다. 2. 만일, 서비스 배포 자체는 되었지만 배포 상태에 이상이 있는 경우라면,아래의 명령어를 ..

Infra/Debugging 2024.08.30

[React] url 정보 가져오기: useLocation 훅 사용 예제

리액트로 구현을 진행할 때, 현재 url 정보가 필요한 경우가 있습니다.이 경우, react router에서 제공하는 useLocation hook을 사용하면 쉽게 구현할 수 있는데요.이번 글에서는 이 기능에 대해서 간략한 예제를 통해 살펴보도록 하겠습니다.  사용 예시다음과 같은 url 예시가 있다고 가정해 보겠습니다.https://example.com/products?category=shoes&color=red#reviews여기서 사이트 주소 뒤의 /products 는 경로에 해당하고,? 뒤에 있는 ?category=shoes&color=red 는 쿼리에 해당하며, # 뒤에 있는 #reviews는 해시 값에 해당하는 상황입니다. 이 경우, 위의 값들을 다음 코드 예제를 통해 추출할 수 있습니다.imp..

[React] useEffect 훅 사용 방법 정리 및 예제 코드

리액트에서 렌더링 과정 외에서 발생하는 작업인 사이드 이펙트를 처리할 수 있는 훅인useEffect의 사용 방법을 예제 코드를 중심으로 간략하게 정리해보도록 하겠습니다.  useEffect 기본 예제기본적으로 특정 변수의 값이 변경되었을 때마다원하는 이펙트를 실행하게 하는 역할을 수행합니다. 예를 들어, MyVariable이라는 변수가 변경될 때마다console.log의 이펙트 부분이 실행되는 예시는 다음과 같습니다.useEffect(() => { console.log(`변수의 값이 ${MyVariable}로 변경되었습니다.`);}, [MyVariable]); 위 코드를 함수 컴포넌트 내에 포함시켜주면,해당 변수의 값이 바뀔 때마다 해당 로그가 출력되게 됩니다. 만일, 변수 여러 개에 의존성을 모두 걸..

파이썬 pdb 디버거 사용 방법 정리

Python에서 디버깅을 쉽게 진행할 수 있는 디버거인 pdb 모듈의 사용 방법을간략하게 정리해보도록 하겠습니다.  pdb 디버거 선언 방법 및 예제먼저, pdb 모듈을 임포트해줍니다.(별도의 설치가 필요하지 않은 내장 모듈입니다.)import pdb 디버거 작동을 원하는 부분에 다음 코드를 입력해주시면 됩니다.pdb.set_trace() 실제 코드 내에서 사용한 예제는 다음과 같습니다.def my_function(): foo = 3 bar = 5 pdb.set_trace() # 해당 위치에서 디버거 작동 return foo + barmy_function() 위 예제에서 my_function() 호출 시 디버거 작동 부분에서 코드가 걸리면디버거가 시작되고, 해당 위치 내에서 선언된 ..

Python/Utils 2024.08.08

파이썬 alembic으로 데이터베이스 테이블 생성 예제

Python 코드 내에서 정의한 스키마의 SQL 테이블을 자동으로 마이그레이션하도록도와주는 alembic의 사용 방법 예제를 간략하게 정리해보도록 하겠습니다.  SQLAlchemy 모델 정의먼저, sqlalchemy를 활용하여 원하는 테이블의 스키마를 정의해야 합니다. 다음과 같은 간단한 스키마의 테이블을 가정해보도록 하겠습니다.파일 이름은 models.py를 가정으로 하며, DB url까지 해당 파일에 명시해줍니다.해당 스키마로 생성할 테이블 이름은 'users'로 가정하겠습니다.# models.pyfrom sqlalchemy import Column, Integer, String, create_enginefrom sqlalchemy.ext.declarative import declarative_bas..

Python/Utils 2024.08.04

FastAPI docs 작성 방법 정리

Python의 fastapi를 통하여 API 문서를 자동으로 쉽게 작성되도록 만들 수 있습니다.이 기능을 잘 활용하면 API를 구현할 때 이점이 굉장히 많은데요.이번 글에서는 fastapi의 docs 작성 방법들에 대하여 간략하게 요약해보도록 하겠습니다.  텍스트 설명 입력 방법API 사용 방법에 대하여 텍스트 설명을 추가하고 싶은 경우가 많습니다.여기서는 3가지 방법을 소개합니다.summary: 메소드 사용 방법 옆의 설명(빨간색 표시 부분)description: 메소드 상세 사용 방법(주황색 표시 부분)response_description: response 메시지에 관한 설명(노란색 표시 부분) 위 3가지 설명란이 제공된 docs의 예시는 다음과 같습니다. 코드에서는 위 3가지를 다음과 같이 적용할 ..

Python/Backend 2024.07.30

파이썬 os.environ vs os.getenv 함수 비교

Python에서 환경 변수를 다루기 위한 함수인 os.environ과 os.getenv에 대하여사용 방법과 용도를 비교해보도록 하겠습니다.  os.environos.environ은 환경 변수 목록들의 딕셔너리 객체처럼 취급하는 역할을 합니다.즉, [ ] 괄호로 환경 변수 정보를 가져오며, 읽기 / 쓰기 / 삭제 등의 역할을 모두 지원합니다.(선언되지 않은 환경 변수에 대해서는 읽기 시도 시 KeyError가 발생합니다.) 사용 방법의 코드 예시는 다음과 같습니다.import os# 읽기, 선언되지 않은 환경 변수라면 KeyError 발생value = os.environ['VARIABLE_NAME']# 쓰기, 환경 변수 선언os.environ['VARIABLE_NAME'] = 'value'# 삭제, 환경 ..

Python/Utils 2024.07.25

파이썬 셀레니움 함수 비동기(async)로 실행 방법

Python의 Selenium을 이용하여 크롤링을 진행할 때,드라이버가 포함된 함수를 async로 실행해야 하는 경우가 있을 수 있습니다. 이 경우, 셀레니움의 함수를 비동기 함수처럼 사용이 가능하도록코드를 작성할 수 있는 방법이 있는데요.이번 글에서 해당 방법을 간략하게 정리해보도록 하겠습니다.  Sync 함수 예시먼저, 이해를 돕기 위하여 다음과 같이 간단한 driver를 호출하는 함수 get_driver과원하는 url에서 title 정보를 추출하는 get_title 함수가 있다고 가정해보도록 하겠습니다.from selenium import webdriverfrom selenium.webdriver.chrome.service import Servicefrom webdriver_manager.chrom..

Python/Crawling 2024.07.19

파이썬 redis 함수 정리 및 예제

Python에서 redis를 활용할 때 사용할 수 있는 대표적인 함수들을 정리해보고,간단한 예제를 통하여 사용 방법을 이해해보도록 하겠습니다.  참고: redis 데이터 저장 방식redis에서는 두 가지 방법을 통하여 데이터를 저장할 수 있습니다. I. key - value 방식딕셔너리에서 key - value를 저장하는 방식과 동일하며,"name" -> "jimmy" 와 같은 매칭 관계를 의미합니다.  II. hash - key - value 방식key - value 쌍을 hash 값을 기준으로 추가 매칭하는 관계를 의미합니다.예를 들면,"7월방문자" -> "name" -> "jimmy"처럼처음에 "7월방문자"라는 hash 정보가 위의 방식의 앞 부분에 추가로 포함됩니다.  이제 대표적인 함수들의 사용..

Python/Utils 2024.07.16
반응형