| 나를 알고 성장하기 | 근거 있는 코드를 작성하는 점에 있어 조금은 성장한 것 같다는 생각이 듭니다. 이전까진 best practice만 찾아서 좋아보인다는 이유로 도입해왔으나, 요즘엔 모든걸 의심하고 도입할 필요성이 있는가를 체크하고자 노력하게 되었기 때문입니다.
챌린지 때나 미션1 때를 돌아보면 이유없이 다들 그렇게 하니까 layered 패턴을 도입하던 것이 떠오릅니다. 물론 그게 spring 등 유명 프레임워크에서 필수이겠으나, 제 코드에서는 필수가 아니라는 생각이 들었습니다. 그래서 저만의 방식으로 코드를 짜고자 노력했습니다. 정말 필요한 상황이 아니면 아무리 좋아보여도 도입하지 않았습니다. 또한 리팩토링이 어떠한 점에서 필요한지 명확하게 말할 수 있을 때까진 파일 분리나 리팩토링도 하지 않았습니다.
하지만 이러한 방식은 굉장히 어려웠습니다. 그냥 마음 편하게 MVC-Service 구조로 시작했다면 어디에 어떤 코드가 들어가야하는지가 명확했을텐데, 저만의 근거를 찾다보니 리팩토링 과정에 너무 많은 시간이 쓰였습니다. 또 막상 기능이 추가되다보면 '나만의 기준'이 제 발목을 잡기도 했습니다. 명확한 포장 도로가 있는데 자꾸 비포장 도로를 개척하려는 것 같은 기분이 들었습니다.
아무래도 명확한 기준이 필요하겠다는 생각이 들었습니다. 이를 위해 많이 쓰이는 best practice가 무엇인지를 공부하기보단, 왜 그러한 best practice가 나온 것인지, 좋은 리팩토링이 무엇인지를 공부해보려고 합니다.
KEEP : 아무리 좋은 구조이더라도 정말 필요한 상황이 아니면 도입하지 않는 자세. 정말 필요한가를 의심하는 자세. PROBLEM : 하지만 아직 좋은 코드를 많이 본 적이 없다보니 명확한 기준이 없다. 리팩토링 결과 더 나쁜 결과를 초래하기도 한다. TRY : 좋은 코드들을 보면서 '왜' 그 구조가 나왔는지, 언제 좋은지, 좋은 리팩토링이 무엇인지에 대해 공부해보기. | | --- | --- | | 자기주도적으로 행동하기 | 이번주에는 view 파트를 만들면서 미션1 때와는 다른 시도를 해보았습니다. 미션에 동적인 HTML이 요구사항에 있었는데, 이 부분을 어떻게 할지 고민했습니다. 지난 미션1 때처럼 js를 활용한 CSR 방식을 사용하는 것이 가장 먼저 떠오른 해결법이었습니다. 하지만 지난 미션1 때와 동일하게 구현하면, 별로 얻어갈 게 없을 것 같다는 생각이 들었습니다. 서버 사이드에서 동적 HTML의 결과를 만들어 보내주는 방식을 지켜보고자 새로운 시도를 해봤습니다. HTML을 문자열로 만들고, 등록된 부분에 대해 특정 문자열로 대체해주어 완성된 동적 HTML을 만드는 법을 떠올렸고, 구현해보았습니다.
KEEP : 기존에 해봤던 방식이 아니라, 해보지 않은 새로운 방식으로 view를 구성한 점이 잘했다고 생각한다. 앞으로도 이렇게 배움을 위한 도전적인 자세를 가져가면 좋을 것 같다. | | 전문성 기르기 | 지난주에는 '성장이 멈춘 것 같다'는 느낌을 받았습니다. 얕게 알고 있는 지식을 '일단 만들기'라는 명목 하나로 무작정 구현하고 있었기 때문입니다. 얼추 알지만 제대로는 알지 못하는 상태가 굉장히 찝찝했습니다. 그렇다고 특정 구간에 멈춘 채로 딥다이브만 하게 되면 이번 미션에서 그만큼 포기하게 되는 기능들이 많아질 텐데, 그런 상황을 원하는 것도 아니었습니다. 그것들을 배우며 동료들과 생각을 토론해볼 기회를 놓치기 때문입니다.
이 밸런스를 잡기 위해 저만의 방식 하나를 도입했는데, 바로 '의사 결정 기록지'를 작성하는 것이었습니다. 말은 거창하지만, 그냥 PR에 올리는 '고민과 해결 과정'을 주제별로 묶어 기록하는 활동이었습니다. 이걸 하고나니, 나만의 언어로 말하는 훈련이 되었습니다. 정리한 내용들을 그룹 리뷰에 공유하기도 하면서 사소한 것일지라도 알고 쓰는 느낌을 받았습니다. 덕분에 이번주는 더 성장한 일주일을 보낸 것 같다는 생각이 듭니다.
KEEP : 사소한 결정 사항이더라도 '의사 결정 기록지'에 짤막히 메모하기 PROBLEM : 구현에 급급하다보니 이 기록지가 PR 제출 이후로 밀린다. 이렇게 되면 사소한 결정들을 쉽게 까먹게 된다. TRY1 : 커밋 단위로 기록할 게 없는지 돌아보면 좋을 것 같다. TRY2 : 의사 결정 기록지에 메모한 내용 중 딥다이브 주제를 골라 주말에 자세히 공부해보면 더 좋을 것 같다. | | 함께 자라기 | KEEP : '의사 결정 기록지' 내용을 매 그룹 리뷰 시간마다 공유했습니다. PROBLEM : 동료들의 코드를 못 읽어본 점이 아쉽습니다. TRY : 다음주에는 월 수 동료 PR에다가 코드 리뷰를 남겨보려고 합니다. | | 다음주의 나에게 하고 싶은 말? | 다음주면 스프린트 후반전도 끝이 난다. 후회 없는 마무리를 하자. |