DB 적재 초기구조
This commit is contained in:
12
to-do.md
12
to-do.md
@@ -1,6 +1,6 @@
|
||||
# TODO 기록
|
||||
|
||||
- 업데이트 시각 (KST): 2025-12-05 17:01:28 KST
|
||||
- 업데이트 시각 (KST): 2025-12-09 13:49:09 KST
|
||||
|
||||
## 완료된 항목
|
||||
- [x] Go Fiber 기반 GeoIP API 구조 결정 및 엔트리포인트 구현 (`cmd/server`)
|
||||
@@ -12,5 +12,11 @@
|
||||
- [x] resolver 단위 테스트 추가 (`internal/geo/resolver_test.go`)
|
||||
|
||||
## 진행 예정
|
||||
- [ ] `go mod tidy` 실행하여 `go.sum` 생성 및 의존성 고정
|
||||
- [ ] 추가 테스트 확장 (테이블 기반, 테스트용 mmdb 픽스처 사용)
|
||||
- [x] PostgreSQL 전용 Docker 이미지(또는 build 단계)에서 `maxminddb_fdw` 설치 후 `GeoLite2-City.mmdb` 볼륨을 `/data`로 마운트하는 `postgres` 서비스 추가 및 5432 외부 노출
|
||||
- [x] 초기화 SQL을 `/docker-entrypoint-initdb.d/`로 넣어 `CREATE EXTENSION maxminddb_fdw; SERVER maxminddb ...` 정의, 필요한 `FOREIGN TABLE`/`VIEW` 설계 (country/region/city/lat/lon/time_zone 등)
|
||||
- [x] FDW 기반 조회 최적화를 위한 `inet` 인자 함수/VIEW 설계(예: `SELECT * FROM city_location WHERE network >>= inet($1) ORDER BY masklen(network) DESC LIMIT 1`)
|
||||
- [x] 앱 구성 확장: `GEOIP_BACKEND=mmdb|postgres`, `DATABASE_URL` 등 env 추가, `internal/geo`에 Postgres resolver 구현 및 DI로 선택 연결, 시작 시 backend/DB 헬스 체크 로그
|
||||
- [ ] Fiber 라우트에서 DB resolver와 파일 resolver가 동일한 응답 스키마를 반환하도록 리스폰스 변환/에러 핸들링 정리
|
||||
- [ ] 테스트: 파일 기반은 그대로 유지, DB resolver용 통합 테스트(테스트 컨테이너/compose) 및 테이블 기반 케이스 추가; 라이선스 문제 없이 쓸 수 있는 mmdb 픽스처 고려
|
||||
- [ ] 문서화: README에 Postgres/FDW 실행 방법, 샘플 쿼리, 보안/포트 노출 주의사항, mmdb 교체 절차 추가
|
||||
- [x] `go mod tidy` 재실행으로 의존성 정리 및 필요한 DB 드라이버 추가
|
||||
|
||||
Reference in New Issue
Block a user