Thinking is cheap. Show me the code
내가 대학교 졸업을 앞두고 있을때 한창 유행했던 것이 안철수님의 청춘 콘서트였다.
당시에 전국 대학교를 순회하면서 진행해주셨는데, 마침 내가 다니는 대학교에서도 이 콘서트가 진행되었다.
뭐 하나 팁을 얻을게 있을까 하고 참관 신청을 하고 강당으로 갔었다.
거기서 나는 몇년이 지나도 잊을 수 없는 문장을 들었다.
"어떤 사람을 판단할때, 그 사람의 말과 생각은 전혀 중요하지 않습니다.
그건 누구나 할 수 있습니다.
그 사람이 어떤지를 보려면 결국 그사람이 그 동안 어떤 행동과 선택을 해왔는지를 봐야 합니다."
나는 이말을 듣고 깜짝 놀랬다.
아 그렇구나.
생각도 누구나 할 수는 있는거구나
그 사람이 결국 어떤 선택을 해왔는지를 봐야하는구나
라는 걸 깨닫게 되었다.
지금의 정치 행보를 떠나서 이 문장 만큼은 나한테 너무나 도움이 되었다.
개발자로 지내면서 이 문장을 더욱 실감하게 된다.
2014년부터 개발자로 지내며 별별 개발자분들을 만났다.
테스트 코드가 중요하다고 얘기하고 커뮤니티와 SNS에 관련해서 글도 쓰면서 실무에서 테스트 코드를 전혀 작성하지 않는 사람이 있었고,
클린코드를 얘기하면서 실무에서 Field Injection과 setter로 범벅인 코드를 작성하는 사람도 있었다.
객체지향에 대해 이야기하면서 서비스 메소드에 모든 비지니스 로직을 작성하던 사람도 있었다.
스프링 전문가라고 얘기하면서 실제 프로젝트에 가면 USB에 저장한 예전 프로젝트의 Java Config를 모두 갖고와 그대로 복사 & 붙여넣기 하던 사람도 있었다.
이 설정값들이 실제 프로젝트에 필요한지 아닌지도, SpringBoot에서 이미 해주던건지도 모른채 말이다.
그 사람이 어떤 책을 썼고, SNS에서 어떤 말을 하고, 커뮤니티에서 어떤 입장이였는지는 전혀 중요하지 않은것 같다.
그 사람의 코드를 봐야한다.
테스트 코드를 작성하지 않으면 그 사람은 테스트 코드를 전혀 모르는거다.
인텔리제이에서 Field Injection 쓰지말라고 Warning 표기까지 해주는데도 Field Injection을 쓴다면 그 사람은 클린 코드에 대해 전혀 모르는거다.
클래스를 테이블 매핑용으로만 쓴다면 객체지향을 모르는거다.
USB에 저장된 설정값 없이 백지에서 설정하는걸 못한다면 그 사람은 그냥 모르는거다.
왜 사람들은 자꾸 자기를 포장하려는지 모르겠다.
코드 보면 바로 이 사람이 거짓말하는지 아닌지를 아는데 말이다.
어떻게 포장해서 입사를 할수는 있겠지만, 그 이후는 어쩌려고.
한번 거짓말한걸 알면 이후에 누가 그사람을 추천하고, 같이 일하려고 할까.
주변에서 이런걸 볼때마다 마음이 너무 갑갑하다.