pile·

SLASH 22 - Effective Component 지속 가능한 성장과 컴포넌트

토스·토스 SLASH 22 2022·

챕터별 상세

010:00 – 2:26

변경을 예측하지 말고 대응하라 — 컴포넌트라는 출발점

토스페이먼츠 프론트엔드 개발자 한재엽이 '지속 가능한 성장과 컴포넌트'를 연다. 그는 결제 관련 모든 것을 보여주는 대시보드 제품을 만들고 있는데, 다루는 문제가 복잡한 만큼 사용자 인터페이스도 복잡해지며 컴포넌트에 관해 했던 고민의 결과를 정리해 발표한다. 발표 준비 중 '잠깐 미팅 가능하냐'는 불안한 메시지를 받았고 그 불안대로 방금 구현한 기능에도 수정이 필요해졌다는 경험으로 이야기를 연다. 제품이 변경되지 않아도 되는 이유는 '사용자가 잘 사용한다' 단 하나뿐이고 지표와 사용자 모두 그렇지 않다고 말하기에, 출시 전에도 후에도 디자인·API·제품 방향이 끊임없이 바뀐다.

하지만 변경은 더 좋은 제품을 위해 필요한 것이라고 관점을 뒤집는다. 변경이 발생했다는 것은 놓쳤던 고객 니즈를 발견한 것이고 고객 니즈는 곧 기회다. 무엇이 변경될지 미리 알 수 있다면 처음부터 그렇게 했겠지만 우리는 사용자를 모르기에 예측할 수 없으므로, 변경을 예측하려 하지 말고 대응해야 한다는 것이 핵심 주제다. 제품은 작은 컴포넌트와 모듈이 합쳐져 기능이 되고 커지면 '적당히' 분리되는데, 이 '적당히'라는 모호한 기준이 문제의 출발점이다. 3년 전 자신이 작성한 코드를 부끄럽지만 확대해 보여주며, Item이라는 컴포넌트나 'PopupItem 안의 Item' 같은 네이밍이 무슨 역할인지 알 수 없어 변경할 때 어디를 고쳐야 할지 모르는 고통을 낳았다고 고백한다.