[Python] 성능 병목을 찾는 방법 '프로파일링'
·
Python
LLM 기반 서비스를 개발하다 보면 한 번쯤 이런 상황을 만납니다. 사용자가 질문을 입력했는데 응답까지 15초가 걸립니다. 느리다는 건 알겠는데 왜 느린지는 모르는 상황입니다. LLM이 문제일까요, 벡터 DB 검색이 문제일까요, 아니면 다른 곳일까요?이럴 때 필요한 것이 프로파일링(Profiling) 입니다. 이 글에서는 프로파일링이 무엇인지, 그리고 실무에서 자주 사용하는 두 도구인 py-spy와 pyinstrument를 어떤 상황에서 어떻게 활용하는지 정리합니다.프로파일링이란 무엇인가프로파일링은 프로그램이 실행되는 동안 시간과 자원이 어디에서 얼마나 소비되는지 측정하는 과정입니다. 단순히 전체 실행 시간을 재는 것이 아니라, 어느 함수가 얼마나 오래 실행됐는지, CPU를 얼마나 사용했는지, 어디서 대..
[Date Engineer] Data Firehose란?
·
Airflow
데이터 파이어호스란 데이터를 안전하게 목적지(타겟, s3, redshift등)에 전달하는 역할을 해주는 서비스이다.[데이터 발생(로그)] -> [Firehose] -> [S3, ...]와 같은 순서로 진행된다고 보면 된다. 특징으로는 최소 60초 단위 혹은 1MB 단위로 버퍼링하여 데이터를 적제한다는 것이다. 이러한 역할을 하는 것이 firehose밖에 없냐고 물어본다면, 그것은 아니다.대표적으로 Fluentd와 Logstash가 있다. 구분Amazon Data FirehoseFluentd / Logstash관리 주체AWS (완전 관리)사용자 (서버 운영 필)주목적데이터 적재 (Delivery)로그 수집 및 필터링난이도 쉬움중간비용데이터 처리량에 비례서버 운영비
[Airflow] ec2를 사용해 클라우드에 airflow 띄우기 - (2. EC2 인스턴스에 docker 환경 구축하기)
·
Airflow
지난 실습에서는 ec2 인스턴스를 생성하고 puTTY를 사용하여 터미널로 접속하는 것을 해보았습니다.이번에는 ec2 인스턴스에 docker를 설치하는 방법을 알아보겠습니다. 1. 시스템 최신 상태로 업데이트sudo apt-get update && sudo apt-get upgrade -y 업데이트를 안 하면 변경사항이 있을 수 있으니 모두 업데이트 해줍니다. 2. 도커 자동 설치 스크립트 실행하기curl -fsSL https://get.docker.com -o get-docker.shsudo sh get-docker.sh 도커 공식 홈페이지에서 설치 파일을 가져와서 실행시켜줍니다. 3. 설치 확인하기 이러한 화면이 나온 후 도커가 잘 설치 됐는지 확인하기 위해docker --version 을 프롬프트에 ..
[Airflow] ec2를 사용해 클라우드에 airflow 띄우기 - (1. EC2 인스턴스 만들기)
·
Airflow
노트북에 airflow를 docker에 올려 로컬 환경에서 돌리며 실습하던 중 노트북이 램, CPU 사용량이 너무 높아져 실습이 어려운 상황이 자주 발생하였다. 이를 해결하고자 AWS에 EC2로 우분투 인스턴스를 만들어 그 안에 docker를 설치하고 airflow를 돌려야겠다고 생각했다. 실습 비용이 부족해 t3.micro 모델을 사용하려고 했지만, docker에 컨테이너로 airflow를 돌릴것이기 때문에 메모리가 1GB 더 많은 t3.small를 사용하였다. 실습은 mac 환경에서 하기때문에 key는 pem키로 받았어야 하지만, 집에 있는 컴퓨터는 윈도우이기 때문에 ppk로 받고 puTTYgen을 이용해 pem키로 바꿔줄 것이다. 1. putty로 서버 접속하기 1. puTTY에 접속하고 Ho..
[Airflow] DAG 처음 짜면서 했던 실수들
·
Airflow
1. 들어가며Airflow를 처음 접했을 때 솔직히 이런 생각이 들었다."이거 그냥 cron이랑 뭐가 달라?"Python으로 스케줄 짜고, 태스크 실행하고… 겉으로 보면 비슷해 보인다. 그런데 실제로 DAG를 짜기 시작하자마자 예상치 못한 곳에서 계속 막혔다.이 글은 그 과정에서 내가 직접 겪었던 실수들을 정리한 기록이다. Airflow를 처음 시작하는 분들이 같은 곳에서 시간을 낭비하지 않았으면 하는 마음으로 썼다.2. start_date를 datetime.now()로 설정했다어떤 실수였나DAG를 처음 만들 때 start_date를 이렇게 설정했다. pythonfrom datetime import datetimefrom airflow import DAGwith DAG( dag_id="my_fir..
[Airflow] Apache Airflow 개념 정리
·
카테고리 없음
Apache Airflow 개념 정리카테고리: Data Engineering · Airflow · WorkflowAirflow란Apache Airflow는 워크플로우 오케스트레이션 도구다.직접 작업을 수행하지 않고,작업들이 언제, 어떤 순서로 실행될지를 관리한다.즉, 실행 엔진이라기보다는작업 흐름을 제어하는 관리자에 가깝다.기존 스케줄러와의 차이기존에도 작업 자동화는 가능하다. (cron, 윈도우 작업 스케줄러 등)하지만 다음과 같은 한계가 존재한다.한계작업 간 의존성 관리 어려움성공/실패에 따른 분기 처리 어려움재시도 로직 구성의 제한Airflow의 특징Airflow는 Python 기반으로 워크플로우를 정의한다.기능설명의존성 제어작업 순서를 코드로 정의재시도실패 시 자동 재실행분기 처리조건에 따라 다른..
[AWS] AWS 3-Tier 아키텍처 실습기
·
클라우드
오늘은 AWS 3-Tier 아키텍처를 만들어보는 실습에 대한 후기를 남기려고 한다. AWS 3-Tier 아키텍처는 다음과 같이 설계해보았다. 1. 아키텍처 구조 잡기우선 VPC 서브넷을 총 6개의 서브넷으로 구성했다.1. public Subnet 2개2. private subnet 2개3. DB subnet 2개 2개씩 만든 이유는 고가용성(HA)을 위해 설계하였다. 여기서 말한 고가용성은 한쪽 서버에 완전히 장애가 생겨도 물리적으로 먼 거리에 있는 서버 2개를 사용하기 때문에 서비스는 정상적으로 작동하는 것이다. private subvet에는 중요한 정보가 있기 때문에 외부 사용자는 private subvet에 바로 접속 못하고 로드밸런서를 통해서만 접속하게 했다. public subnet에는 Bast..
[Project] 카카오 API 사용을 위한 카카오 개발자계정 만드는법
·
Project
오늘은 어플리케이션에 카카오 API를 넣으려면 필요한 카카오 개발자 계정을 만드는 법을 소개하려고 합니다. Kakao Developers카카오 API를 활용하여 다양한 어플리케이션을 개발해 보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.developers.kakao.com우선 가입을 하기 위해 KaKao Developers 사이트에 접속합니다. 우측 상단에 로그인을 누르시면 회원가입 창으로 바로 넘어가집니다. 서비스 이용 동의 체크해주시고, 카카오 계정 정보에는 본인이 사용하시는 계정 ID와 사용하실 닉네임을 입력하시면 됩니다.저는 닉네임으로 제 본명을 사용하였습니다.마지막으로 아래에 회원가입 버튼을 누르시면개발자 계정 회원가입이 완료됩니다.
[프로그래머스_SQL] Lv.2 진료과별 총 예약 횟수 출력하기
·
코딩테스트/SQL
카테고리: SQL · GROUP BY · DATE_FORMAT · ORDER BY플랫폼: 프로그래머스난이도: Level 2문제 설명다음은 종합병원의 진료 예약정보를 담은 APPOINTMENT 테이블입니다.| Column name | Type | Nullable || --- | --- | --- || APNT\_YMD | TIMESTAMP | FALSE || APNT\_NO | NUMBER(5) | FALSE || PT\_NO | VARCHAR(10) | FALSE || MCDP\_CD | VARCHAR(6) | FALSE || MDDR\_ID | VARCHAR(10) | FALSE || APNT\_CNCL\_YN | VARCHAR(1) | TRUE || APNT\_CNCL\_YMD | DATE | TRU..
[AI] Claude에게 원하는 답을 얻어내는 질문법
·
카테고리 없음
Claude를 쓰다 보면 같은 도구인데 사람마다 결과물 차이가 꽤 크다는 걸 느끼게 됩니다. 그 차이는 대부분 모델이 아니라 질문에서 나옵니다. Claude는 여러분이 건넨 정보만 가지고 답을 만들기 때문에, 질문에 무엇을 담느냐가 답변의 질을 거의 결정합니다. 이 글에서는 더 쓸모 있는 답을 받기 위한 여섯 가지 질문 방법과, 그것들을 하나로 묶는 공식을 정리해봤습니다.맥락을 충분히 주기가장 기본이면서 효과가 큰 부분입니다. 배경 정보가 없으면 Claude는 가장 일반적인 답을 내놓을 수밖에 없습니다.예를 들어 "마케팅 전략 알려줘"라고만 하면 교과서적인 답이 돌아옵니다. 반면 "스타트업 SaaS 회사에서 B2B 영업을 담당하고 있고, 월 예산은 200만 원, 타겟은 중소기업 HR 담당자야. 6개월 안..