AnJinSeok

회사 운영 환경을 집에 재현한 이유 — 로컬 SVN 서버 구축기

배경 운영 환경에서 테스트하지 않고도 검증하려면 동일한 환경이 필요하다. 이 글은 회사 SVN 서버 구성을 집 미니PC에 그대로 재현한 과정이다. 운영에 영향 없이 설정 변경을 먼저 검증하고, 검증된 내용만 운영에 반영하기 위해 구축했다. 로컬 PC는 Windows 11이지만 WSL을 설치해둬서, 클라이언트 쪽도 리눅스 환경으로 통일해 놓았다....

백엔드 개발자가 네트워크 레이어까지 추적한 이유 — VoIP 지연 7초의 진짜 원인

배경 중소기업에서 백엔드 개발자는 애플리케이션 레이어만 보는 게 아니다. 이 글은 장애 원인이 코드가 아닌 네트워크 레이어에 있었음을 추적한 경험이다. 사무실 인터넷 전화 당겨받기에서 7초 지연이 발생했다. 전화 담당 기사는 포트 차단을 원인으로 지목했지만, 실제 원인은 전혀 다른 곳에 있었다. TCP: 5060, 19600, 19700...

인증결제 뒤로가기 이슈 — 데이터는 남았는데, 맞는 데이터가 없다

배경 우리 서비스에는 인증결제 모듈이 있다. 이 모듈은 내가 처음부터 짠 코드가 아니다. 구조를 처음 봤을 때부터 조금 불안했다. 비즈니스 로직과 그걸 처리하는 컨트롤 코드가 하나의 파일 안에 같이 있었고, 핸들러는 또 별도 파일로 분리되어 있었다. 역할 분리가 어중간하게 되어 있는 구조였다. 그리고 로그는 전부 DEBUG 레벨로 처리되어 있었다...

LLM 로컬 구축 일기 #2 — PG 도메인 챗봇, 설계부터 시작합니다

오늘의 출발점 지난 일기에서 로컬 LLM 구축을 시작하겠다고 다짐했다. 그런데 “그냥 LLM을 돌려보자”는 막연한 목표로는 오래가지 못한다는 걸 안다. 방향이 필요했다. 그래서 오늘은 구체적으로 무엇을 만들 것인가를 정했다. PG 도메인 챗봇을 만들기로 했다 나는 PG(결제대행사) 회사에 다닌다. 매일 가맹점에서 같은 질문이 반복해서 들어...

LLM 로컬 구축 일기 #1 — 금감원 이슈로 로컬에서 시작합니다

오늘의 고민 요즘 머릿속에 하나의 프로젝트가 계속 맴돈다. LLM을 구축해서 회사에 적용시키는 것. ChatGPT, Claude 같은 대형 모델들이 업무 생산성을 미친 듯이 올려주는 걸 매일 체감하고 있다. 그래서 자연스럽게 “이걸 우리 회사 업무에도 녹여볼 수 없을까?” 라는 생각이 들었다. 구축부터 배포까지, 전체 파이프라인을 직접 경험해보...

멀티스레드 환경에서 로그 추적이 안 될 때 - Thread ID의 중요성

시스템 구성 승인/취소 중계 서버에서 결제 처리 후 가맹점에 결과를 노티(Notification)로 전달하는 구조다. 노티 전송은 멀티스레드로 동작 가맹점이 노티 수신 URL을 등록하면 해당 주소로 거래 데이터가 전송됨 1곳이든 여러 곳이든 URL 단위로 등록 가능 (다중 노티 지원) 예시) 가맹점 A의 노티 수신 URL 등록 - ...