기타

[글쓰기 클럽 1기] 3. 나에게.. 클린 코드란..?

F12:) 2024. 4. 24. 10:50

 

최근 좋은 기회로 우테캠 7기 과제테스트를 볼 수 있는 기회가 주어졌다. 1차 코딩테스트와 다르게 과제테스트는 문제에서 요구하는 API 개발을 하는 것으로 정말 실무와 연관된 실력을 엿볼 수 있는 기회라고 생각한다. 그동안은 '작동하기만 하면 됐지' 라는 마인드가 조금 컸던 것 같다. 프로젝트에서도 어차피 내가 맡은 부분은 내가 유지보수하는 경우가 대다수였으니까.. 이쁘고 깔끔하게 짜려고 생각하지는 않았던 것 같다.

 

 

하지만 이번 과제테스트를 준비하면서 '객체지향이란 무엇인가'와 같은 조금 체계적인 설계에 대한 고민이 많아진 것 같다. '어떻게 해야 메서드가 하나의 기능을 하지..?', '어떻게 해야 확장성이 좋아질까'처럼..

 

그러다보니 자연스레 다른 사람들의 코드를 보았다. 어떤게 클린코드인지는 모르겠지만, 과거 우테코를 과제테스트를 보면서 기억에 남았던 분이 있어서 그분의 PR을 통해 코드를 보았다. 이 사람은 어떤 생각을 가지고 이렇게 만들었는지와 같은 생각들을 많이 해볼 수 있었다.

 

 

그런데.. 클린코드는 객체지향적인 설계와는 조금 거리가 있는 것 같긴하다. 또 효율적인, 성능이 좋은 코드가 클린 코드가 아닌 것 같다.

실제로 삼항 연산자를 떠올려보면, 삼항 연산자는 조건 분기문보다 더 성능이 좋기는 하나 가독성이 떨어진다. 실제로 우테코에서도 삼항 연산자를 쓰지 말라고 조언한 것에서 알 수 있는 것 같다.

 

 

'클린 코드'란 코드를 통해 개발자의 고민이 뚜렷하게 드러나고, 한줄한줄의 의도가 잘 파악되어야한다고 생각한다. 실제로 지금 나는 클린코드를 신경쓰는 단계가 아닌 것 같아 준비해보지 못했지만, 언제든 준비할 것이라면 지금부터 준비해도 나쁠 것은 없다고 생각하게 된다.

 

 

클린 코드. 어쩌면 결국 개발자가 끝까지 안고 갈 하나의 관습이다. 남들에게 내 코드 한 줄의 의미가 어떤지를 명확히 전달하려고 노력해야 할 것 같다.