전체 글 71

반복 작업을 파이프라인으로: Apache Airflow 설치와 사용법

반복 작업을 파이프라인으로: Apache Airflow 설치와 사용법Python으로 정의한 DAG를 Dag Processor와 Scheduler가 해석하고, 의존성에 따라 Task를 실행한 뒤 데이터·로그·상태를 웹 UI에서 모니터링하는 Airflow의 전체 흐름.매일 새벽 주문 데이터를 가져와 정리하고 데이터베이스에 저장해야 한다고 생각해 보자. 단순한 cron 작업 하나로 시작할 수 있지만, 작업이 세 단계로 나뉘고 실패 시 재시도와 알림이 필요해지면 관리가 급격히 어려워진다.Apache Airflow(아파치 에어플로) 는 이런 배치 작업을 Python 코드로 정의하고, 정해진 순서와 시간에 실행하며, 결과를 웹 화면에서 추적할 수 있게 해 주는 오픈소스 워크플로 오케스트레이션 플랫폼이다.Airflo..

Server 2026.08.31

배포 전에 한 번 더: Python 소스와 패키지 보안 점검하기

Python 애플리케이션의 보안 문제는 우리가 작성한 코드에서만 발생하지 않는다. 안전하게 보이는 코드도 설치된 라이브러리에 알려진 취약점이 있거나, 설정 파일에 API 키가 들어 있거나, 빌드할 때 예상하지 못한 패키지가 설치되면 공격 경로가 생길 수 있다.다음 명령이 성공한다고 해서 애플리케이션이 안전하다는 의미는 아니다.python -m pip checkpip check는 설치된 패키지의 의존성이 서로 호환되는지 확인한다. 알려진 CVE, 위험한 소스 코드, 노출된 비밀정보까지 검사하지는 않는다.Python 프로젝트를 점검하려면 최소한 다음 네 영역을 나누어 봐야 한다.직접 작성한 소스 코드의 위험한 패턴직접·간접 의존성에 알려진 취약점이 있는지API 키, 비밀번호, 인증서 같은 비밀정보가 포함되었..

Programming/Python 2026.08.28

숫자를 한눈에: Grafana 설치부터 첫 대시보드까지

서버에 문제가 생겼을 때 숫자가 있다고 해서 곧바로 원인을 알 수 있는 것은 아니다. CPU 사용률, 요청 수, 오류율, 응답시간이 각각 다른 화면과 명령어에 흩어져 있으면 서로 어떤 관계가 있는지 파악하기 어렵다.Grafana(그라파나) 는 여러 데이터 소스에 저장된 정보를 한 화면에서 조회하고, 그래프와 표로 시각화하고, 특정 조건이 지속되면 알림을 보내는 오픈소스 관측성 플랫폼이다.Grafana를 사용하면 다음과 같은 질문에 빠르게 답할 수 있다.트래픽이 증가한 시점에 CPU 사용률도 함께 올랐는가?배포 이후 오류율과 응답시간이 어떻게 변했는가?어떤 서버나 컨테이너에서 문제가 시작되었는가?로그가 급증한 시간과 메트릭 이상 시점이 일치하는가?현재 상태가 정상 범위를 벗어나 알림을 보내야 하는가?이번 ..

Server/k8s 2026.08.28

kubectl을 반복하기 지쳤다면: K9s로 Kubernetes 빠르게 다루기

Kubernetes를 운영하다 보면 비슷한 명령을 계속 입력하게 된다.kubectl get pods -n productionkubectl describe pod api-7d9f6c8b5-x2k9m -n productionkubectl logs -f api-7d9f6c8b5-x2k9m -c api -n productionkubectl exec -it api-7d9f6c8b5-x2k9m -c api -n production -- sh명령 자체는 어렵지 않지만 Pod 이름과 네임스페이스, 컨테이너 이름을 매번 복사하는 일은 번거롭다. 여러 리소스의 상태가 계속 바뀌는 장애 상황에서는 get, describe, logs를 오가는 동안 흐름을 놓치기도 쉽다.K9s는 이 반복을 줄여 주는 Kubernetes용 터미..

Server/k8s 2026.08.27

로그를 뒤지기 전에: Prometheus로 시작하는 서버 모니터링

서버가 느리다는 연락을 받고 나서 CPU와 메모리를 확인하면 이미 장애가 지나간 뒤인 경우가 많다. 로그를 열어 보아도 언제부터 문제가 시작되었는지, 평상시와 무엇이 달라졌는지 바로 알기 어렵다.만약 다음 내용을 시간의 흐름에 따라 볼 수 있다면 어떨까?사용자의 요청이 갑자기 몇 배로 증가한 시점응답시간이 200ms에서 2초로 느려진 시점오류율이 평소보다 높아진 시점메모리가 매일 조금씩 증가하는 현상디스크가 언제 가득 찰지 예상할 수 있는 추세이런 숫자를 계속 수집하고, 필요한 형태로 조회하고, 위험한 상태가 지속되면 알려주는 도구가 Prometheus(프로메테우스) 다.Prometheus는 단순히 서버가 살아 있는지 확인하는 감시 프로그램이 아니다. 애플리케이션과 인프라에서 발생하는 숫자를 시간순으로 ..

