클린 코드는 왜 중요한가 — 좋은 의도가 만든 나쁜 코드
토스 앱의 보험 서비스를 웹뷰로 개발한 진유림 발표자가 '실무에서 바로 쓰는 프론트엔드 클린 코드'를 연다. 클린 코드라고 하면 흔히 코드 줄이기를 떠올리지만, 그 외에 더 섬세하게 코드를 정리하는 스킬이 필요하다며 읽기 좋은 코드를 위한 개념과 액션 아이템을 리액트·자바스크립트 예시로 공유하겠다고 밝힌다. 실무에서 클린 코드가 의미 있는 이유는 '유지보수 시간 단축'이다. 흐름 파악이 어렵고 도메인 맥락이 드러나지 않는 코드는 동료에게 물어봐야 알 수 있어 개발의 병목이 되는데, 시간은 곧 자원이자 돈이므로 고치는 데 하루 걸리는 코드와 사흘 걸리는 코드의 차이는 개발자가 3배 더 필요한 차이다.
핵심 문제의식은 실무의 90%가 새 파일을 짜는 일이 아니라 기존 코드에 기능을 추가하는 일이라는 점이다. 발표자는 보험 질문 입력 페이지에 '설계사가 있으면 사진 든 팝업을 먼저 띄워 달라'는 요구를 받아, 기존 클릭 핸들러에 조건문을 넣고 팝업 컴포넌트를 추가하는 '타당해 보이는' 변경을 했지만 결과적으로 나쁜 코드가 됐다고 고백한다. 그 코드가 왜 나쁜지는 세 가지로 진단된다. 첫째, 하나의 목적을 가진 코드가 여기저기 떨어져 있어 스크롤을 오르내리며 미로 찾기를 해야 한다. 둘째, 하나의 함수가 어느새 세 가지 일을 하게 돼 역할을 알려면 세부 구현을 전부 읽어야 한다. 셋째, 이벤트 핸들러 함수들의 추상화 단계가 제각각이라 비슷한 이름인데 하는 일이 달라 코드를 잘못 지레짐작하게 만든다. 깔끔하던 코드가 작은 기능 하나로 어지러워졌다는 '그때는 맞고 지금은 틀리다'라는 명제로 다음으로 넘어간다.