회사 운영 환경을 집에 재현한 이유 — 로컬 SVN 서버 구축기
배경 운영 환경에서 테스트하지 않고도 검증하려면 동일한 환경이 필요하다. 이 글은 회사 SVN 서버 구성을 집 미니PC에 그대로 재현한 과정이다. 운영에 영향 없이 설정 변경을 먼저 검증하고, 검증된 내용만 운영에 반영하기 위해 구축했다. 로컬 PC는 Windows 11이지만 WSL을 설치해둬서, 클라이언트 쪽도 리눅스 환경으로 통일해 놓았다....
배경 운영 환경에서 테스트하지 않고도 검증하려면 동일한 환경이 필요하다. 이 글은 회사 SVN 서버 구성을 집 미니PC에 그대로 재현한 과정이다. 운영에 영향 없이 설정 변경을 먼저 검증하고, 검증된 내용만 운영에 반영하기 위해 구축했다. 로컬 PC는 Windows 11이지만 WSL을 설치해둬서, 클라이언트 쪽도 리눅스 환경으로 통일해 놓았다....
배경 중소기업에서 백엔드 개발자는 애플리케이션 레이어만 보는 게 아니다. 이 글은 장애 원인이 코드가 아닌 네트워크 레이어에 있었음을 추적한 경험이다. 사무실 인터넷 전화 당겨받기에서 7초 지연이 발생했다. 전화 담당 기사는 포트 차단을 원인으로 지목했지만, 실제 원인은 전혀 다른 곳에 있었다. TCP: 5060, 19600, 19700...
배경 우리 서비스에는 인증결제 모듈이 있다. 이 모듈은 내가 처음부터 짠 코드가 아니다. 구조를 처음 봤을 때부터 조금 불안했다. 비즈니스 로직과 그걸 처리하는 컨트롤 코드가 하나의 파일 안에 같이 있었고, 핸들러는 또 별도 파일로 분리되어 있었다. 역할 분리가 어중간하게 되어 있는 구조였다. 그리고 로그는 전부 DEBUG 레벨로 처리되어 있었다...
오늘의 출발점 지난 일기에서 로컬 LLM 구축을 시작하겠다고 다짐했다. 그런데 “그냥 LLM을 돌려보자”는 막연한 목표로는 오래가지 못한다는 걸 안다. 방향이 필요했다. 그래서 오늘은 구체적으로 무엇을 만들 것인가를 정했다. PG 도메인 챗봇을 만들기로 했다 나는 PG(결제대행사) 회사에 다닌다. 매일 가맹점에서 같은 질문이 반복해서 들어...
이전 글 → MaxScale GTID 복제 중단 트러블슈팅 저번에 MaxScale GTID 복제 중단 이슈를 분석하고, 유지보수 업체가 와서 복제를 재동기화했다. 그런데 이번엔 또 다른 이상한 현상이 발생했다. 시스템 구성 저번 글과 동일한 구성이다. VIP (DBM) 192.168.0.10 가상 IP, 평상시 1번 DB(마스터)를 ...
오늘의 고민 요즘 머릿속에 하나의 프로젝트가 계속 맴돈다. LLM을 구축해서 회사에 적용시키는 것. ChatGPT, Claude 같은 대형 모델들이 업무 생산성을 미친 듯이 올려주는 걸 매일 체감하고 있다. 그래서 자연스럽게 “이걸 우리 회사 업무에도 녹여볼 수 없을까?” 라는 생각이 들었다. 구축부터 배포까지, 전체 파이프라인을 직접 경험해보...
시스템 구성 VIP 192.168.0.10 가상 IP, Active/Standby 전환 시 자동으로 Active DB를 가리킴 Master DB (Active) 192.168.0.11 읽기/쓰기 담당 Slave DB (Standby) 192.168.0.12 Master 장애 시 Active 역할을 대체 Active/Stan...
시스템 구성 승인/취소 중계 서버에서 결제 처리 후 가맹점에 결과를 노티(Notification)로 전달하는 구조다. 노티 전송은 멀티스레드로 동작 가맹점이 노티 수신 URL을 등록하면 해당 주소로 거래 데이터가 전송됨 1곳이든 여러 곳이든 URL 단위로 등록 가능 (다중 노티 지원) 예시) 가맹점 A의 노티 수신 URL 등록 - ...
시스템 구성 VIP 192.168.0.10 가상 IP, Active/Standby 전환 시 자동으로 Active DB를 가리킴 Master DB 192.168.0.11 쓰기 전담 Slave DB 192.168.0.12 읽기 전담 (복제 대상) MaxScale의 readwritesplit 설정으로 Write는 Master, ...