Posts by Category

backend

순찰관리 API와 Flutter 오프라인 동기화

현장 순찰 담당자는 통신이 불안정한 지하실·기계실을 돌며 점검 기록을 남겨야 합니다. 기존 서버 응답 구조는 웹 화면 기준으로 설계되어 있어, 모바일에서 필요한 순찰 스케줄·회차·QR 코드·이미지 URL 같은 정보를 담기에 부족했습니다. 약 3주간 백엔드 API 확장과 Flutte...

TimescaleDB로 27.8억 건 시계열 데이터 다루기

실시간 파이프라인이 안정화된 뒤에는, 그 값들이 쌓이는 쪽 — 대용량 시계열 DB — 이 다음 과제였습니다. 이력·알람·제어로그 3종을 TimescaleDB(PostgreSQL 15) 하이퍼테이블로 전환했고, 조회 시점 기준 누적 27.8억 건(제어 로그만 348만 건)을 365일...

JWT 인가 체계와 토큰 갱신 동시성 제어

여러 서비스가 하나의 인증 체계를 공유해야 했고, 동시에 화면·버튼 단위까지 read/write 권한을 나눠야 했습니다. 여기에 더해 프론트엔드에서는 여러 API 요청이 동시에 토큰 만료(401) 응답을 받을 때, 각 요청이 개별적으로 갱신을 시도하면서 서로 경합하는 문제가 있었습...

Redis Pub/Sub과 Stream, 왜 둘 다 썼는가

현장 설비(PLC·센서·계측기)에서 초 단위로 유입되는 IoT 포인트 값을, 여러 테넌트의 화면·알람·리포트에 동시에 전달해야 했습니다. 약 4,800개 포인트가 대상이었고, 처음 이 구조를 설계할 때 가장 먼저 부딪힌 질문은 “값을 어디까지 DB에 즉시 기록해야 하는가”였습니다.

레거시 C#에서 Next.js·NestJS로, 리뉴얼 프로젝트에 합류하며

2025년 2월, 건물관리 솔루션(SI/FMS/BEMS) 기업인 (주)엑센솔루션에 입사했습니다. 입사와 동시에 맡게 된 일은 신규 기능 개발이 아니라, 수년간 운영되어 온 레거시 C#(.NET) 기반 시스템을 Next.js·NestJS(TypeScript) 스택으로 전면 리뉴얼하는...

Back to Top ↑

growth

Back to Top ↑

frontend

런덤메이트로 프론트엔드 시야를 넓히다

회사에서는 백엔드·서버 운영에 집중하다 보니, 프론트엔드는 “API를 어떻게 소비하는지”를 짐작만 하는 위치에 머물러 있었습니다. 이 감각을 직접 채워보고 싶어서 2026년 1월부터 5월까지, GPS 러닝 기록과 크루 커뮤니티, 실시간 채팅, 랭킹·챌린지 기능을 갖춘 소셜 러닝 앱...

Back to Top ↑

security

바이브쉴드: 보안 아키텍처에 도전하다

인증·인가 체계를 다루다 보니 자연스럽게 “이 코드가 정말 안전한가”라는 질문에 관심이 옮겨갔습니다. AI 코딩 도구를 매일 쓰면서 든 또 다른 의문은 “AI가 만들어준 코드에 존재하지 않는 API를 호출하는 경우가 있는데, 이걸 잡아내는 도구가 있는가”였습니다. 이 두 질문에서 ...

Back to Top ↑