[Python] 정규 표현식 re : 정규 표현식(Regular Expression)을 지원하는 파이썬 모듈 정규 표현식은 문자열을 처리하는데 사용하는 도구로, 특정 패턴을 찾거나 대체, 추출하는 등의 작업을 할 때 유용함 re 모듈에서는 정규표현식 패턴을 정의하고 이를 검색하는 여러 함수를 제공 1. 패턴 컴파일 re.compile() 함수를 사용하여 검색할 패턴을 정의 정규표현식 패턴은 일반적인 문자열과 구분하기 위해 특수한 문자와 기호를 사용 2. 검색 정규 표현식 패턴을 컴파일한 객체의 메서드를 사용하여 검색 대상 문자열에서 패턴을 찾음 3. 결과 처리 검색 결과를 처리하여 필요한 정보를 추출하거나 대체하는 등의 작업을 실행 정규 표현식 기호 기호 의미 . 어떤 한 문자 * 바로 앞의 문자가 0개..
[Linux] 원격 접속하기 & 파일 전송하기 (SSH, SCP) SSH : 원격으로 다른 컴퓨터에 로그인 할 때 사용되는 프로토콜 SSH 로그인 ssh 유저명@호스트명 또는 IP주소 ssh ubuntu@172.0.0.1 포트 번호 지정 ssh -p 포트번호 유저명@호스트명 또는 IP주소 ssh -p 2222 ubuntu@172.0.0.1 연결 종료 exit SCP : 원격 호스트와 로컬 호스트 간 파일을 복사하기 위한 프로토콜 1. 원격 호스트 -> 로컬 호스트 원격 머신의 "/home/ubuntu/test.txt" 파일을 로컬 머신의 "/tmp/" 디렉토리로 복사 ssh 유저@호스트: scp ubuntu@example.com:/home/ubuntu/test.txt /tmp/ 2. 로컬 호스트 -> 원..
[Python] Logging 사용법 Logging 파이썬의 내장 모듈로, 파이썬 프로그램에서 로그를 기록하고 관리하는 데 사용되는 모듈 다양한 로깅 레벨과 출력 형식을 지원하며, 로그 메시지를 파일, 콘솔, TCP 소켓 등 다양한 대상으로 전송 가능 Logger logging 모듈은 logger 클래스를 사용해서 로그를 기록 logger 클래스는 로그를 기록하는 메소드와 로그 레벨, 출력 형식, 출력 대상 등을 설정할 수 있는 메소드 제공 Log Level 로그 레벨은 basicConfig() 메소드를 사용해 전역으로 설정 할 수 있음 또한 Logger 클래스의 인스턴스마다 로그 레벨을 설정할 수 있음 DEBUG 가장 낮은 로그레벨로, 디버깅 정보를 기록 INFO 일반적인 정보를 기록 WARNING 경..
[Git] git checkout git checkout : 브랜치(branch), 커밋(commit), 태그(tag) 등에서 작업하고자 하는 버전을 가져오는 명령어 1. 브랜치 전환 현재 작업중인 브랜치를 전환, 이때 전환되는 브랜치는 이미 존재하는 브랜치 중 하나여야함 git checkout 2. 커밋 복원 해당하는 커밋으로 작업 디렉토리를 복원함 이때 해당 커밋은 이미 저장소에 존재하는 커밋 중 하나여야 함 git checkout 3. 브랜치에서 파일 가져오기 브랜치에서 파일을 가져옴 작업 디렉토리에 이미 동일한 파일이 존재할 경우, 해당 파일이 덮어씌여짐 git checkout -- 4. 새로운 브랜치 생성 및 전환 새로운 브랜치를 생성하고 해당 브랜치로 전환 git checkout -b
[AWS] SQS를 다른 AWS 인프라 웹 서비스와 함께 사용 Amazon SQS 메시지 대기열 서비스를 Redshift, DynamoDB, RDS, EC2, ECS, Lambda 및 S3 등 다른 AWS 서비스와 함께 사용하면 분산 애플리케이션의 안정성과 확장성을 더욱 향상할 수 있음 SQS + S3 1. 비동기 처리 : S3 버킷에 업로드 되는 파일을 처리하는 데 많은 시간이 걸리는 경우, 해당 파일을 처리하는 애플리케이션에서 대기열 메시지를 가져와 비동기적으로 처리할 수 있음 2. 높은 가용성 : S3 버킷에 업로드된 파일을 처리하는 애플리케이션이 다운 되었을 때, SQS 대기열에 저장된 메시지는 여전히 유지되므로 해당 애플리케이션이 복구되면 메시지를 가져와 작업을 다시 시작할 수 있음 3. 확장성..
[AWS] SQS (Simple Queue Service) SQS (Simple Queue Service) : 분산 된 메시징 대기열 서비스로, 소프트웨어 컴포넌트 간에 비동기 메시지를 전송하는 데 사용됨 큐를 생성하고, 메시지를 보내고, 받는 기능을 제공함 다양한 AWS 서비스와 통합될 수 있음 (SNS, Lambda, EC2, S3 등) 분산 된 시스템 아키텍처에서 유용하며, 서로 다른 시스템 간에 메세지를 안정적이고 확장 가능하게 전송 SQS 처리 과정 메시지 생성: 메시지를 생성하고, SQS 대기열에 보내기 위해 SQS API를 사용 대기열 수신: SQS 대기열에 저장된 메시지를 수신, 대기열은 표준 대기열과 FIFO 대기열로 구성 메시지 처리: 대기열에서 가져온 메시지를 처리함 이때, 애플리케이..
[Python] 이터레이터 (iterator)와 제너레이터(generator) 이터레이터 (iterator) 란? 반복 가능한 객체 (iterable)에서 요소를 하나씩 꺼내오는 역할 예를 들어 리스트, 튜플, 문자열 등의 객체는 반복 가능한 객체 (iterable) 임 이러한 객체에서 for 루프를 이용해 요소를 하나씩 꺼내올 때, 이터레이터가 사용됨 이터레이터 사용 예시 1. iter() 함수를 이용해서 리스트 my_list를 이터레이터로 변환 2. next() 함수를 이용해 이터레이터에서 값을 하나씩 가져옴 my_list = [1, 2, 3, 4, 5] my_iter = iter(my_list) print(next(my_iter)) # 1 print(next(my_iter)) # 2 print(ne..
[Python] 데코레이터 (decorator) 데코레이터란? 데코레이터 (Decorator)는 파이썬에서 함수나 클래스의 기능을 확장하거나 수정할 수 있게 해주는 기능 데코레이터를 사용하면 기존 코드를 건드리지 않고 함수나 클래스의 동작을 수정할 수 있음 데코레이터 사용 이유 1. 코드의 재사용성과 모듈성을 높임 2. 코드의 가독성을 높일 수 있는 강력한 도구 중 하나 3. 코드의 중복을 줄이고 유지보수성을 높일 수 있음 데코레이터 사용 예제 데코레이터가 필요한 함수 위에 @ + (데코레이터로 사용 할) 함수명으로 선언을 해줌 def my_decorator(func): def wrapper(): print("Something is happening before the function is called...
[Git] Commit Git Commit : Git에서 변경 사항을 저장하고 관리하기 위한 핵심 개념 중 하나 현재 작업 중인 변경 사항을 저장소에 커밋(저장)할 수 있음 각 커밋은 고유한 해시 값과 함께 저장되며, 이전 커밋과의 차이를 기반으로 변경 사항을 추적 커밋 메세지는 다른 사람이 변경 사항을 이해할 수 있도록 명확하게 작성하는 것이 좋음 git add . git commit -m "커밋 메세지" 커밋 메시지 수정 git commit --amend -m "수정된 커밋 메시지" 이전 commit 취소 이전 커밋 히스토리 확인 git log 히스토리에서 취소하려는 커밋의 해시 값을 복사 git reset git reset HEAD~1 #가장 최근의 커밋을 취소 ✔ git reset은 로컬 브랜치에..
[AWS SDK] Boto3 Boto3 : AWS를 파이썬에서 사용하기 위한 공식 AWS SDK (Software Development Kit) AWS 서비스와 상호작용 하기 위한 Python 라이브러리로,다양한 AWS 서비스를 관리하고 제어하는 기능을 제공 Boto3를 이용해서 S3 버킷에 있는 파일을 다른 버킷으로 Copy import boto3 # AWS S3 클라이언트 생성 s3_client = boto3.client('s3') # 복사할 객체의 원본 버킷 이름과 경로(Path) source_bucket_name = 'source-bucket' source_object_path = 'images/image.jpg' # 복사할 객체의 대상 버킷 이름과 경로(Path) target_bucket_nam..
[Airflow] 멀티 클러스터 환경 구성 [구성] 1. airflow-ec2-1 (Master) metadata database(rds-mysql) airflow webserver airflow worker 2. airflow-ec2-2 (Worker) airflow worker 1. Master, Worker 인스턴스 생성 후 airflow 설치 : airflow 설치 참고하여 설치 Airflow 설치 Airflow 설치 🔎 설치환경 AWS Amazonlinux 2 2.5.1 버전 Airflow 설치 공식 Documents 참조 https://airflow.apache.org/docs/apache-airflow/stable/installation/installing-from-pypi.html Inst..
[Airflow] Params Params DAG나 Task에 사용자 정의 데이터를 전달하기 위한 메커니즘 Python의 딕셔너리(Dictionary) 형태로 사용되며, DAG나 Task에 추가적인 정보나 매개변수를 전달하고자 할 때 사용됨 ⚠ DAG 레벨에서 params를 설정하면 해당 DAG의 모든 Task에 적용됨 Task 레벨에서 params를 설정하면 해당 Task에만 적용됨 Example 🔎 params를 활용하여 파이썬 함수에서 매개변수를 전달하고 xcom에 저장하는 DAG Operator Import from airflow import DAG from airflow.operators.dummy_operator import DummyOperator from airflow.operators.p..