독도갈매기의 개발 블로그

[좋은 개발자] "코드"란 무엇인가 - "코드"에 대한 흔한 착각 본문

좋은 개발자

[좋은 개발자] "코드"란 무엇인가 - "코드"에 대한 흔한 착각

독도갈매기 2023. 1. 20. 00:40

코드

컴퓨터가 알아들을 수 있는 언어를 일컫는 말.
혹은, 컴퓨터도 알아들을 수 있을 만큼 알고리즘을 논리적으로 작성한 것을 말한다.

누군가 "코드" 에 대해 검색한다면, 한번 쯤 봤을 수도 있는 내용이다.

그러나, 나는 위 정의에 대해 동의하지 않는다.

오늘은 이에 대한 주관적인 이야기를 해보려 한다.

(이는 매우 주관적인 이야기이기 때문에, 근거 있는 반론이라면 항상 환영입니다. )

코드는 컴퓨터가 주체가 되어서는 안된다.

코드는 개발자가 작성하며, 오로지 개발자를 위해 존재하는 것이 코드이다.

우리는 무엇을 위해 코드를 작성하는가?

'개발자는 코드를 컴퓨터에 내가 원하는 것 or 고객이 원하는 것을 구현하기 위해 코드를 작성하곤 한다.'

여기서 주체는 무엇인가?

많이들 여기서 생각하는 것은 "원하는 것"이 주체라고 생각하겠지만, 나는 여기서 "개발자"로 주체로 생각한다.

결국 기능을 구현하는 것, 기능을 읽고 이해하는 것, 기능을 수정하는 것 모두 "개발자"이다.

우리는 컴퓨터가 이해하기 쉬운 코드가 아닌, 사람이 읽기 쉬운 코드를 작성하기에 개발자다.

컴퓨터를 위한 코드만을 작성한다면 우리는 왜 고급 언어를 쓰겠는가?

처음 C언어를 배울 때 저급 언어와 고급 언어의 차이를 기억해내야 한다.

'저급 언어는 컴퓨터 언어에 근사하고, 고급 언어는 사람의 언어와 근사하다.'

고급 언어를 쓰는 이유는?

우리가 저급 언어가 있음에도 고급 언어를 개발하고, 고급 언어로 개발하는 이유는 무엇인가?

쓰기 편하고, 읽기 편하고, 이해하기 쉽기 때문에 사용하고 지속적으로 개발하고 있는 것이다.

그럼에도 불구하고 우리는 왜 이런 사명감을 가지고 있는 "고급 언어"를 사용하면서, 굳이 굳이 컴퓨터에 친화적으로 코드를 작성하려 하는가?

오늘도 어딘가에서 코딩하고 있는 컴퓨터를 배려 할 줄 아는 다정한 개발자는

개행 하나에 파일의 크기가 커지기 때문에 개행을 아끼며 삼항 연산자를 쓰기도 하고,

변수 할당에 대한 연산이 아깝다며 변수 선언을 아끼기도 한다.

우리는 왜 개발자를 배려하기 위해 만들어진 언어를 사용하면서, 컴퓨터에 대한 끊임 없고 쓸모 없는 배려를 하고 있는가.

읽고 싶은 코드는 효율적인 코드다.

최우선적으로 이야기 하고 싶은 내용은 개발자는 "컴퓨터가 이해하기 쉬운"이 아닌, "개발자가 이해하기 쉬운" 코드를 작성해야 한다는 것이다.

개인적으로 처음 개발을 배우는 사람에게 꼭 말하고 싶은 말이 있다. '읽고 싶은 코드를 만들어라 자연스레 효율적인 코드 또한 따라올 것이다.'

읽고 싶은 코드를 작성하기 위해 우리는 디자인 패턴을 배우기도 하며, 효율적인 코드를 고민하곤 한다.

그리고 읽고 싶은 코드는 타인이 읽고 더 효율적인 방향에 대해 고민을 시작할 수 있는 시작점이 되어 줄 수 있을 것이다.

개발자는 다른 이의 소스코드를 읽으며, 성장하는 사람들이니 말이다.

나의 코드가 읽고 싶은 코드라면, 지속적으로 많은 사람들이 읽어 줄 것이며 그에 대한 피드백을 꾸준히 받으며 성장하는 코드가 된다.

내가 작성한 소스 코드가 계속 성장한다면 이 보다 재밌는 상황이 있을까?

오픈 소스도 이런 비슷한 맥락이라고 보고 있다.

마무리

내가 생각하기에 많은 개발자들은 코드에 대해 착각하고 있다고 생각한다.

다시 한번 말하지만 코드는 개발자를 위한 것이다. 컴퓨터에 성능을 무조건적으로 고려하지 마라

당연하게도 성능을 생각하지 말라는 것이 아닌, 무조건적으로 고려하여 이상한 노력을 하지 말라는 말이다.

오늘 이 글을 읽고 조금이라도 작성하는 사람, 읽는 사람, 수정하는 사람 모두 행복한 코드를 작성하기를 바란다.

Comments