Server/k8s 2026.08.27

2026년 웹 부하 테스트: Siege 대신 k6를 사용해보자

예전에 Siege를 이용해 웹 부하 테스트를 수행하는 방법과 Python Flask를 이용해 여러 원격 컴퓨터에서 Siege를 동시에 실행하는 방법을 정리한 적이 있다.Siege는 설치 후 명령어 한 줄만 입력하면 여러 사용자가 웹사이트에 동시에 접속하는 상황을 손쉽게 만들 수 있다. 지금도 특정 URL에 빠르게 부하를 주고 결과를 확인하는 용도로는 충분히 쓸 만하다.하지만 테스트가 조금씩 복잡해지면 아쉬운 부분도 생긴다.로그인 후 여러 API를 순서대로 호출하고 싶다.응답 코드뿐 아니라 응답 내용도 검증하고 싶다.평균 응답시간이 아니라 상위 95%의 응답시간을 기준으로 합격 여부를 판단하고 싶다.테스트 소스를 Git으로 관리하고 CI/CD에서 자동 실행하고 싶다.결과를 Prometheus와 Grafan..

Server/k8s 2026.08.27

siege 웹부하테스트기 원격 동시실행 방법(python flask기반)

siege를 활용하여 원격 컴퓨터에서 동작하는 시스템을 동시에 실행하고 싶은 생각이 든다. 다양한 방법이 있지만 python의 flask기반의 웹서버를 기동하고 웹URL을 호출하면 실행되게 만들면 원격 컴퓨터에서 동시에 siege를 동시에 실행할 수 있다.[siege 설치와 기본적인 사용방법은 다음 링크를 참조] 웹 부하 테스트 방법(siege opensource)웹 부하테스트를 지원하는 오픈소스 프로그램을 소개하고자 한다. siege 라는 프로그램인데, 리눅스 환경에서 명령어 기반으로 손쉽게 부하를 발생하고 테스트 할 수 있는 방법을 제공한다. 예전juhpark.tistory.com 먼저 위 링크에서 설정된 cygwin은 python3까지 설치가 끝난 상태이고, flask만 설치하면 된다.pip3 in..

Programming/Python 2025.08.23

웹 부하 테스트 방법(siege opensource)

웹 부하테스트를 지원하는 오픈소스 프로그램을 소개하고자 한다. siege 라는 프로그램인데, 리눅스 환경에서 명령어 기반으로 손쉽게 부하를 발생하고 테스트 할 수 있는 방법을 제공한다. 예전에는 바로 실행가능한 바이너리 패키지를 많이 제공 했던것 같은데 최근에 확인해 본 결과 각 환경에 맞게 컴파일하고 설치해야 해서 좀 시간이 걸렸다.일단 윈도우 10 환경에서 리눅스를 실행하는 방법으로 Cygwin을 설치하고 필요한 컴파일에 필요한 패키지를 설치한 후에 siege를 컴파일하는 손쉬운 방법을 설명하고자 한다. 설치방법아래 링크에서 최신 cygwin 프로그램을 기본으로 설치한다. Cygwin InstallationCygwin Get that Linux feeling - on Windows Installing..

Software/Automation 2025.07.19

온라인 영어 암기 단어장 만들기(9) - 학습결과 저장하기

학습을 끝까지 마친 경우, word, word_set, ws_rel_model 세개의 collection의 study_cnt 값을 1 증가시킨다.mongo 데이터베이스의 경우, $inc 를 사용하여 값을 증가시킬수 있다.await word_set_model.updateOne( {_id:req.query.id}, /* 필터링 조건 */ {$inc:{study_cnt:1}} /* study_cnt 값을 1 증가*/ ) update_study_cnt  라우터를 만들어 호출 하면 끝router.get('/update_study_cnt', async(req, res) => { console.log(req.session.username) if(r..

온라인 영어 암기 단어장 만들기(8) - 학습화면 만들기

학습을 하는 화면은 뭔가 동적인 움직이 있으면 좋을 거 같다. 그래서 CSS 에니메이션을 테스트해 보고 코드를 만들어 주는 다음 사이트를 활용하여 구현하였다. Animista 사이트 안에서는 원하는 에니메이션을 선택하면 움직임을 바로 보여주어 테스트 해보고 원하는 에니메이션의 코드를 바로 보여주어 적용할 수 있다.  Animista - On-Demand CSS Animations LibraryAnimista is a CSS animation library and a place where you can play with a collection of ready-made CSS animations and download only those you will use.animista.net 너무 현란한 움직임은 학..

반응형