더북(TheBook)

최적화 이야기를 하셔서 하는 말인데, 전 한동안 부동산 회사와 일했어요. 부동산 목록이 전부 담긴 어마어마하게 큰 데이터베이스가 있었어요. 지금껏 목록에 넣었던 모든 부동산을 포함해서 전 세계에 소유하고 있는 수백만 개 부동산을 다뤄야 했어요. 테이블을 설계하면서 완전히 정규화하기로 했죠. 그런데 알고 보니 주소가 정말 복잡한 거예요. 일단 도로 번호랑 ‘도로’나 ‘거리’ 같은 도로 명칭을 알아야 하고, 북쪽, 남쪽 같은 방향이 이름 앞이나 뒤에 붙기도 하거든요. 그러다 보니 필드가 11개나 되는 거예요! (이야기가 어떻게 흘러갈지 예상이 되어서인지 사람들의 눈이 조금 커졌다.) 그래서 방위뿐 아니라 ‘도로, 거리’ 같은 명칭 목록 등 모든 것을 정규화했기 때문에 주소를 검색할 때마다 테이블 9개를 조인해야 했어요. 성능이 엉망일 수밖에 없었어요. 그때 바로 역정규화를 배운 거죠. (그리고 난 멋쩍은 표정을 지어 보였다.)

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.