KO
Back to Projects
Archiving Service

Archiving Service

An in-house archiving service designed around three intertwined axes — Korean search quality, permission consistency, and metadata-change propagation

May 2024 - Sep 2024 4 months

Tech Stack

PythonDjangoCeleryElasticsearchPostgreSQLRedisNGINXDockerNCP

Overview

The backend of an in-house archiving service that consolidates project materials, files, and customer information that used to be scattered across different internal tools. Django + DRF own the domain, PostgreSQL holds metadata, Elasticsearch holds the search index, and Naver Object Storage holds the original files. A tree-shaped file repository sits inside per-project / per-sales workspaces, with unified search layered on top.

Search couldn’t be plain keyword matching: Korean morphological decomposition and partial-match had to coexist in one index, per-user / per-group permissions had to apply consistently to every result, and when a parent object’s metadata (project or sales name) changed, every descendant document’s index had to follow. Those three axes shaped the design.

Tech Stack

My Role

One of three backend engineers on a team of PM 1 / FE 1 / BE 3. I owned the file repository, search, CRM, and auth/permission domains — the index mapping and analyzer design, the ResourceShare permission model, the signal-driven indexing pipeline, and search-query tuning all sat with me.

Key Contributions

Troubleshooting

Impact

A system where search quality, permission consistency, and metadata-change propagation don’t trade off against each other — index mapping, query shape, permission boundary, and the signal pipeline are designed as one piece. Even though this was an internship-period project, the most valuable part was making an explicit decision about where “search engine responsibility” ends and “application responsibility” begins, and laying Korean search quality on top of that boundary.

View All Projects
Close