내가 JUnit5에 병렬화를 도입한 이야기 - 메서드 단위
JUnit5 Vintage 엔진에 메서드 단위 병렬화를 도입한 과정을 다뤘습니다. 고정 크기 스레드 풀에서 발생한 교착 상태를 ForkJoinPool로 해결했습니다.


JUnit5 Vintage 엔진에 메서드 단위 병렬화를 도입한 과정을 다뤘습니다. 고정 크기 스레드 풀에서 발생한 교착 상태를 ForkJoinPool로 해결했습니다.

안드로이드 기기에서 LLM을 직접 구동하는 MLC LLM 활용 방법을 소개했습니다. 환경 구축부터 샘플 앱 빌드, 모델 변환과 배포까지의 흐름을 정리했습니다.

OpenStack Nova가 libvirt lifecycle 이벤트를 받아 VM 전원 상태를 비동기적으로 감지하고 DB와 동기화하는 흐름을 설명했습니다. 이벤트 매핑, 큐 전달, 지연 처리, ComputeManager의 상태 비교까지 정리했습니다.

차량 내 에이닷 서비스를 위해 OEM과 플랫폼 사이에 Auto Proxy 서버를 구축하고 gRPC를 도입했습니다. 양방향 스트리밍과 Protocol Buffers로 실시간 데이터 전송 효율을 높였습니다.

Poetry와 UV를 실제로 비교하며 속도와 사용성을 점검했습니다. UV는 더 간결했지만 극적인 차이는 아니어서 신규 프로젝트부터 시험 도입하는 접근이 적합했습니다.

UV를 PIP 대체 도구로 소개하며 설치와 기본 사용법, 주요 명령어를 정리했습니다. 가상환경 자동화와 빠른 성능, 의존성 및 Python 버전 관리 기능을 함께 설명했습니다.

vLLM의 핵심 기술과 성능 최적화 옵션, 그리고 v1 엔진의 구조 개선을 정리했습니다. 기능 호환성과 운영 단순성을 높이면서 성능을 끌어올린 흐름을 함께 설명했습니다.

LLM 서비스는 TTFT, ITL, 토큰 처리량 같은 지표로 부하테스트해야 합니다. vLLM 예제를 통해 병목과 네트워크 문제를 점검하고 사용자 체감 성능을 개선할 수 있습니다.

다양한 기기와 브라우저 조합에서 발생하는 웹 QA 이슈와 대응 노하우를 정리했습니다. Cypress를 활용해 반복 검증을 자동화하고 커버리지를 넓히는 방법도 소개했습니다.

오디오를 텍스트로 바꾸고 GPT로 LinkedIn 글을 자동 생성하는 이벤트 기반 워크플로를 소개했습니다. 프론트엔드와 AI 처리를 분리해 확장성과 유지보수성을 높인 점이 핵심입니다.

Function Calling의 개념과 작동 원리를 설명하고, Qwen·Llama·Gemma로 구현 차이를 비교했습니다. LLM과 애플리케이션의 역할 분리 및 모델별 파싱 방식도 함께 정리했습니다.

데이터셋 로딩 중 발생한 CUDA OOM의 원인을 `all_gather_object` 내부 동작에서 찾았습니다. 데이터를 chunk로 나눠 gather하도록 바꿔 GPU 메모리 사용량을 줄였습니다.

OpenAI 기반 MCP 에이전트를 Gemini 기반으로 전환한 실전 사례를 공유했습니다. 스트리밍 미지원과 출력 렌더링 이슈를 정리하고 해결 방향도 제시했습니다.

Cursor AI를 활용해 Python 기반 업무 자동화를 실험한 사용기였습니다. 사내 웹서버 모니터링 자동화와 VDI 환경의 설치 문제 해결 과정을 함께 공유했습니다.

AI 시대에 사람과 로봇을 구별하는 방법으로 WorldCoin의 월드ID와 홍채 인식을 소개했습니다. 다만 정보보호법과 개인정보 이슈로 표준이 되기에는 제약이 있다고 보았습니다.

Cursor IDE의 자동 코딩 기능으로 테트리스를 빠르게 만들고 수정한 경험을 공유했습니다. 신규 개발의 기획·설계와 반복 작업 자동화에 활용 가능성을 소개했습니다.

containerd와 OCI, CRI 표준을 통해 Kubernetes 구축이 더 단순해진 흐름을 정리했습니다. 온프레미스 환경에서 containerd 기반 설치 절차와 운영 포인트도 함께 소개했습니다.

Kotlin Multiplatform으로 Android와 iOS의 비즈니스 로직을 공유하는 구조를 소개했습니다. 플랫폼별 UI는 유지하면서 공통 모듈과 expect/actual, Ktor, SKIE로 연동하는 흐름을 설명했습니다.
