자동화 파이프라인 트러블슈팅: systemd 진단부터 API 폴백 설계까지
오늘은 원래 있던 라즈베리파이 자동화 파이프라인의 systemd 서비스 파일이 실제로 뭘 하는지 확인하다가, 결국 API 장애 대응용 폴백 시스템을 직접 설계하고 성능 최적화까지 하게 된 하루였다. 시작은 단순한 진단이었는데 끝은 동시성 프로그래밍까지 갔다.
운영하면서 막힌 문제와 공부한 내용을 다른 사람도 읽을 수 있게 정리한 글입니다.
오늘은 원래 있던 라즈베리파이 자동화 파이프라인의 systemd 서비스 파일이 실제로 뭘 하는지 확인하다가, 결국 API 장애 대응용 폴백 시스템을 직접 설계하고 성능 최적화까지 하게 된 하루였다. 시작은 단순한 진단이었는데 끝은 동시성 프로그래밍까지 갔다.
매일 밤 자동으로 돌아가는 학습 기록 자동화 파이프라인이 자꾸 초안을 못 만들길래 원인을 뜯어보다가, 재시도 로직 설계와 API 호출 최적화에 대해 꽤 많은 걸 새로 알게 됐다.
이 글은 Claude Code 세션 기록을 자동으로 저장하고, 블로그 포스팅에 동적 태그를 적용하는 방법에 대한 기록입니다. 특히, 민감한 정보가 포함된 세션 기록을 안전하게 관리하는 방법과 프로젝트 명을 활용한 태그 시스템 구축에 대해 다룹니다.
새로운 프로젝트에 필요한 메일 발송 시스템을 구축하는 과정에서 SPF, DKIM, PTR 같은 생소한 개념들을 마주하며 머리가 복잡해졌습니다. 특히 이메일이 스팸함으로 가지 않고 제대로 '도착'하게 하려면 도대체 뭘 설정해야 하는지, 왜 그렇게 복잡한지 궁금증이 꼬리를 물었습니다. 직접 OCI Email Delivery 서비스를 파헤치며 이메일 발송의...
CUDA 코드를 빌드하면서 마주한 컴파일 경고 두 가지에 대한 해결 과정을 기록합니다. 빌드는 성공했지만 찝찝함을 남기는 경고들을 파헤치고, 왜 그런 경고가 발생하는지, 그리고 어떻게 해결해야 하는지 명확하게 정리했습니다.
SSH 접속이 갑자기 되지 않아 당황스러웠던 경험을 공유합니다. 복잡하게 느껴졌던 문제였지만, 단계별로 원인을 파악하고 해결책을 찾아가는 과정을 통해 시스템 오류 해결 능력을 키울 수 있었습니다.
이번 학습에서는 빅데이터 마이닝의 4장, '스트림 처리 기법'에 대해 깊이 파고들었습니다. 대규모 데이터가 실시간으로 쏟아지는 환경에서 데이터를 효율적으로 처리하고 분석하는 다양한 기법들을 배우고, 실제 문제 해결 과정을 통해 이해도를 높일 수 있었습니다.
서비스 레이어에서 유저 정보를 어떻게 꺼내야 하는지에 대한 깊이 있는 논의를 진행했습니다. 결론적으로 컨트롤러에서 인증 정보를 추출하여 서비스로 전달하는 방식(A)이 여러 장점을 가지며, 특히 모듈 간 통신(포트)에서 필수적임을 이해할 수 있었습니다.
이번 학습에서는 Flyway를 활용한 DB 스키마 관리 전략과 스프링 시큐리티의 인증 어노테이션을 효과적으로 사용하는 방법에 대해 깊이 있게 다루었습니다. 특히, 개발 초기 단계부터 DB 스키마 변경에 대한 효율적인 관리 방안과, API 개발 시 필수적인 인증 및 인가 처리에 대한 명확한 이해를 얻을 수 있었습니다.
2026년 4월 9일, 클라우드 컴퓨팅 과목의 일환으로 Terraform을 이용해 AWS EC2 인스턴스를 생성하고 웹 서버를 자동 설정하는 실습을 진행했습니다. 이번 실습을 통해 Terraform의 기본 파일 구조, 실행 흐름, 그리고 `user_data`를 활용한 자동화 과정을 깊이 이해할 수 있었습니다.
자바 AOP(Aspect-Oriented Programming)의 프록시와 어노테이션 개념이 처음에는 낯설었지만, 점차 명확하게 이해하게 되었습니다. 특히 멀티모듈 프로젝트 환경에서 AOP가 어떻게 동작하고 왜 필요한지에 대한 궁금증을 풀 수 있었습니다.
실제 운영 환경과 유사한 테스트 서버 환경을 구축하고, 이를 활용하여 블로그의 페이지네이션 기능을 검증하여 실제로 운영서버에 배포하는 과정을 마쳤습니다.
2026년 3월 3일, 외부에서 제 블로그 서버에 접속이 불가능한 문제가 발생했습니다. 문제 해결 과정과 그 원인, 그리고 앞으로 유사한 문제를 방지하기 위한 방법을 기록하고자 합니다.
이번 학습에서는 PostgreSQL 레플리카(Replica) 환경에서 테스트용 데이터베이스 스키마를 생성하고 관리하는 방법을 탐구했습니다. 복잡한 레플리카의 read-only 특성을 이해하고, 이를 극복하여 독립적인 테스트 환경을 구축하는 과정에 초점을 맞추었습니다.
두 대의 라즈베리파이4를 이용하여 PostgreSQL 스트리밍 복제 방식으로 레플리카 데이터베이스를 구축하는 과정을 정리해보았습니다. 운영DB의 변경 사항을 주기적으로 읽어와 테스트DB에 같은 스키마와 구조로 저장하고, 원본DB에 변화가 생기면 테스트DB도 같은 구조로 변하도록 하는 것이 목표였습니다. 이 과정에서 WAL, standby, re...
npm 패키지 관리의 핵심 개념들인 `package.json`과 `package-lock.json`, 그리고 `npm install` 명령어의 동작 방식을 이해하게 되었습니다. 또한, 의존성 트리, resolver, optional dependencies, peer dependencies 등에 대해서 공부한 과정을 공유합니다.
라즈베리파이 클러스터의 시스템 업데이트를 Ansible로 자동화하는 방법을 배웠습니다. SSH 키 설정부터 Playbook 작성, Cron을 이용한 자동 실행까지 구현해보았습니다.
GitHub push 오류를 해결하면서 Git의 인증 방식, 특히 SSH와 HTTPS의 차이점을 깊이 파고들었던 경험을 공유하려고 합니다. 제 개발 환경에서 겪었던 문제들을 해결하며 Git 인증에 대해 더 알아갈 수 있었습니다.
기존에 운영하던 서버들을 그대로 유지하면서 새로운 k3s 클러스터에 워커 노드로 통합하는 것은 생각보다 복잡한 과정이었습니다. 특히 Traefik과 svclb의 충돌, 그리고 Hostname 변경 후 발생한 여러 문제들을 해결하며 k3s의 내부 동작 방식을 탐구할 수 있었습니다.