Hermes + Discord 기반 개인 LLM Wiki 운영 시스템
채팅으로 끝나는 AI 사용을 줄이고, 작업 결정·검증 결과·백업 경로만 골라 git 기반 llm-wiki에 남기는 개인 지식관리 운영 흐름.
석사 때 IoT 펌웨어 보안을 연구하던 시절부터 래브라도랩스에서 일해 온 지금까지의 기록입니다. 크롤러를 새로 짜고 비대해진 DB를 줄이고 고객사 동기화가 멈추기 전에 먼저 알아차리도록 만드는 일을 해왔고, 틈틈이 개인 프로젝트도 만들고 있습니다. 보기 좋은 산출물보다 실제로 오래 굴러가는 데이터 시스템을 어떻게 고쳤는지에 초점을 맞췄습니다.
30억~60억 건 데이터 플랫폼 · DB 용량 53.8% 절감 · 5년 1,000건+ 이슈 관리 · MySQL 무중단 LTS 업그레이드 · IEEE Access 논문 · 등록특허
세종대학교 대학원에서는 IoT 펌웨어 보안·퍼징을 연구했고 래브라도랩스에서는 오픈소스 보안 데이터가 제품으로 들어가기까지의 수집·저장·배포·운영을 맡아왔습니다.
제가 주로 맡았던 일은 문제를 한 번 해결하고 끝내는 쪽보다, 다음 운영자가 덜 고생하도록 구조를 바꾸는 쪽에 가까웠습니다. 사람이 서버에 접속해 직접 돌리던 수집 작업은 Airflow/Kubernetes 위로 옮겼고 근거 없이 커진 MySQL 인덱스는 실행 계획과 실제 쿼리로 검증해 줄였으며, 고객사 on-premise 동기화는 Grafana·Slack·Jira까지 이어지는 관측 흐름으로 바꿨습니다. 이 포트폴리오는 그 과정에서 남은 회사 실무, 연구, 개인 프로젝트를 한곳에 묶은 것입니다.
공개 범위에 맞춰 비공개 시스템·업무 도구·고객사 식별 정보는 일반적인 기술 용어로 바꿨습니다. 수치·기간·역할은 llm-wiki의 AI 문서와 Jira/Confluence에 근거가 있는 것만 사용했습니다.
각 항목은 "무엇을 만들었다"에서 멈추지 않고 왜 그 구조가 필요했는지와 운영 중 어떤 위험을 줄였는지를 먼저 보도록 다시 정리했습니다. 내부 문서에 남아 있는 Airflow 전환, DB 리엔지니어링, Binlog shipping service 모니터링, 이슈 추적 기록을 기준으로 실제 작업자의 판단이 드러나게 다듬었습니다.
처음 보는 사람이 전체 맥락을 잡기 쉬운 작업부터 골랐습니다.
PDF 바로 다운로드 미리보기개인 프로젝트 → 최신 실무 항목 → 기반 실무 항목 → 학술·연구 순
채팅으로 끝나는 AI 사용을 줄이고, 작업 결정·검증 결과·백업 경로만 골라 git 기반 llm-wiki에 남기는 개인 지식관리 운영 흐름.
블로그, 위키, 문서, 포트폴리오가 따로 낡지 않도록 Next.js 앱과 Go API, DB·캐시·게이트웨이를 한 운영 단위로 묶은 개인 작업장.
쇼츠를 한 번 만들어 끝내는 도구가 아니라 기획, 생성, 검수, 업로드, 기록까지 반복 가능한 운영 흐름으로 묶어본 개인 자동화 MVP.
작은 랜덤 도구와 캐주얼 게임을 서비스처럼 다듬는 실험. i18n, 게임 로직 분리, 랭킹·광고·공유 흐름까지 염두에 둔 React/Vite 프로젝트.
mysqlbinlog 통째 리플레이의 All-or-Nothing 한계를, binlog 이벤트를 직접 파싱해 UPSERT로 적용하는 Go 기반 CDC로 바꿔 재시도해도 깨지지 않게 만든 재설계. 파일당 처리 속도 평균 2.5배(최대 5배).
고객사로 나가는 binlog 경로를 난독화 수준에서 멈추지 않고 AES-256-GCM 기반 암호화와 다운로드 상태 관측까지 갖춘 구조로 전환.
재수집 때마다 외부 API를 다시 호출하던 구조를 RAW 보존·재파싱 흐름으로 바꿔 장애와 재처리를 낮은 비용으로 바꾼 데이터 파이프라인 개편.
외부 원천이 사라져도 데이터를 다시 만들 수 있도록 메타·바이너리·Git 원본을 보존하는 자체 RAW 데이터 저장 기반을 설계.
태그 없는 이슈와 흩어진 문서를 17종 업무 유형, 작업↔문서 1:1 규칙으로 정리해 온보딩과 추적 비용을 줄인 팀 운영 개선.
사람이 서버에 붙어 실행하던 수집 작업을 Airflow/Kubernetes 운영 모델로 옮기고 DiskPressure·etcd 지연 같은 장애를 RCA로 닫은 기록.
물리 서버 5대에 흩어진 on-premise 동기화 상태를 Vector, TimescaleDB, Grafana, Slack/Jira 알림으로 한 화면에서 보이게 만든 작업.
비용을 줄이기 위해 무작정 옮긴 작업이 아니라, 데이터와 검색 인덱스를 검증 가능한 경로로 이전하고 AWS 반복 과금을 끊은 인프라 전환.
직접 접근이 어려운 네트워크 조건에서 WireGuard로 in-house 워커를 붙여 Kubernetes 자원을 한 클러스터처럼 쓰게 만든 확장 작업.
1,000건 넘는 작업과 장애를 그냥 처리하지 않고 유형, RCA, 완료 흐름으로 남겨 팀이 다시 같은 문제를 추적할 수 있게 만든 운영 체계.
외부 replica 연결을 열기 어려운 고객사마다 다른 보안 조건에 맞춰 binlog 동기화 구성을 적용하고 깊은 기술 이슈까지 직접 닫은 지원 기록.
repo마다 갈라지던 개발 완료 흐름을 중앙 bootstrap kit로 묶고, Jira 브랜치·Bitbucket branch pipeline·Claude 리뷰·Slack 알림·Docker image push까지 같은 루틴으로 적용한 작업.
12개 언어 크롤러의 누락과 구조 문제를 결함 유형으로 쪼개 보고 V2 구조와 transformer로 새 데이터 플랫폼 이관 기반을 만든 작업.
CVE만 보는 수집에서 벗어나 typosquatting, dependency confusion, 계정 탈취형 악성 패키지까지 제품 데이터 범위로 끌어온 보안 데이터 작업.
CPU 부하의 원인을 단순 증설로 덮지 않고 라이브러리 컴포넌트 테이블의 식별자·인덱스·정합성 문제까지 따라가며 고친 DB 설계 개선.
수집 결과를 그대로 믿지 않고 고객사 OS 이미지, 커널 유발 취약점, 오탐·미탐 케이스를 근거 있는 보고서로 다시 검증한 작업.
인덱스를 줄였다는 결과보다, 실제 쿼리 95개와 EXPLAIN으로 311개 인덱스의 사용 여부를 증명한 뒤 2.6TB DB를 1.2TB로 줄인 과정.
AI를 장식처럼 붙인 것이 아니라, 복잡한 조인과 외부 의존을 줄이고 라이선스 원문 분석 결과를 운영 데이터셋으로 만드는 데 사용한 파이프라인.
배포판마다 다른 보안 권고안 형식을 한 방식으로 억지 통합하지 않고 Alpine·RHEL·Debian·Ubuntu별 특성에 맞춰 수집기를 다시 잡은 작업.
고객사가 먼저 장애를 알려주기 전에 중앙에서 상태를 볼 수 있도록 on-premise 동기화 모듈의 로그 포맷과 수집 API를 정리한 작업.
DB 안에만 있던 운영 지표를 크롤러, 백업, CI/CD, 고객사 동기화 상태와 함께 Grafana에서 볼 수 있게 만든 관측 기반.
백업 파일을 만드는 것에서 멈추지 않고 공지, 중지, 체크섬, 분할 압축, NAS 이동, 검증까지 복구 가능한 절차로 묶은 작업.
긴급 DDL이 사람 기억에 기대지 않도록 요청, 승인, 실행, 반영, 전파, 형상 검증으로 배포 DB 변경 흐름을 다시 세운 정책 작업.
운영 DB와 고객사 on-premise까지 연결된 MySQL을 중단 없이 올리기 위해 인스턴스별 검증과 rollout 순서를 설계한 업그레이드.
고객사로 전달되는 변경 로그가 평문처럼 노출되지 않도록 동기화 경로에 먼저 보호 장치를 넣은 보안 개선의 초기 단계.
모든 데이터가 한 DB에 섞여 장애와 확장의 경계가 흐려진 상태를 데이터 성격별 인스턴스와 복제 구조로 다시 나눈 재설계.
한 프로세스에 몰려 있던 취약점 수집을 단계별로 분리하고 스키마를 정규화해 실패 지점과 재처리 범위를 명확히 만든 개편.
유사성 분석 도구의 정확도 문제를 “결과가 이상하다”에서 멈추지 않고 식별자 안정성 문제까지 추적해 내용 기반 해시로 고친 디버깅.
라이선스 이름을 저장하는 수준을 넘어 SPDX 식별자 기준으로 함께 써도 되는지 판단할 수 있는 호환성 데이터를 만든 기반 작업.
수집·배포·서비스가 한 DB에 묶여 수집 흔적까지 고객사로 흘러가던 구조를, 수집/배포 영역과 메타·파일 2계열로 나눠 binlog 반영 순서와 PROD 정합성을 잡은 재설계.
CVSS 점수만으로는 현장에서 패치 순서가 정해지지 않아, 실제 제품 분석 신호와 추가 위협 요소를 함께 반영한 우선순위 체계.
OS별 보안 권고안의 형식 차이를 파서와 데이터 모델에 반영해 패치 버전까지 실무에서 쓸 수 있는 취약점 데이터로 맞춘 작업.
모든 오픈소스 컴포넌트를 같은 주기로 긁는 대신, 활성도와 유지보수 신호를 점수화해 수집 자원을 중요한 곳에 먼저 쓰게 한 최적화.
언어 생태계가 늘어날 때마다 임시 크롤러를 붙이지 않고 8개 언어 커버리지를 확보하며 유지보수 가능한 구조로 다시 쌓은 작업.
텍스트 매핑과 한 테이블에 기대던 라이선스·버전 데이터를 언어별 테이블과 JSON 기반 DB 관리 구조로 옮긴 초기 기반 공사.
실기기 없이 펌웨어를 얼마나 깊게 실행시킬 수 있는지에 집중한 연구로, 포트폴리오의 보안 연구 기반을 보여주는 논문 작업.
변이 퍼징만으로 닿기 어려운 경로를 심볼릭·콘콜릭 실행과 결합해 돌파하려 한 펌웨어 취약점 검출 특허.
석사 기간 동안 실제 펌웨어를 대상으로 커버리지와 크래시 탐지를 끌어올리려 했던 연구의 중심 결과.
복합 에뮬레이션과 PSO 기반 변이 최적화를 결합해 IoT 펌웨어 취약점을 찾는 방법을 특허로 정리한 연구 성과.
펌웨어 분석의 출발점인 획득 문제를 UART 방어 기법과 우회 연결 방식으로 다룬 초기 임베디드 보안 연구.