본문 바로가기

Develop/C#

읽기 좋은 코드와 나쁜 코드

읽기 쉬운 코드를 작성하기란 결코 쉬운 작업이 아니다.

컴퓨터가 이해할 수 있는 코드는 어떤 방식이 되든

문법만 맞는다면 전혀 문제 없이 작동하게 된다.

그러나 내가 작성한 것을 다른 사람이 본다면

참 쉽지 않을 것이다.


프로젝트를 여기 저기 다니다 보면 하던 것을 맡을 때도

신규로 새로 할 때도 있다.

대체로 하던 것은 받은 사람은 앞에 작성한 것에 대한

질타와 "왜 이렇게 했지? 무슨 뜻이지?" 등등

자기와의 코딩 방식이 달라서 각종 이야기가 나온다.


왜 그럴까?

공부 해왔던 방법이나 사용하는 방식, 그리고 가장 큰 이유는

프로그래밍 철학이 달라서 일 것이다.


아래의 코드들은 동일한 역할을 하는 코드들이다.

아주 간단하게 숫자 둘 중에 큰 수를 반환하는 함수이다.

예제 1)


예제 2)


어떤 것이 맘에 드는가?

보는 사람마다 다를 것이다.

"한 줄에 쓰겠다." , "여러 줄에 걸쳐 명시적으로 쓰겠다." 등

그리고 그것에 대해서 이유를 다 들 수 있을 것이다.


만약 코드를 책을 보듯이 볼 수 있다면 어떨까?

위의 코드를 책으로 읽는다면


예제1의 경우는 하나, 하나 짚고 넘어가면서 정확히 구분하는 용어(if)의 사용으로

영어 단어 뜻을 좀 안다면 이해할 수 있을 것 같다.


예제2의 경우는 내가 만약 물음표(?) 연산자를 모른다면 이해하기 어려울 것이다.

그러면 찾아봐야 하고 어떻게 움직이는 지 알아야 한다.


예제1을 "동화책" 예제2를 "시" 라고 표현해도 될 것 같다.


조금씩 알아가면서 우아한 코드를 지향하고 좀더 줄이고 좀더 함축적인 것을

사용하는 것이 과연 얼마나 효율적인가에 대해 고민 한다면 그것에 대한 답은

간단하게 나올 것이다.


수준이 높아질수록 시를 쓰고 싶어하고 동화책을 멀리하게 된다.

그러나 문제는 시를 많이 쓸수록 그것을 이해하는 사람은 그 것에 대한

매니아가 아니면 알아보기 힘들다.


아주 간단한 예로써 큰 값 구하기를 사용하였지만

아주 복잡한 업무 프로세스 라든지 제고관리 각 종 분기점에 해당하는

모든 경우가 될 수 있다.


당신은 시인만을 위한 시를 쓸 것인가?

아니면 대중을 위한 글을 쓸 것인가?

결정해야 할 것이다.