| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- React
- FastAPI
- 크롤링
- 마이그레이션
- 아키텍처
- next.js
- 프론트엔드
- 보안
- 백엔드
- php
- sqlite
- REST API
- Kotlin
- 온디바이스AI
- electron
- Vite
- JWT
- 도메인설계
- 배포
- typescript
- 인증
- 소셜로그인
- python
- contextBridge
- 상태관리
- 메일자동화
- javascript
- Android
- playwright
- github actions
- Today
- Total
목록2026/07/04 (4)
HM소프트
매입·매출 전표와 정산 도메인의 정합성을 Spring Boot로 설계한 기록. 매출 상태 모델과 MST/DTL 트랜잭션 원자화, 선매출 차감의 별도 전표 분리, 취소의 역분개, 월마감 가드, 그리고 외부 회계 ERP로의 야간 배치 전송까지 '틀린 상태를 만들 수 없게' 막는 법을 다룬다.시리즈를 시작하며 — "조용히 틀리면 안 되는" 도메인회사 한 곳의 영업·매입 업무를 다루는 모듈을 만들었다. 매출 전표를 등록하고, 세금계산서를 발행하고, 외주·구매 정산을 전자결재로 올리고, 최종적으로 외부 회계 ERP의 장부에 전표를 꽂는 일까지가 한 흐름이다. 백엔드는 Java(Spring Boot), 프론트엔드는 TypeScript(React)다.이 시스템을 만들면서 가장 많이 했던 생각은 "조용히 틀리면 안 된..
공간 대여 매칭 플랫폼 MVP를 위치 기반 검색부터 만든 기록. PostGIS geography와 GiST 인덱스로 반경 검색을 풀며 ST_DWithin은 필터, ST_Distance는 표시로 나누고, 좌표 순서 함정과 모바일 JWT 토큰 갱신을 인터셉터 한 곳에 가둔 과정을 담았다.세 종류의 사용자를 잇는다는 문제유휴 공간을 가진 사람, 그 공간에 둘 제품을 가진 사람, 그리고 그걸 팔아줄 사람. 한 공간 대여 매칭 플랫폼의 MVP를 만들면서 가장 먼저 부딪힌 건 "이건 흔한 양방향 매칭이 아니다"라는 사실이었다. 보통의 마켓플레이스는 공급자와 수요자, 두 역할만 있으면 된다. 그런데 이 서비스는 공간 제공자 · 제품 제공자 · 판매자라는 세 종류의 사용자가 서로를 향해 요청을 날린다. 공간 주인이 "..
쇼핑몰 고객 상담 챗봇을 LLM 없이 규칙 기반으로 만든 기록. 버튼 우선·자유 입력 보조의 두 갈래 대화 엔진과 키워드·FAQ 양방향 매칭, 환불 정책을 SQL 조건으로 표현하기, sql.js의 동시성 트레이드오프, npm ci와의 CI 싸움까지 담았다.왜 LLM 없이 시작했나쇼핑몰에 들어오는 고객 문의는 패턴이 지독하게 뻔하다. "주문한 거 언제 와요", "환불 어떻게 해요", "사이즈 바꿀 수 있나요". 상담 인력이 같은 답을 하루에 수십 번씩 복사·붙여넣기 하는 걸 보면, 이건 사람이 아니라 코드가 할 일이라는 생각이 든다. 그래서 한 쇼핑몰의 고객 상담용 챗봇을 만들기로 했다.처음부터 외부 LLM API를 붙일 수도 있었다. 하지만 일부러 그 길을 택하지 않았다. 이유는 세 가지였다. 첫째, 쇼..
취향 큐레이션 커머스를 피처 테스트 49개와 Playwright E2E로 검증하고 사흘간 버그 23개를 잡은 기록. S3 전환의 숨은 경로 가정, 한국어 UI와 역할 기반 셀렉터 충돌, 정산 집계의 상태 조건, 환불을 8단계 상태 머신으로 설계한 과정을 담았다.기능은 다 만들었다, 이제 믿을 수 있게 만들자1편에서 Laravel + Blade 모놀리스로 취향 큐레이션 커머스의 골격을 잡았다. 멀티롤 권한, 추천 엔진, 결제 위젯 v2, 정산 어댑터까지 — "기능이 있는" 상태는 됐다. 그런데 기능이 "있는 것"과 "동작하는 것"은 다르다. 이 차이를 테스트를 붙이고 나서야 숫자로 확인했다. 이번 편은 골격을 믿을 수 있게 만든 과정의 기록이다. 미디어 스토리지를 S3로 옮기고, 피처 테스트 49개로 회귀..