<feed xmlns="http://www.w3.org/2005/Atom"> <id>https://anjinseok.github.io/</id><title>AnJinSeok</title><subtitle>PG(Payment Gateway) 백엔드 개발자 AnJinSeok의 기술 블로그</subtitle> <updated>2026-06-02T17:05:59+09:00</updated> <author> <name>AnJinSeok</name> <uri>https://anjinseok.github.io/</uri> </author><link rel="self" type="application/atom+xml" href="https://anjinseok.github.io/feed.xml"/><link rel="alternate" type="text/html" hreflang="ko-KR" href="https://anjinseok.github.io/"/> <generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator> <rights> © 2026 AnJinSeok </rights> <icon>/assets/img/favicons/favicon.ico</icon> <logo>/assets/img/favicons/favicon-96x96.png</logo> <entry><title>개발만 잘하면 되는 줄 알았다 — 일을 잘한다는 건 뭘까</title><link href="https://anjinseok.github.io/posts/what-makes-a-good-worker/" rel="alternate" type="text/html" title="개발만 잘하면 되는 줄 알았다 — 일을 잘한다는 건 뭘까" /><published>2026-05-19T19:31:18+09:00</published> <updated>2026-06-02T17:05:33+09:00</updated> <id>https://anjinseok.github.io/posts/what-makes-a-good-worker/</id> <content type="text/html" src="https://anjinseok.github.io/posts/what-makes-a-good-worker/" /> <author> <name>AnJinSeok</name> </author> <category term="일기" /> <category term="커리어" /> <summary>들어가며 요즘 머릿속에 계속 맴도는 질문이 하나 있다. 일을 잘한다는 건 뭘까? 예전의 나라면 답이 단순했다. 코드 잘 짜고, 버그 빨리 잡고, 시키는 거 깔끔하게 쳐내면 일 잘하는 사람이라고 생각했다. 근데 요즘은 그게 전부가 아니라는 걸 매일 느낀다. 나는 지금 주임이고, 회사에서 PG 개발팀 팀장으로 키워지고 있다. 대표님이랑 개발부장님이 나를 그쪽 방향으로 끌고 가려고 한다. 그 과정에서 대표님이랑 1대1로 대화를 나눴고, 그 뒤로 일을 바라보는 시각 자체가 좀 바뀌었다. 그 얘기를 정리해본다. 개발자는 보통 ‘자동화’부터 생각한다 개발자한테 일을 주면 대부분 비슷하게 반응한다. “이거 자동화하면 편하겠는데?” 물론 자동화는 중요하다. 반복 작업 줄이고, 사람 실수 막고...</summary> </entry> <entry><title>홈서버 보안, 막고 있다고 생각했는데 구멍이 있었다</title><link href="https://anjinseok.github.io/posts/home-server-security/" rel="alternate" type="text/html" title="홈서버 보안, 막고 있다고 생각했는데 구멍이 있었다" /><published>2026-05-12T23:16:20+09:00</published> <updated>2026-05-13T16:32:58+09:00</updated> <id>https://anjinseok.github.io/posts/home-server-security/</id> <content type="text/html" src="https://anjinseok.github.io/posts/home-server-security/" /> <author> <name>AnJinSeok</name> </author> <category term="DevOps" /> <category term="Security" /> <summary>발단 — 막고 있는데 왜 301이 찍히지? 홈서버에는 이미 UFW 방화벽과 Nginx 보안 설정이 어느 정도 갖춰져 있었다. 그런데 로그를 보다가 이상한 게 눈에 들어왔다. 4.228.184.28 - - [13/May/2026:13:06:48 +0900] "GET /wp-content/plugins/hellopress/wp_filemanager.php HTTP/1.1" 301 178 4.228.184.28 - - [13/May/2026:13:06:51 +0900] "GET /wp-content/plugins/hellopress/wp_filemanager.php HTTP/1.1" 444 0 분명 wp-content 경로 차단 설정이 있는데, 왜 처음 요청은 301이 찍힐까? 여기서 시작해서 기존...</summary> </entry> <entry><title>VARCHAR(255)로 등록하고 VARCHAR(100)에 넣으려던 날</title><link href="https://anjinseok.github.io/posts/nts-column-length-rollback-recovery/" rel="alternate" type="text/html" title="VARCHAR(255)로 등록하고 VARCHAR(100)에 넣으려던 날" /><published>2026-05-06T22:13:18+09:00</published> <updated>2026-05-06T22:13:18+09:00</updated> <id>https://anjinseok.github.io/posts/nts-column-length-rollback-recovery/</id> <content type="text/html" src="https://anjinseok.github.io/posts/nts-column-length-rollback-recovery/" /> <author> <name>AnJinSeok</name> </author> <category term="Backend" /> <category term="장애회고" /> <summary>들어가며 송금 60건이 VAN사를 통해 정상 처리됐는데, DB에는 기록이 하나도 없었다. 돈은 나갔는데 우리 시스템에는 흔적이 없는 상황. 원인을 추적해보니 노티 URL 컬럼 길이 문제였다. 사건의 흐름 1. 운영팀 → 가맹점 노티 URL 등록 (VARCHAR(255) 테이블에 저장) 2. 가맹점 → 송금 API 60건 요청 3. 서버 → A사 VAN API 호출 → 60건 전부 이체 성공 4. 서버 → DB 저장 시작 (@Transactional 내부) ├─ 로그 테이블 INSERT ← 성공 ├─ 거래내역 테이블 INSERT ← 성공 ├─ 메인계좌 테이블 INSERT ← 성공 └─ 노티...</summary> </entry> <entry><title>유출된 카드가 우리 PG로 돌아왔다</title><link href="https://anjinseok.github.io/posts/leaked-card-manual-payment/" rel="alternate" type="text/html" title="유출된 카드가 우리 PG로 돌아왔다" /><published>2026-04-21T19:43:40+09:00</published> <updated>2026-04-21T19:43:40+09:00</updated> <id>https://anjinseok.github.io/posts/leaked-card-manual-payment/</id> <content type="text/html" src="https://anjinseok.github.io/posts/leaked-card-manual-payment/" /> <author> <name>AnJinSeok</name> </author> <category term="Backend" /> <category term="Troubleshooting" /> <summary>배경 2025년 9월에 국내 대형 카드사에서 개인정보 유출 사건이 있었다. 297만 명분이 털렸고, 그 중 28만 명 정도는 카드번호, 유효기간, CVC, 비밀번호 일부까지 같이 나갔다고 했다. 사건 직후에 카드사 쪽에서는 “현재까지 부정결제 피해는 확인되지 않았다”고 발표했다. 유출 사건은 터진 날 끝나지 않는다. 몇 달 뒤에 현장에서 조용히 드러난다. 유출로부터 대략 7개월이 지난 시점에, 우리 PG로 그 정황으로 보이는 수기결제 2건이 올라왔다. 그때 받은 메일 한 통부터 정리해둔다. 글에 나오는 회사명, 가맹점, TID, 담당자 이름은 전부 가렸다. T26XXXXXXX로 쓰인 값은 실제 TID가 아니다. 시스템 구조 우리는 2차 PG다. 가맹점과 1차 PG 사이에 껴 있는 중...</summary> </entry> <entry><title>지급대행 시스템을 처음부터 혼자 만들면서 배운 것들</title><link href="https://anjinseok.github.io/posts/payment-agency-system/" rel="alternate" type="text/html" title="지급대행 시스템을 처음부터 혼자 만들면서 배운 것들" /><published>2026-04-15T23:17:35+09:00</published> <updated>2026-04-16T13:05:31+09:00</updated> <id>https://anjinseok.github.io/posts/payment-agency-system/</id> <content type="text/html" src="https://anjinseok.github.io/posts/payment-agency-system/" /> <author> <name>AnJinSeok</name> </author> <category term="Backend" /> <category term="설계" /> <summary>시작하게 된 이유 회사에 지급대행 시스템이 필요하다는 얘기가 나왔다. 기존에 없던 시스템이었고 누가 처음부터 만들어야 하는 상황이었는데, 그게 나한테 떨어졌다. 기획서 같은 것도 없었고 참고할 기존 코드도 없었다. 그나마 잡혀있던 건 “가맹점이 송금 요청을 보내면 우리 쪽에서 VAN사 API를 호출해 실제 이체를 처리한다” 정도의 큰 그림뿐이었다. 시스템 구조 가맹점과 VAN사 사이에서 중계하는 역할이다. 가맹점 → 지급대행 서버 → VAN사 API → 이체 처리 API는 크게 네 개다. 송금 API → VAN사에 실제 이체 요청 실명조회 API → 수취 계좌 실명 확인 잔액조회 API → 지급 계좌 잔액 확인 이체결과조회 API → 우리 DB에서 ...</summary> </entry> </feed>
