목록분류 전체보기 (766)
우노
들어가기 앞서, Dockerfile 하단 CMD, ENTRYPOINT 지시문 앞에 “sh -c”를 추가하는 경우가 있습니다. 실제로 CMD, ENTRYPOINT 지시문은 “sh -c” 추가 여부에 따라 실행 방식에 차이가 발생하게 됩니다. 해당 포스팅에선, 실행 방식에 따른 차이에 대해서 설명하겠습니다. 지시문 앞에 “sh -c”를 추가하는 경우 FROM ubuntu CMD ["sh", "-c", "mkdir test && tail -f /dev/null"] 원하는 작업은, "mkdir test” 명령어로 test 폴더를 생성하고 "tail -f /dev/null” 명령어로 컨테이너 실행 상태를 유지하는 것입니다. 만약, 지시문 앞에 “sh -c”를 추가한다면 해당 명령어는 원하는 의도대로 실행됩니다. ..
들어가기 앞서, .npmrc 파일은 Node.js 프로젝트에서 npm (Node Package Manager) 구성을 저장하는 설정 파일입니다. 이 파일을 사용하여 프로젝트별로 npm 관련 설정을 구성할 수 있습니다. 해당 포스팅에선 사용자 지정 패키지 스코프와 인증 정보를 설정하는 방법에 대해서 다뤄보겠습니다. .npmrc 사용자 지정 패키지 스코프와 인증 정보 설정 예제 @yourscope:registry=https://registry.npmjs.org/ //registry.npmjs.org/:_authToken=YOUR_AUTH_TOKEN @yourscope:registry=https://registry.npmjs.org/ 사용자 지정 스코프(@yourscope)가 npm 기본 레지스트리에서 호스팅..
들어가기 앞서, 테이블에 새로운 행이 추가될 때 다른 테이블에도 해당 내용을 자동으로 반영하고 싶다면 트리거(Trigger)를 사용해 해결할 수 있습니다. 데이터베이스의 트리거(Trigger)는 특정 이벤트(예: 삽입, 갱신, 삭제 등)가 발생할 때 자동으로 실행되는 데이터베이스 내의 저장 프로시저입니다. 존재하는 트리거 확인 SHOW TRIGGERS; Trigger_name : 트리거의 이름 Event : 트리거가 작동하는 이벤트 유형 (INSERT, UPDATE, DELETE) Table : 트리거가 연결된 테이블의 이름 Statement : 트리거의 실행 내용 (BEGIN과 END 사이의 SQL 문장) Timing : 트리거가 실행되는 시기 (BEFORE 또는 AFTER) Created : 트리거가..
에러 내용 logger=tsdb.mysql t=2023-09-13T04:45:43.605367314Z level=error msg="Query error" error="Error 1267: Illegal mix of collations (utf8mb4_0900_ai_ci,COERCIBLE) and (utf8mb4_unicode_ci,COERCIBLE) for operation '='” 에러 설명 MySQL에서 콜레이션(collation)은 데이터베이스에서 문자열을 저장하고 비교하는 방법을 정의하는 규칙 세트입니다. 즉, 문자열을 어떻게 비교할지, 정렬할지, 대소문자를 어떻게 다룰지와 같은 문자열 처리 규칙을 결정합니다. 간단한 예를 통해 설명해보겠습니다: 문자열 비교 콜레이션은 두 문자열을..
발생 에러 HTTP response body: {"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"pods is forbidden: User "system:serviceaccount:composer-1-20-8-airflow-2-4-3-c5d909a1:default" cannot list resource "pods" in API group "" in the namespace "composer-1-20-8-airflow-2-4-3-c5d909a1"","reason":"Forbidden","details":{"kind":"pods"},"code":403} 원인 및 해결 방법 Airflow Pod에서 다른 Pod를 생성하..
들어가기 앞서, 해당 포스팅에선, kubernetes_manifest 자원을 terraform import 하는 명령어에 대해서 다뤄보겠습니다. 예제 코드 kubernetes_manifest 예제 코드 resource "kubernetes_manifest" "example" { manifest = { apiVersion = "apps/v1" kind = "Deployment" metadata = { name = "example-deployment" namespace = "example-namespace" } spec = { replicas = 3 selector = { matchLabels = { app = "example-app" } } template = { metadata = { labels = {..
들어가기 앞서, 해당 포스팅에선 gcloud 명령어를 사용해 Composer의 파이썬 패키지를 업데이트하는 방법에 대해서 다뤄보겠습니다. 예제 코드 # 작업할 GCP 프로젝트 설정 gcloud config configurations activate "설정해놓은 GCP 프로젝트 Config 이름" # Composer 파이썬 패키지 업데이트 gcloud composer environments \ update "" \ --update-pypi-packages-from-file "" \ --location "" update “” Composer의 이름을 지정합니다. --update-pypi-packages-from-file “” 업데이트할 파이썬 패키지 목록이 적힌 소스(ex. requirements.txt) ..
들어가기 앞서, 해당 포스팅에선 gcloud 명령어를 사용해 Composer의 DAG 파일을 업데이트하는 방법에 대해서 다뤄보겠습니다. 예제 코드 # 작업할 GCP 프로젝트 설정 gcloud config configurations activate "설정해놓은 GCP 프로젝트 Config 이름" # Composer DAG 파일 업데이트 gcloud composer environments storage dags import \ --environment "" \ --location "" \ --source "" \ --destination "" --environment "" Composer의 이름을 지정합니다. --location "" Composer 환경이 위치한 지역을 지정합니다. --source "" 업..
Executor 설정이란? Task 실행 방식이라고 이해하시면 될 것 같습니다 ㅎㅎ 적용된 Executor 확인 명령어 airflow config get-value core executor
들어가기 앞서, Google Cloud Pub/Sub의 Subscriber는 두 가지 방식으로 메세지를 수신할 수 있습니다. Subscribe (Push) 구독자에게 메세지를 보내는 방식입니다. Pull 구독자가 필요할 때 메시지를 수동으로 가져오는 방식입니다. 어떤 방식을 선택할지는 사용 사례와 요구 사항에 따라 다릅니다. 실시간 데이터 처리가 필요한 경우에는 Subscribe(Push) 방식이 적합하며, 일괄적인 처리나 비동기적인 작업이 가능한 경우에는 Pull 방식이 적합할 수 있습니다. Subscribe 방식 예제 코드 from google.cloud import pubsub_v1 import json def callback(message: pubsub_v1.subscriber.message.Me..