◆ ESSAY
개발하면서 마주친 문제를 기록합니다.
문제를 정의하고 제약을 확인한 뒤 해법을 고른 이유를 남깁니다. 초기 가정이 틀렸거나 운영 중 문제를 발견한 과정도 함께 다룹니다.
데이터 모델, 성능, 정합성, 외부 시스템 연동, 마이그레이션, 보안처럼 서비스가 성장하면서 반복해서 판단하게 되는 문제를 다룹니다.
실제 시스템을 설계하고 운영하며 마주친 선택과 트레이드오프를 기록합니다.
요구사항과 제약 조건이 선택에 어떤 영향을 줬는지 설명합니다.
위치 데이터를 서비스에서 다루는 방법도 기록합니다. 데이터 모델부터 좌표 변환, 화면에 표시하는 과정까지 문제를 나누어 살펴봅니다.
구체적인 알고리즘과 구현은 각 주제에 맞는 글에서 자세히 설명합니다.
수학을 별도의 과목으로 다루지 않습니다. 필요한 값을 정의하고 계산 과정을 코드로 옮기고 결과가 맞는지 검증하는 도구로 사용합니다.
공식을 코드로 옮길 때는 다음 과정을 거칩니다.
현상의 언어화
↓
입력과 출력 정의
↓
계산 모델 선택
↓
코드 구현
↓
경계 조건과 실제 데이터로 검증
각 글은 대체로 다음 순서로 전개합니다.
코드만 빠르게 찾고 싶다면 각 글의 목차와 핵심 연산을 먼저 보면 됩니다. 설계 이유가 궁금하다면 문제와 제약부터 읽는 편이 좋습니다.
첫 시리즈는 센서가 알려주는 1차원 거리와 지도에서 필요한 2차원 좌표 사이의 간격을 다룹니다.
센서는 “케이블을 따라 1,300m 지점에서 이벤트가 발생했다” 고 알려줄 수 있습니다. 관제 화면은 그 값을 지도 위의 위치로 보여줘야 합니다. 이 변환에는 기준점, 선로의 굴곡, 거리 계산, 좌표 보간이 필요합니다.
시리즈에서는 다음 세 가지 문제를 순서대로 살펴봅니다.
각 글은 하나의 기술 문제에 집중합니다. 첫 글에서 좌표 변환의 모델을 정리한 뒤, 다음 글에서 그 결과를 지도 이미지로 렌더링하는 방법을 이어서 다룹니다.
업무에서 얻은 문제 구조와 설계 경험을 글의 재료로 사용합니다. 대신 특정 조직, 장소, 시스템을 식별할 수 있는 정보는 공개하지 않습니다.
예제는 대상을 식별할 수 없게 바꾸되 계산과 설계 판단을 재현할 정보는 남깁니다.