크롤러 DB 부하를 줄인 DML Broker 설계
크롤러의 DB 직접 연결을 대기열과 커넥션 풀을 둔 공통 Broker로 옮겼습니다.
결과lock·connection 오류 하루 3~4건 → 0건
김현욱, 데이터 엔지니어입니다.
오픈소스 보안 데이터를 수집하면서 DB, 인프라, 고객사 데이터 전달까지 맡아왔습니다.
측정한 변화와 운영 결과를 기준으로, 분야별 4개씩 골랐습니다.
비용·용량·처리 속도·누락 개선을 수치로 확인한 작업입니다.
용량과 조회 범위, 연결 오류와 데이터 전달 장애를 줄인 작업입니다.
누락 복구, 재처리와 전달 속도를 실제 데이터로 확인했습니다.
비용·자원 부족·반복 작업을 줄이고 공통 실행 환경을 운영했습니다.
수집 시간과 식별 결과를 측정하고 원문과 대조해 검증했습니다.
팀이 반복해서 사용하는 운영 규칙과 완료한 검토 결과입니다.
실제 사용 흐름과 구현 범위가 확인된 프로젝트를 골랐습니다.
논문·등록특허와 실제 장비를 분석한 연구 기록입니다.
분야별로 작업 내용과 결과를 정리했습니다.
용량과 쿼리, 연결 부하를 실제 운영 조건에서 고친 기록입니다.
크롤러의 DB 직접 연결을 대기열과 커넥션 풀을 둔 공통 Broker로 옮겼습니다.
결과lock·connection 오류 하루 3~4건 → 0건
실행계획에서 collation 불일치로 인한 전체 스캔을 찾아 조인·식별자·인덱스를 수정했습니다.
결과실행계획상 스캔 약 130만 건 → 약 6,000건
운영 DB를 읽기 전용으로 실측하고, 저장 구조와 전환 비용을 기준으로 엔진 후보를 비교했습니다.
결과4개 인스턴스 실측 · 검토·리뷰 완료 · 엔진 채택 결정 대기
실제 실행 쿼리와 EXPLAIN으로 사용 여부를 확인한 뒤 불필요한 인덱스와 테이블을 정리했습니다.
결과배포 DB 2.6TB → 1.2TB · 초기 설치 12시간 → 6시간
장비별 쓰기 성능을 먼저 비교하고 설정을 조정한 뒤 인스턴스별 순서에 따라 버전을 올렸습니다.
결과MySQL 8.0 → 8.4 LTS · 당시 고객사 8곳 반영
변경량이 큰 파일 데이터와 나머지 데이터를 별도 인스턴스로 분리해 전달 지연을 줄였습니다.
결과binlog 전달 이슈 일 1~2건 → 월 1~2건
한 테이블에 섞인 버전 데이터를 언어별로 나누고 라이선스 매핑을 JSON으로 관리했습니다.
결과단일 테이블 2~3억 행 → 최대 언어 테이블 약 6,000만 행
원본 수집부터 재처리, 고객사 DB에 반영하는 경로까지 다룹니다.
파일 단위 binlog를 직접 파싱하고, 정상 변환된 DML을 멱등 UPSERT로 적용하도록 바꿨습니다.
결과파일당 처리 속도 평균 2.5배 · 최대 5배
고객사에 전달하는 binlog 파일의 암호화와 다운로드 상태 확인 경로를 정리했습니다.
결과AES-256-GCM 암호화 전환 설계·구현 기록
외부 데이터를 먼저 보존해 파서 수정 후에도 API를 다시 호출하지 않고 재처리하도록 바꿨습니다.
결과적용 소스 재처리 시 외부 API 호출 0건
고객사 보안 조건에 맞는 배포 시나리오를 검토하고 기술지원팀이 접수한 동기화 문제를 재현했습니다.
결과배포 시나리오·검증 기준·재처리 절차 정리
레지스트리 원본과 DB를 대조해 실제 누락을 찾고 재시도·백필 경로를 고쳤습니다.
결과RubyGems 누락 제품 101개 → 4개
고객사 동기화 모듈의 로그 형식과 수집 API를 정리해 중앙에서 지연을 확인하도록 했습니다.
결과1일 이상 미갱신 고객사 감지 기준 수립
수집용 중간 데이터가 고객사에 전달되지 않도록 수집·배포 영역과 메타·파일 경로를 나눴습니다.
결과수집·배포 분리 · 메타 → 파일 반영 순서 정리
활성도와 유지보수 신호를 수집해 중요한 컴포넌트를 더 자주 갱신하도록 큐를 구성했습니다.
결과Stars·Forks·Commits·기여자 수 4종 지표 적용
생태계별 신규 크롤러를 추가하고 기존 크롤러를 Python으로 옮겨 유지보수 방식을 통일했습니다.
결과8개 생태계 수집 · npm 버전 4,000만 건+
자원·비용·장애를 확인하고 반복되는 운영 작업을 줄였습니다.
Deprecated된 RAW 저장소 구성안입니다. 데이터별 저장 방식과 후보 비교 과정을 기록으로 보관합니다.
기록Deprecated · 저장소 비교와 설계 기록 보관
여러 크롤러가 함께 쓰는 스케줄, 자원, 네트워크와 장애 대응 경로를 관리했습니다.
결과80개+ 크롤러 공통 실행 환경 운영
개인 ID·SSH 키·공용 디렉터리 권한을 스크립트로 관리해 서버별 수작업을 줄였습니다.
결과IDC·In-house 서버 12대 계정 관리 통일
서버마다 흩어진 로그와 DB 지표를 모아 고객사별 동기화 상태를 한 화면에서 확인했습니다.
결과물리 서버 5대의 동기화 상태를 한곳에서 확인
DB 부하를 먼저 분산한 뒤 IDC로 이전하고, AWS에는 운영 DB를 남겼습니다.
결과AWS DB 월 비용 5,000만원 초과 → 300만원 미만
IDC 클러스터에 사내 노드를 연결하고 자원 배치와 네트워크 경로를 조정했습니다.
결과2대 → 6대 · Pod 할당 실패 주 70~100건 → 1~5건
사내 Git 포지 서버 재구성 개발을 완료했습니다. 서버 2대의 역할 분리와 저장·인증·백업의 설계 판단을 정리했습니다.
결과개발 완료 · 서버 2대 구성과 10개 설계 항목 검토
DB·크롤러·백업·배포 지표를 같은 시간축으로 모아 장애 원인을 확인했습니다.
결과팀 서버 약 10~20대의 상태를 한 화면에서 확인
백업 생성부터 체크섬·분할 압축·NAS 전송·완료 알림까지 정기 실행으로 묶었습니다.
결과월 1회 수작업 → 알림 확인 · 약 2년간 자동화 오류 0건
취약점과 라이선스 데이터를 수집하고 판정 근거를 확인했습니다.
채널·모듈 정보를 보존하는 수집기와 Airflow DAG를 구현하고, 65,440개 문서 시험 적재와 회귀 검증을 마쳤습니다.
결과개발 완료 · 65,440개 문서 시험 적재 · 최종 파싱 오류 0건
라이선스 원문과 LLM 분류·판단 근거를 함께 저장하고 운영 데이터셋을 통합했습니다.
결과라이선스·예외 약 800건 분류 · 정확도 미측정
배포판별 권고안 형식에 맞춰 수집기와 버전 판정 로직을 나누고 원본 변경을 추적했습니다.
결과Alpine·RHEL·Debian·Ubuntu 수집 구조 정비
공개 호환성 표를 수집해 SPDX 식별자 두 개의 조합을 조회할 수 있는 DB로 만들었습니다.
결과라이선스 쌍 약 3만 건 적재 · 당시 규모를 회고한 수치
CVSS와 공개 위협 신호를 함께 표시해 실제 제품의 취약점 대응 순서를 판단하도록 했습니다.
결과당시 CVE 약 20만 건의 점수 산출 · 회고 기준
OS별 파서를 정리하고 Ubuntu는 웹 요청 대신 Git 원본을 파싱해 패치 버전을 수집했습니다.
결과Ubuntu 수집 1~2주 → 8시간 이내
이슈, 문서, 테스트와 배포 절차를 팀에서 함께 쓰도록 정리했습니다.
수집처별 약관과 API 정책을 대조해 직접 수집, 대체 경로, 서면 협의 대상을 구분했습니다.
결과검토·리뷰 완료 · 미통합 수집기 22개와 이관 범위 정리
이슈와 문서에 같은 업무 유형을 붙이고 작업마다 같은 이름의 문서를 연결했습니다.
결과17종 업무 유형 · 이슈와 문서 1:1 연결 · 운영 가이드 6개
저장소마다 달랐던 테스트·리뷰·이미지 배포를 중앙 kit로 묶고 AI 호출 전에 비밀값을 검사했습니다.
결과공통 검증 루틴 적용 · 도입률 수치는 미측정
업무 밖에서 만들고 사용한 도구입니다. 운영 범위와 남은 과제를 함께 적었습니다.
나라장터 공고를 키워드와 LLM으로 선별해 Discord로 보내고, 공고 내용에 관해 질문할 수 있도록 했습니다.
결과영업·마케팅 담당자가 알림 확인·후속 질의에 사용
Discord에서 요청한 작업의 결정 이유·검증 결과·백업 경로를 Markdown 위키에 남깁니다.
결과Discord → Hermes → git 기반 작업 기록 연결
기획·생성·검수·기록을 연결하고 업로드 전 승인 단계를 둔 영상 자동화 플랫폼입니다.
결과채널 11개 운영 확인 · 자동 업로드 상태 확인 필요
랜덤 도구와 브라우저 게임을 만들며 다국어·공유·랭킹 연동을 실험합니다.
결과React/Vite 기반 도구·게임 구현 · 사용량 미확인
IoT 펌웨어를 획득하고 분석·퍼징한 대학원 연구 기록입니다.
실제 펌웨어를 대상으로 커버리지와 크래시 탐지를 개선한 석사학위 연구입니다.
결과EF-Fuzz 석사학위논문 · 후속 FIRM-COV 연구로 확장
복합 에뮬레이션과 PSO 기반 변이 최적화를 결합한 펌웨어 퍼징 방법을 정리했습니다.
결과펌웨어 퍼징 장치 및 방법 등록특허
PLC와 라우터에서 UART/JTAG·디버깅 셸을 확보해 펌웨어를 동적으로 분석할 환경을 만들었습니다.
결과실제 장비 VxWorks 셸 획득·분석 절차 정리
일치하는 프로젝트가 없습니다. 다른 검색어를 입력하거나 검색어를 지워주세요.