본문 바로가기
Programming/Clean Code

[Clean Code] 1장 깨끗한 코드

by eungbbang 2021. 11. 17.
반응형

[이 포스팅은 아래 서적을 읽고 작성한 글입니다]

 

http://www.yes24.com/Product/Goods/11681152

 

Clean Code 클린 코드 - YES24

애자일 소프트웨어의 혁명적인 패러다임을 제시하는 책이다. 저자 로버트 마틴은 오브젝트 멘토(Object Mentor)의 동료들과 힘을 모아 ‘개발하며’ 클린 코드를 만드는 최상의 애자일 기법을 정제

www.yes24.com

 

깨끗한 코드를 작성해야 하는 이유

 

개발자가 작성하는 변수명만 봐도, 그 개발자의 실력을 가늠할 수 있다는 말이 있다. 

변수명을 어떻게 짓는 지만 봐도 얼마나 깔끔하고 가독성 좋은 코드를 작성하는지 유추할 수 있다는 의미에서 나온 말이다.

그렇다면 클린 코드가 얼마나 중요하길래 이런 밈까지 나오는 것일까?

 

이 책에서는 그 이유를 아래와 같이 설명한다.

궁극적으로 코드는 요구사항을 표현하는 언어라는 사실을 명심한다. 요구사항에 가까운 언어를 만들 수도 있고, 요구사항에서 정형 구조를 뽑아내는 도구를 만들 수도 있다. 하지만 어느 순간에는 정밀한 표현이 필요하다. 그 필요성을 없앨 방법은 없다. 그러므로 코드도 항상 존재하리라.

 

어려운 말 같지만, 한 마디로 정리하자면 누구나 쉽게 이해 할 수 있도록 코드를 작성하라는 뜻이다.

개발자라면 누구나 공감하겠지만 남의 코드를 이해하는 것은 고사하고 내가 몇 달 전에 짠 코드조차 기억이 나지 않는 경우 조차 허다하다. 프로그램 규모가 작다면 엉망으로 짜인 코드라도 어찌어찌 찾아나갈 수는 있겠지만 규모가 아주 크고 많은 사람이 참여하는 개발이라면 잘 정리된 코드는 더욱더 중요할 수밖에 없다.

 

그럼에도  당장 시간에 쫓긴다면 기한을 맞추기 위해 스파게티 코드라도 작성하고 싶다는 욕구가 생길지도 모르고, 나중에 다시 정리하겠다고 다짐할지도 모른다. 하지만 나중은 결코 다시 오지 않는다. 때로 시스템을 재설계 하는 것은, 새로 짜는 것보다 훨씬 어렵기 때문이다.

 

 

나쁜 코드는 개발 속도를 크게 떨어뜨린다.

 

스파게티 코드란 프로그래밍에 있어서 컴퓨터 프로그램의 흐름이 복잡하게 뒤엉킨 모습을 스파게티가 엉킨 모습에 비유한 표현이다. 스파게티는 이미 한데 뒤섞였기 때문에, 소스와 면과 버섯 등으로 따로 분리해내는 것은 아주 오랜 시간이 걸리는 일 일 수밖에 없다. 

 

코드도 마찬가지다.

코드가 뒤죽박죽 섞여 있다면,  오류가 생겼을 때 개발자는 오류를 찾기 위해 전체 코드를 모조리 훑으며 해당 기능이 제대로 작동하는지 하나하나 확인할 수 밖에 없다. 따라서 시간은 점점 오래 걸리고, 생산성은 급격히 떨어지고 만다. 

 

결국, 깨끗한 코드를 짜는 것만이 시간을 절약할 수 있는 가장 효율적인 방법이다.

 

 

 

깨끗한 코드는 읽으면서 놀랄 일이 없어야 한다.

 

워드 커닝햄(위키 창시자)는 깨끗한 코드는 읽으면서 놀랄 일이 없어야 한다고 말했다. 코드를 독해하느라 머리를 쥐어짤 필요가 없어야한다. 읽으면서 짐작한 대로 돌아가며, 명백하고 단순해 마음이 끌리는 것이 깨끗한 코드라고 할 수 있을 것이다. 깨끗한 코드는 아무리 규모가 커지더라도 프로그램이 단순하게 느껴지도록 만들어주며, 그것을 만들어내는 열쇠가 바로 프로그래머다. 

 

코드를 읽으면서 짐작했던 기능을 각 루틴이 그대로 수행한다면 깨끗한 코드라 불러도 되겠다. 코드가 그 문제를 풀기 위한 언어처럼 보인다면 아름다운 코드라 불러도 되겠다.

- 워드 커닝햄 Ward Cunningham

 

 

 

반응형

댓글