![[워밍업 클럽 3기 Backend 클린코드 & 테스트코드] 두 발자국 👣](https://cdn.inflearn.com/public/files/blogs/6d54ad36-d18e-4266-a229-0395f142a780/발자국 썸네일 2.png)
[워밍업 클럽 3기 Backend 클린코드 & 테스트코드] 두 발자국 👣
이 글은 박우빈 강사님의 Readable Code: 읽기 좋은 코드를 작성하는 사고법 강의를 기반으로 인프런에서 진행하는 [워밍업 클럽 3기] Backend 클린 코드 & 테스트 코드 스터디 회고록입니다.
아래 학습 내용은 박우빈 강사님의 Readable Code: 읽기 좋은 코드를 작성하는 사고법 강의를 듣고 학습한 내용입니다.
저작권 보호를 위해 강의 내용보다는 학습하면서 느낀 점 위주로 정리하였습니다.
2주차는 아쉬움이 많이 남는 한 주였다.
✏2주차 학습 내용
2주차에 학습한 내용은 크게 네 가지로 나눌 수 있을 것 같다.
1⃣ 코드 다듬기
Section 6에서는 코드 다듬기에 대해 학습하였다.
코드 다듬기와 관련된 내용은 항상 궁금했지만, 너무 사소한 것 같아 어디에 물어보기가 어려웠다. 그런데 이번 강의에서 그런 부분들이 다뤄져서 무척 유익했다.
특히, 변수와 메서드 나열 순서에 대한 강의가 가장 기억에 남는다. 변수의 경우, 나는 항상 사용하는 순서대로 나열해왔기 때문에 비교적 괜찮았지만, 메서드 나열 순서는 평소 내가 작성하던 방식과 차이가 있었다.
강의에서는 두 가지 예시를 들었는데, 나는 그중 첫 번째 예시(public-private-private / public-private)와 비슷한 방식으로 메서드를 정리해왔다. 그렇게 하는 것이 가독성에 더 좋다고 판단했기 때문이다. 하지만 강의를 듣고 나니, 내가 작성한 방식은 코드를 작성한 사람에게는 가독성이 좋을 수 있지만, 처음 보는 사람에게는 그렇지 않을 수도 있겠구나 하는 생각이 들었다.
아직 대규모의 코드를 작성해 본 경험이 부족해서, 이런 차이를 체감하지 못했던 것일 수도 있다. 앞으로도 이 부분에 대해 더 고민해보고, 실제 프로젝트에서 적용해 보며 경험을 쌓아야겠다고 생각했다.
2⃣ 리팩토링 실습
화요일에는 미션 7을 통해 실제 코드를 리팩토링하는 경험을 해보았다.
강의를 보면서 따라할 때는 강사님의 사고를 그대로 따라갈 수 있어 어려운 점이 없었지만, 막상 혼자서 리팩토링을 해보려니 예상보다 훨씬 어려웠다.
가장 먼저 부딪힌 문제는 다른 사람이 작성한 코드를 읽고 이해하는 데 걸리는 시간이었다. 지금까지는 내가 작성한 코드만 읽고 리팩토링해왔기 때문에, 처음 보는 코드의 구조를 파악하는 일이 생각보다 쉽지 않았다.
또한, 가장 최선의 답을 찾아야 한다는 점도 어려웠다. 리팩토링에는 정답이 존재하는 것이 아니라, 주어진 상황에서 최적의 해결책을 찾는 과정이기 때문에 더 고민이 많아졌다.
객체의 책임을 적절히 나누는 것도 쉽지 않았다. 객체의 책임이 명확하게 하나로 분리된 것인지를 판단하는 것부터가 어렵게 느껴졌다. 게다가, SOLID 원칙에 맞게 코드가 잘 설계되었는지 파악하는 과정조차도 쉽지 않았다.
강의를 들으며 실습할 때는 리팩토링이 생각보다 어렵지 않다고 착각했지만, 실제로 혼자 진행해보니 엄청난 연습이 필요하다는 걸 절실히 깨달았다.
무엇보다도, 리팩토링을 잘하기 위해서는 먼저 다른 사람의 코드를 읽는 능력부터 길러야겠다고 다짐한 시간이었다.
3⃣ 중간 점검
금요일에는 약 2시간 동안 중간 점검 라이브를 진행했다.
코드 리뷰를 신청해보고 싶었지만, 아직 다른 사람들 앞에서 내 코드를 공개할 자신이 없어 망설이다가 기회를 놓치고 말았다. 그 점이 많이 아쉬웠지만, 대신 다른 사람들의 코드 리뷰를 보며 설명을 듣는 것만으로도 큰 도움이 되었다.
이번 라이브는 좋은 배움의 기회가 되었고, 다음에는 꼭 용기를 내어 코드 리뷰를 직접 신청해봐야겠다고 다짐했다.
4⃣ 자바 기반의 테스트 코드
학부생 때부터 연구실에서 프로젝트를 진행할 때 테스트 코드를 작성하고, 요구사항에 대한 테스트를 항상 진행해왔다. 덕분에 테스트 코드의 필요성에 대해서는 늘 인식하고 있었지만, Junit과 같은 자동화된 도구를 사용하지 않고 수동 테스트만 진행해왔다.
그렇다 보니 테스트 도구를 배워야겠다는 필요성을 계속 느끼면서도, 제대로 공부할 기회가 없었다. 하지만 이번 스터디를 통해 마침내 테스트 도구를 배울 수 있어서 정말 좋은 경험이 되었다.
📜미션
이번 주는 Day 7에 미션을 수행했다. 미션에 관련한 내용은 아래 링크에서 확인할 수 있다.
Mission 3 | Day 7
https://github.com/ParkSoyun/inflearn-pwb-readable-code/pull/1
👍Keep: 잘한 점
이번 주는 전체적으로 아쉬움이 많이 남는 한 주였다.
그럼에도 불구하고, 좋지 않은 컨디션 속에서도 해야 할 일들을 포기하지 않고 끝까지 수행했다는 점은 스스로 칭찬해주고 싶다.
👎Problem: 개선이 필요한 점
컨디션이 좋지 않은 상태에서 무리하다 보니 한 주 내내 몸이 아팠고, 결국 완주를 위해 꼭 필요한 최소한의 일만 수행할 수밖에 없었다는 점이 아쉽다.
다행히 주말 동안 충분히 휴식을 취하며 컨디션을 회복했으니, 다음 주부터는 다시 집중해서 달려야겠다.
🤙Try: 더 나은 결과를 위해 시도할 점
이번 주를 통해 컨디션 관리가 가장 중요하다는 것을 절실히 깨달았다. 앞으로는 몸 상태를 잘 살피면서 최선을 다해야겠다는 다짐을 했다.
또한, 월요일 미션을 빠르게 마친 후 코드 리뷰를 신청하는 것을 목표로 삼았다. 사실 아직 다른 사람들 앞에서 내 코드를 공개하는 것이 부끄럽지만, 이번 중간 점검 때 다른 사람의 코드를 보는 것만으로도 큰 도움이 되었다. 그렇다면 내 코드로 직접 리뷰를 받으면 더욱 많은 인사이트를 얻을 수 있지 않을까?
조금 더 용기를 내서 이번 미션에서는 코드 리뷰를 꼭 신청해봐야겠다.
댓글을 작성해보세요.