알고리즘 스터디를 하면서 다양한 스타일의 코딩 방식을 볼 수 있었다.
다른 사람의 소스코드를 보는게 어려운 일이라는걸 알고는 있었지만 알고리즘이라는 정해진 카테고리가 있으니 구현의 틀도 비슷할거라 생각했다.
그런데 생각 외로 if문이 떡칠된 로직과 의도를 알 수 없는 변수 네이밍 등등 가독성이 떨어지는 코드를 보며, 10문제 중 1~2문제만 간신히 이해할 수 있었다.
하지만 내 코드 또한 남들에게 그렇게 보이지 않을까? 사람마다 성격이 다르듯 코딩 스타일도 다르기 때문에 익숙함의 차이가 가독성을 결정짓는 걸까? 라는 의문이 들었다.
그래서 내가 생각하는 읽기 쉬운 코드란 무엇인가에 대해 정리를 해보고 싶었다.
나는 프로그램이 하나의 문장이라고 생각한다.
프로그래밍이나 운영체제에서 Context라는 키워드는 심심치 않게 볼 수 있다. 직역하면 "문맥" 이라는 뜻인데 소프트웨어적인 측면에서 보면 상태라는 개념과 유사하다.
좀 더 일반적으로 풀어보면, 내가 500원짜리 빵을 사려는 행위와 250원을 가진 상태에서 500원짜리 빵을 사려는 행위는 다르게 느껴질 것이다.
또한 같은 의미라도 표현하는 단어가 다른 경우가 있다. 당장에 영어와 한글 단어만 봐도 그렇고, 같은 한글이라도 사투리가 있는 것처럼 말이다.
코드를 작성하는 행위는 글을 작성하는 것과 크게 다르지 않다. 자기 만의 익숙한 단어가 있고, 익숙한 필체가 있듯이 코딩에서도 익숙한 변수명과 코딩 스타일이 있을 것이다.
그럼에도 문장엔 서술자의 의도를 명확하게 알 수 있는 문장과 그렇지 않은 문장이 있다. 프로그램도 마찬가지, 내가 생각하는 읽기 쉬운 코드도 의도를 알 수 있도록 작성하는거라 생각한다. 마치 하나의 아름다운 문장을 읽는 듯이 말이다.