반응형

1. 안정적이고 완벽한 코드를 짜는 것도 중요하지만 때로는 시간과 타협해서 돌아가는 코드를 짜는 것만으로 만족해야 할 때가 있다.

이 문구를 읽고 너무 공감이가서 정말 속이 다 시원했다. 물론 내가 짠 코드를 최대한 우아하게 짜고 싶고 각 종 패턴들까지 적용은 아니더라고 누가봐도 읽기 쉽고 잘짰다는 소리를 들을 수 있길 원한다. 하지만 보통 실무에서 이렇게 여유롭게 코드를 리팩토링 할 수 있는 여유가 보통은 없을 것이다. 그러면 가끔 실무에서 손을 뗀 사람들 혹은 소위 아가리어터들(입으로만 떠드는)은 얘기한다. 그 짧은 시간 안에 코드를 잘짜는게 실력이다'라고 하기도 한다. 이게 반은 맞고 반은 틀린 말이다. 물론 그 짧은 시간안에서도 뇌의 CPU가 300%돌아가며 최적의 코드를 짜내는 사람도 분명 있긴 있을 것이다(이런분들이 저런 얘길 하면 아무말도 안한다...그저 존경의 대상일뿐)

하지만 보통은 울며겨자먹기 식으로 급하게 패치를 해야 하는 경우나 기능개발에 비해 일정이 너무나도 짧아 본인이 만들어 놓은 코드를 리팩토링 한 번 제대로 못한 채 테스트만 통과한 상태로 나가는 경우도 비일비재하다. 전에는 경력 많으신 관리직분들의 얘기나 혹은 개발 관련 글들을 읽고 생각했었다. '아 내가 아직 많이 부족해서 그래.. 짧은 시간안에서도 SOLID(객체지향설계)원칙을 지키는 코드를 짜내고야 말겠다고!' 풉🙊 

시간과 타협해 버그 없이 돌아가는 코드를 짜내는 것만으로도 훌륭하다고 생각한다. 하지만 제일 중요한 것은 거기서 끝나면 안된다. 바쁠때는 어쩔 수 없더라도 좋은 개발자가 되기 위해서는 시간을 내든 여유 시간이 생겼든, 뒤로 돌아와 '시간과 타협해 돌아가게 만든 코드를 리팩토링 하는거!' 정말 중요하다고 생각한다. 이 때 우리는 좀 더 발전할 수 있다.

 

2. 우리는 개발자이다. 맘만 먹으면 생각하고 있는 동작을 얼마든지 만들 수 있는 능력을 가진 대단하면서도 신기한 사람들이다.

나도 정말 그렇게 생각한다. 우리는 무에서 유를 창출해내고 있는 사람들이며 내 머릿속 생각을 실제 서비스로 혹은 시스템으로 만들 수 있는 연금술사 같은 사람들이다. 이 문구는 내가 개발자로서의 삶을 살아가고 있는 지금의 모습에 감사함을 느끼게 해주었다. 하지만 제일 중요한 것은 '맘만 먹지말자'는 것이다. 다이어트도 그렇고 신년 계획도 그렇고 맘만먹는 것과 행동하는 것은 다르다. 우리에게 주어진 감사한 능력을 맘껏 발휘해 나만의 서비스를 만들고 운영해보자.

 

3. Stack Overflow Driven Development (SODD) 라는 말이 있듯이 개발은 사실 엄청난 성능과 최적의 알고리즘을 요하는게 아니라면 개발자 간의 경쟁력은 일반적인 개발실력 이외엔 시간과 경험의 차이인것 같다.

이 말인 즉슨 보통 '개발과 구글링과는 뗄레야 뗄 수 없는 존재이기 때문에 굳이 엄청난 알고리즘 지식들을 머릿속에 넣고 있는게 중요하지 않다'라고 생각된다. 일반적인 서비스를 개발하는 영역에서는 사실상 학부시절 배웠던 DFS(깊이우선탐색)이나 BFS(너비우선탐색)과 같은 기초로 여겨왔던 알고리즘 조차 쓸일이 거의 없다. 실제로 필요하다고 해도 해당 부분을 처음부터 끝까지 직접 개발하는 일은 더더욱 드물다. 보통은 나보다 머리가 똑똑한 사람들이 라이브러리 형태로 왠만한 언어로 다 만들어놓았고 우리는 잘 검색해 믿음직스러운 코드를 가져다가 테스트해보고 커스터마이징 하여 사용하는 수준일 것이다.

그렇기에 알고리즘을 많이 알고 있다는 것이 그렇게 중요한 요소로 생각되진 않는다. 취업준비생들 혹은 구글과 같이 알고리즘에 대한 것을 많이 물어보는 기업에 취업하고 싶다면 필수로 공부가 필요하긴 하다. 하지만 연차가 쌓여가면서 얻는 경험은 단순히 공부한다고 배울 수 있는게 아니다. 항상 어른들이 말씀하실 때 모든건 때가 있듯 각 개발연차마다 배워야 할, 배울 수 있는 것들의 시기라는게 있다고 생각한다.

그렇기에 지금 내가 하는 일에 대해 항상 단순 워커 모드로 기능 개발만 하고 끝낼 것이 아니라 영향 가는 부분에 어떤 문제가 발생할 수 있는지 추가적인 기능으로는 어떤 것들이 필요할지 등 확장시켜 생각해보는 것이 중요할 것 같다. 더 나아가서는 이러한 부분을 직접 구현해보고 문서화 시켜서 사람들에게 설명해보는 연습도 한다면 금상첨화일 것 같다.

긴 글 읽어주셔서 감사합니다🙏 

반응형

+ Recent posts