코딩의 예술: 기능의 원자화와 단일 책임, 환상과 현실 사이의 균형

Robert C. Martin의 2008년에 출간된 유명한 책 "Clean Code"는 기본 수준에서 다양한 좋은 포인트를 제시한다. 그러나 이런 포인트들에 대한 독단적이고 맹신적인 태도는 개발자들에게 독이 될 수 있다.


"클린 코드" 혹은 가독성이 높고 유지보수가 가능한 코드라 정의되어지는 것에는 다양한 의견들이 있다. 나도 여기에 현장에서 직접적인 경험으로 얻은 클린 코드 접근 방식에 대한 개인적인 의견을 얹어 보고자 한다.


마틴의 중요 개념 중 하나는 같은 함수 안에서 각기 다른 추상화 수준을 혼합하면 안 된다는 것이고, 더 나아가 함수는 단일 책임에 접근해야 한다는 것이다. 그러나 여기서 중요한 키워드는 바로 “단일 책임”이 아닌 "접근"이다.  “단일 책임”이라는 개념에 꽂혀 맹목적으로 받아들이게 되면 정보가 지나치게 분산되어 작업에 난항을 겪는다. 과한 원자화는 수많은 오버헤드를 가져오기 마련이다. 반대로 지나치게 적은 원자화는 반복성이 심한 엉성한 코드가 될 뿐이다. 양쪽의 경우 모두 자기자신 뿐만 아니라 미래의 나, 직장 동료, 1년, 5년 혹은 15년 뒤 코드를 관리하게 될 개발자들을 어렵게 만들 것이다. 그러니 우리가 걸어가야 할 길은 극단적인 원자화가 아닌 건강한 중간지점이다.


나의 경험을 바탕으로 추천하는 것은 다음과 같다: 함수는 개념을 다루어야 한다. 만약 한 개념이 코드 베이스 전체에서 반복적으로 나타나고 있다면, 리팩토링하고 근본적인 개념을 추상화시키는 것을 고려하라.

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 11월 22일 오후 8:07

댓글 0

    함께 읽은 게시물

    < '네이버 다녀요'라는 말에 아무도 무슨 일을 하는지는 묻지 않았다 >

    1

    ... 더 보기

    간만에 개발 떡밥이(신난다) 이번엔 제가 소수 입장에 있는 ORM이군요. 후후..


    저는 몇몇 사건을 통해 ORM 반대주의자가 된 사람인데요.


    ... 더 보기

    《론 뮤익이 평범함을 바라보게 하는 방법》

    ... 더 보기

    🙉 달레의 찐팬이 되어주실래요? 💕

    ... 더 보기

    < 쿠팡의 창업자를 직접 보며 배운 것: 리더의 크기가 전부다 >

    1

    ... 더 보기

     • 

    댓글 1 • 저장 9 • 조회 1,032


    📈10년 만에 흑자 낸 컬리, 그 다음 과제는요?

    '

    ... 더 보기

    10년 만에 흑자 낸 컬리, 다음 과제는

    10년 만에 흑자 낸 컬리, 다음 과제는

    10년 만에 흑자 낸 컬리, 다음 과제는