1. 어떤 개발자가 돼야할까?

"클린 코드 정독 시리즈 1"

Posted by Dev X on July 29, 2020

고민하는 이모티콘

코드 잘 짜는 개발자

개발을 시작했을때부터 지금까지 나의 목표이다. 처음 개발 공부를 시작했을땐 영화에 나오는 것처럼 키보드 세 개를 두드리며 프로그램 뚝딱하는 개발자가 되고 싶었다. (그런 개발자의 모습은 없다는 걸 이제는 알지만..ㅎㅎ)

아무튼 그런 환상을 갖고 있을 때 팀 프로젝트를 진행한 적이 있었는데 총 개발 시간 중 깃 컨플릭트를 갖고 씨름한 시간이 4할은 됐었다. 코드가 꼬일때마다 파트너 팀원 분과 머리를 싸잡고 코드에 대해 토론했다. 당시 팀원분과 나누었던 대화 중 일부를 기억나는 대로 적어보자면..

이 함수 무슨 기능하는거에요?
CDA가 뭐에요?
코드가 너무 왔다갔다해서 이해가 안돼요…
주석 읽어봤는데 그래도 무슨 뜻인지 모르겠어요…

그리고 지나가던 강사님께서 우리 코드를 보고 조언해주셨다.

여기는 코드 정리를 한 번 해야겠네…

좋은 코드란 뭘까

그 때 프로젝트 진행하며 내가 너무 코딩을 못하는 것에 충격받아 코드를 잘 짜려면 뭘 해야 하나 고민할 때쯤 클린코드라는 책을 추천받았다. ‘이게 개발자들은 다 읽어야 하는 필수코스급의 책이다’라는 추천사를 들은 나는 오 이거 다 읽으면 키보드 세 개 두드리며 하루 만에 프로그램 뚝딱 가능?ㅎㅎ 라는 착각과 함께 정독을 시작했다.

물론 그 책을 다 읽는다고 갑자기 천재 개발자가 되는 마법은 일어나지 않았다. 대신 예전의 대화가 약간 번역되어 들리기 시작했다.

이 함수 무슨 기능하는거에요? = 함수명의 뜻이 너무 포괄적입니다
CDA가 뭐에요? = CustomerDataAdaper라고 쓰는게 좋지 않을까요??
코드가 너무 왔다갔다해서 이해가 안돼요 = 종속함수 위치가 그때 그때 다르네요
주석 읽어봤는데 그래도 무슨 뜻인지 모르겠어요 = 의미 없는 주석을 달으셨군요
코드 정리를 한 번 해야겠네… = 코드 가독성 좀 생각해라;;

이 변화가 처음엔 크게 와 닿지 않았는데 이후 코딩을 하니 코드의 많은 것이 달라졌다. 코드가 의사소통이 가능한 언어처럼 읽히고 다른 사람이 짠 코드를 읽는 속도도 조금 빨라졌다. 퍼포먼스적인 성장은 아니지만 나에겐 아주 큰 변화였다.

다시 개발자로 이직을 준비하게 되었는데 코드 스테이츠 면접을 준비하는 동안 다른 것보다 먼저 클린 코드를 속독했다. 어린 왕자를 어렸을 때 읽는 것과 성인이 되어 읽을 때 와 닿는 것이 다르다 하지 않는가? 클린 코드가 참 그런 책 같다. 나의 수준에 따라서 읽을 때마다 보이는 것과 느끼는 것이 다르다.

새로운 준비를 시작하며 클린 코드를 펼친 나의 각오는 아래와 같다.

이번엔 못 알아먹게 코드 짜지 말아야지..!! ㅠㅠ

—— Dev X 2020.07.29


[클린 코드 정독 시리즈]
1. 어떤 개발자가 돼야 할까?
2. 변수명과 함수명 짓기