글또:개발번역일기

글또 | 클린코드 스터디 30일 기록

채유나 chaeyoonaaa 2023. 6. 4. 21:02
반응형

처음에는 나의 데이터 사이언티스트(DS) 업무가 주변 개발자 업무와 결이 다르다는 걸 몰랐다. 같은 DS role인데도 회사마다 조직구성을 어떻게 하는가에 따라 근무 특성이 달라질 수 있다는 것을 ... 졸업 직후 취준할 때는 몰랐다. 입사 후 1년동안 조직을 경험해보고 다른 졸업생 동기들은 어떠한지 주변 회사들은 어떠한지 비교를 하면서 그제서야 본업의 영역을 구체적으로 알게 되었다.

우리 회사의 DS 업무는 Software development cycle 과 다르게 진행되고 에자일, CD/CI 등에 관련되어 있지 않다. 그런데 코딩을 하는 사람들의 입장에서 개발자들이 추구하는 이상적인 개선 방향과 같은 방향을 보고 있다. 결국 좋은 코드를 쓰고 말할 수 있는 내공이 있어야 그 다음 분석 보고가 가능하기 때문이다. 내가 DS본업 특성을 헷갈렸던 부분 중 하나다. 프로그래밍을 할 수 있는 능력을 전제로 채용된 직업이니 (JD에 구체적으로 말하지 않았더라도) 코드 구현에 대한 기본 상식을 쌓거나 보다 더 나은 실력으로 발전하기 위한 필요들은 개발자의 노력과 다를 게 없었다.

그렇게 처음 한동안 직업 탐색을 하던 시기를 넘어, 이제 막 2년차가 되는 주니어 커리어에서 어떤 부분이 가장 모자라고 장기적으로 개선해 나가야할까 생각했다. 결론은 역시 기본기를 단단히 다져야 한다는 데 다다랐다. 때마침 클린코드 스터디 모집이 눈에 들어왔다. 그리고 5월 한달 30일 클린코드를 함께 읽으며 6장 Objects and Data Structures까지(전체 1/3 지점) 공부하고 토론하기를 달성하였다. [6월은 스터디휴식 중으로 이후 남은 부분들을 다시 시작할 때 스스로에게 도움이 되고자 중간 기록을 남긴다.]



🌘 클린코드 스터디 30일 총평 (1/3 중간평가):

- 고전 바이블의 확실한 장점은 이론을 체계적으로 구조화하여 설명하는 점이다. 가령 4장 Comments를 읽기 전 1-2장이면 끝날 줄 알았던 주석에 대한 내용이 마크다운 2-3단계까지 내려가며 구체적으로 설명되는 것은 막연하게 끝이 보이지 않는 나무를 오르는 주니어에게 공략집 맵을 제공해 주는 듯 했다.

- Java를 모르는 입장에서 책 내용을 100% 이해할 수 없는 건 이미 알고 시작했다. 확실히 6장 Objects 설명은 (함께 참여하는 Java인들이 설명을 해 주어도) 내가 이해하는데 한계가 있었다. 그러나 1장부터 5장까지 내용은 Python을 주력언어로 사용하는 저년차 DS에게도 충분히 유용한 가르침들이었다.

- 이해한 것을 실천하는 것과 과거의 잘못된 코드에 새로 배운 이론을 적용해 수정할 수 있는 능력은 별개로 생각해야 정신 건강에 이롭다.

 

🌘 클린코드 스터디 앞으로 방향성 점검:
1️⃣ 진행속도: 4주동안 1/3을 마칠 수 있던 건 적절했다. 5월 첫째 주말 Chapter 3부터 매주 한 챕터씩 마지막 주말 Chapter 6까지 완료했다. 총 16장으로 구성된 전체를 감안하여 2장까지 읽기는 개인 과제로 가져갔던게 30일동안 밀도있게 공부할 수 있어 좋았다. 다만 앞으로 진행할 본 챕터들에서 개인 이해도가 낮은 부분(e.g., Unit Testing 등)을 1회독 완성으로만 목표를 맞춰야 속도를 유지할 수 있을 것 같다.

 

2️⃣ 스터디방식: 주1회 40분 모임, 돌아가면서 발표하고 중간 중간 같이 생각을 공유한다. 스터디기록에 처음에는 각자 노션을 활용했는데 추후에 하나로 묶을 예정이라 마크다운으로 작성하기로 바꾸었다. 휴식 이후 앞으로는 공동 repo를 하나 개설하여 깃헙으로 관리해도 괜찮을 것 같은데 상의해 봐야 한다.

 

3️⃣ 가장 좋은 점: 프론트, 풀스택, 백앤드, DS(나) 등으로 다양한 직군으로 구성되어 장점이 많다. 개인 코드에서 좋은 예시 있으면 같이 보고 있는데 그 과정에서 각자의 직업 특성 및 주력 프로그래밍 언어 특징을 골고루 접할 수 있어 도움된다. 예를 들어 내가 담당했던 4회차 주석에서는 이런 식으로 몇 가지 사례를 작성했는데 IPython display를 처음 보는 분들이 무척 재밌게 봐주셨다. 시간이 남으면 클린 코드가 아닌 사례들에 대해서 스크린 공유로 보여주어 이해를 도왔는데 굳이 기록까지 남길 필요는 없어 마크다운 파일에 포함하지 않았다. 다만 해당 주차 메인 발제자가 시간 관리에 신경을 잘 써야 할 것 같다. 내용들이 워낙 다 도움되고 좋은 것들이긴 한데 계획하지 않고 발표하면 정해둔 40분 모임 시간이 너무 쉽게 넘어가더라. 최대1시간까지로 제한을 상의해봐야 한다.

 

4️⃣ 가장 아쉬운 점: 공부한 것을 적용하는 과정이 잘 되지 않는다. 각자 현업에서 코드 중 대외비 사안들을 공유할 수 없으므로 (당연히 해서도 안되고) 개인이 지속적으로 가져가야 하는데 아무래도 우선순위가 자꾸 밀려서 어떻게 개선 할 수 있을지 스터디 휴식 기간동안 고민하겠다.

 

 

 

(웃프게도) 내가 코딩을 처음 시작하는 비기너 레벨은 벗어났기 때문에 무엇이 기본이고 어떻게 해야 하는지에 대한 어렴풋한 감각은 존재한다. 다만 현업에서 당면한 과제에 나의 기여도를 인정받기 위한 단기적 목표 달성을 지속적으로 우선하거나 퇴근 후 아무것도 하기 싫다며 게을러지는 걸 어쩔 수 없다고 위로하는 게 함정이었다. 더 이상 당연한 일을 미루지 말자 결심했으니 주위를 잘 둘러보며 함께 나아가는 방향을 잘 실행해야겠다.

반응형