Mobile payment app upgrades and operations
We improved and ran the payment features of a mobile payment service operated by a card issuer. People pay with it every day, so a single defect is immediately a money problem. As payment methods were added and screens changed, the priority was keeping existing payment flows steady. The work spans the whole service where app, web, and server meet: the payment screen, registering other issuers' cards, billing history, and release automation.
Pick a card, account, or points and pay with one barcode
The in-store payment screen lets a customer pick one of their registered credit or debit cards, bank accounts, points, or gift vouchers and pay with a barcode or QR code. It is used at the checkout counter, so the few seconds between opening the app and seeing the code are felt directly. The rule for this screen was that adding payment methods must not lengthen the step of choosing one.

Payment-method registration that puts other issuers' cards on the same list
For the open payment scheme in which card issuers accept each other's cards, we developed the flow for registering other issuers' credit and debit cards. Under payment-method registration, the customer picks an issuer and adds a card, and it lands on the same list as the issuer's own cards to be chosen on the payment screen. Because each issuer has its own rules but they share one list, every release separately checked that payments with the issuer's own cards were unaffected.

A billing screen that runs from the upcoming amount to early payment
The billing screen shows this month's upcoming payment amount and each card's transaction history, and leads into early payment before the due date. A wrong amount on this screen turns straight into a call to customer service, so the screen shows the amount exactly as the server sends it, without recalculating or rounding it.

Release automation that removed the manual work from every release
Every release of a financial app comes with a build, signing, store review submission, and a version record. When people walk through those steps by hand, a step gets skipped or a build goes out with the wrong settings. We automated the repeated release procedure so that whoever ships it, the same steps run in the same order with the same result.

Highlights
Barcode and QR payments that pick a card, account, or points on one screen
Payment-method management that also takes other issuers' cards
Release automation that cut the manual steps and room for error in every release
Insights
GA4 client_storage: 'none'은 정말 쿠키를 막을까?
두 달 전 이 블로그에 「GA4 쿠키 없이 쓰기」라는 글을 썼습니다. clientstorage: 'none' 으로 쿠키 저장을 끄고, 자체 분석이 쓰던 익명 ID 를 clientid 로 넘기면 쿠키 0개로 GA4 를 쓸 수 있다는 내…
GA4 Measurement Protocol: gtag.js 없이 서버에서 이벤트 보내기
랜딩 페이지의 전송량을 파일 단위로 쪼개 보다가, 가장 큰 파일이 우리 코드가 아니라는 것을 알았습니다. Google Analytics 의 gtag.js 였고, 방문 한 번에 176KB 를 받고 있었습니다. 페이지 전체가 1,094K…
중소 제조업 AI 도입 순서: DX를 먼저 끝내야 할까?
공장을 가진 중소·중견 제조기업 16만여 곳 가운데 스마트공장을 도입한 곳은 19.5%입니다. 회사가 작을수록 이 비율은 더 떨어집니다. 중소벤처기업부가 2025년 4월에 낸 제1차 스마트제조혁신 실태조사 결과입니다. 그림: 기업 규…
Next.js loading.tsx와 404: 버튼이 화면보다 먼저 살아나게 하기
관리 화면 왼쪽 위에 사이드바를 접고 펴는 ☰ 버튼이 있습니다. 폭 하나 바꾸는 버튼인데, 대시보드에서 누르면 2초 넘게 아무 반응이 없었습니다. 레이아웃만 바꾸는 일이 왜 이렇게 오래 걸리는지부터 들여다봤습니다. Next.js 16…



