반응형

전체 글 489

파이썬 디렉토리 관리 모듈 shutil 함수 정리

안녕하세요. Python으로 파일 및 디렉토리에 대한 조작이 필요한 경우,os 모듈로도 작업이 가능하지만 이번 글에서는 해당 작업에 특화된또 다른 모듈인 shutil 모듈에 대하여 간략하게 주요 함수들을 정리해 보겠습니다.참고로, shutil 모듈은 파이썬 표준 라이브러리이므로, 별도의 설치가 필요하지 않습니다.  복사 관련 함수: copy, copy2, copytree1. copy먼저 copy 함수는 파일을 복사할 수 있는 기본적인 shutil의 함수입니다.이 함수는 파일의 수정 시간 등의 메타데이터는 복사하지 않고,오직 파일의 내용만 복사하는 특징을 가지고 있습니다. 사용 방법 코드 예시는 다음과 같습니다.import shutil# 'source.txt'를 현재 디렉토리에 'destination.tx..

Python/Utils 2024.10.14

[Git] git pull 시 fatal: refusing to merge unrelated histories 오류 원인 및 해결 방법

git pull 과정에서 fatal: refusing to merge unrelated histories 라는 메시지가 출력되며동기화에 실패하는 경우, 원인과 해결책에 대하여 간략하게 정리해보도록 하겠습니다.  개요git pull 과정에서 다음과 같은 오류 메시지가 발생하며,동기화에 실패하고 있습니다.########################### W A R N I N G ############################This equipment is privately owned.All access to this equipment is logged.Disconnect IMMEDIATELY, if you are not an authorized userViolators will be prosecuted ..

Git 2024.10.08

[Slack Bolt] 파이썬 Slack App 슬래시(/) 커맨드 생성 방법

안녕하세요. 이번 글에서는 Python으로 슬랙 앱의 기능을 구현할 때,/로 시작하는 명령어인 Slash Commands 생성 방법에 대해서간략하게 정리해보도록 하겠습니다. 앱의 생성 및 기본 코드 골격이 갖춰진 상황을 가정하고 작성하도록 하겠습니다.이에 대한 상세 방법이 필요하시다면 아래 링크의 글을 참고해주세요. [Slack Bolt] 파이썬 Slack App 댓글 기능 구현 예제안녕하세요. 이번 글에서는 Python slack bolt 모듈을 활용하여 특정 텍스트가 인식되면 스레드에 댓글을 달게 만드는 아주 간단한 슬랙앱 예제를 다루어보도록 하겠습니다. 이번에 다룰 슬랙앱의jimmy-ai.tistory.com  1. 슬랙 앱 Config 설정먼저, 슬랙 앱의 환경 설정에서 Slash Commands..

Python/Slack API 2024.10.03

파이썬으로 쿠버네티스 리소스 생성 코드 예제

Python에서 k8s의 리소스를 원격으로 생성하는 것이 가능합니다.이 글에서는 kubernetes 모듈을 활용하여 yaml 파일로 부터리소스를 생성하는 방법을 간략하게 소개해보도록 하겠습니다.  사전 작업먼저, kubernetes 모듈과 yaml 파일을 다루기 위한 pyyaml 모듈을 설치해주어야 합니다.pip install kubernetes pyyaml 또한, 파이썬 코드로 리소스 원격 생성을 진행하기 위해서는kubectl 명령어를 터미널 내에서 사용 가능하도록 config 설정이 되어있어야 합니다.  코드 예제다음은 리소스에 해당하는 yaml 파일을 이용하여 pod를 생성하는 코드 스니펫 예시입니다.from kubernetes import client, config, utils# kubernete..

Python/Utils 2024.09.20

도커 파일 작성 기본 예제(React 프로젝트 예시)

이번 글에서는 리액트 프로젝트의 Dockerfile 작성 방법을간단한 예제를 통하여 이해해보도록 하겠습니다.(아래의 Step 1과 Step 2 부분의 내용을 이어서 한 파일로 작성해주시면 됩니다.)  Step 1. 애플리케이션 빌드# Step 1: 애플리케이션 빌드FROM node:22.6.0-slim AS builder# 앱 디렉토리 생성WORKDIR /app# package.json 및 package-lock.json 파일 복사COPY package*.json ./# 모듈 설치RUN npm install# 코드 복사COPY . ./# 빌드 진행RUN npm run build 도커 파일의 앞 부분에서는 애플리케이션 빌드를 진행하게 됩니다.먼저, 원하는 node.js 버전을 선택하여 베이스 이미지로 고른..

Infra/Docker 2024.09.13

[React] 컴포넌트 재렌더링 방지 최적화: React.memo 사용 예제

리액트에서 부모 컴포넌트의 일부 정보가 변동되어 렌더링이 다시 되는 과정에서자식 컴포넌트도 기본적으로는 다시 렌더링되게 됩니다. 그러나, 항상 자식 컴포넌트들이 지속적으로 렌더링되어 불필요한 과정이 많다면효율성이 좋지 않고 긴 지연 시간을 발생시킬 수 있습니다. 이 과정에서 자식 컴포넌트가 변경되지 않았을 때는, 자식 컴포넌트의 재렌더링을방지하여 최적화를 할 수 있는 기능을 React.memo가 제공하고 있습니다. 이번 글에서는 React.memo 기능의 사용 방법을 간단한 예제를 통하여이해를 해보는 시간을 가져보도록 하겠습니다.  기본 사용 예제React.memo에는 자식 컴포넌트의 선언 시에 감싸주는 방식으로 선언을 진행하면 되며,기본적으로 자식 컴포넌트의 props가 변경되었는지 여부를 판단하여재렌..

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]); 위 코드를 함수 컴포넌트 내에 포함시켜주면,해당 변수의 값이 바뀔 때마다 해당 로그가 출력되게 됩니다. 만일, 변수 여러 개에 의존성을 모두 걸..

반응형