![[워밍업 클럽 3기 Backend 클린코드 & 테스트코드] 한 발자국 👣](https://cdn.inflearn.com/public/files/blogs/f40c853e-8b09-4605-a510-c9fbde54363e/썸네일 2.png)
[워밍업 클럽 3기 Backend 클린코드 & 테스트코드] 한 발자국 👣
이 글은 박우빈 강사님의 Readable Code: 읽기 좋은 코드를 작성하는 사고법 강의를 기반으로 인프런에서 진행하는 [워밍업 클럽 3기] Backend 클린 코드 & 테스트 코드 스터디 회고록입니다.
아래 학습 내용은 박우빈 강사님의 Readable Code: 읽기 좋은 코드를 작성하는 사고법 강의를 듣고 학습한 내용입니다.
저작권 보호를 위해 강의 내용보다는 학습하면서 느낀 점 위주로 정리하였습니다.
정신없는 한 주를 보냈다. 하지만 그만큼 뿌듯한 한 주였다.
본격적으로 [워밍업 클럽 3기] Backend 클린 코드 & 테스트 코드 스터디 1주차 회고에 들어가기 전에 워밍업 클럽 스터디가 무엇인지? 왜 참여하게 되었는지?에 대해 정리해보았다.
🤔[워밍업 클럽 3기] Backend 클린 코드 & 테스트 코드
About [워밍업 클럽] Backend 클린 코드 & 테스트 코드 스터디
워밍업 클럽은 실무에 필요한 지식을 쌓을 수 있는 지식공유자 주도 스터디 프로그램이다. 현직자 출신의 지식공유자가 본인의 강의를 바탕으로 직접 스터디를 이끌며 진행하는 방식이다.
왜 신청했는가?
1⃣ 평소에 관심이 많던 주제였기 때문
처음 코딩을 배우기 시작했을 때부터 막연하게 "좋은 코드란 무엇인가?", "어떻게 하면 더 읽기 쉽고 유지보수하기 좋은 코드를 작성할 수 있을까?" 같은 고민이 있었다. 하지만 막상 공부하려고 하면 무엇부터 시작해야 할지 감이 잡히지 않았다.
클린 코드와 테스트 코드는 중요하다는 걸 알고 있었지만, 실력이 부족하다고 느껴서 "아직 내 수준에서 공부할 내용이 아닐지도 몰라" 하며 미뤄왔다. 테스트 코드 역시 마찬가지였다. 테스트 코드를 작성하는 이유는 알겠지만, 어디까지 테스트해야 하는지, 어떤 방식으로 작성해야 하는지 막막했다.
이번 스터디는 이런 고민을 해결할 수 있는 기회라고 생각했다. 체계적으로 학습하면서 클린 코드와 테스트 코드에 대한 개념을 확실히 정리하고, 실무에서 활용할 수 있는 능력을 기를 수 있을 거라 기대했다.
2⃣ 강제성이 있는 환경이 필요했기 때문
나는 스스로 의지가 약하다고 생각해서, 새로운 것을 공부할 때 강제성이 있는 환경을 만들어야 꾸준히 학습할 수 있다고 늘 느껴왔다. 그래서 항상 관심 있는 주제가 생기면 관련된 스터디나 프로젝트에 참여하면서 학습을 지속하려고 노력하는 편이다.
이번에도 혼자서 클린 코드와 테스트 코드를 공부한다고 하면 분명 흐지부지될 가능성이 컸을 것이다. 하지만 스터디에 참여하면 일정에 맞춰 학습을 진행해야 하고, 함께하는 사람들이 있기 때문에 자연스럽게 동기부여도 될 것이라 생각했다.
또, 단순히 강의를 듣는 것이 아니라, 여러 사람들과 함께 학습하고 피드백을 주고받을 수 있다는 점도 매력적이었다. 혼자 공부하면 잘 이해되지 않는 부분을 그냥 넘어가게 될 수도 있지만, 스터디에서는 서로의 코드를 리뷰하고 의견을 나누면서 더 깊이 있는 학습이 가능할 것 같았다.
3⃣ 좋은 기회를 놓칠 이유가 없었기 때문
비록 예상보다 큰 금액의 강의를 신청해야 하는 상황이었지만, 이 기회가 정말 좋은 기회라고 생각해 참여하기로 결심했다.
혼자서 클린 코드와 테스트 코드를 공부하려면 어려운 부분도 많고, 체계적으로 배울 수 있는 기회가 쉽게 오지 않기 때문이다. 하루 이틀 고민하다가 마감 1시간 30분 전에 결정을 내리게 되었고, 한 달 동안 집중해서 실무에 필요한 지식을 배울 수 있다는 점에서 이 기회를 놓치면 안 된다고 확신했다.
✏1주차 학습 내용
1주차에 학습한 내용은 크게 세 부분으로 나눌 수 있을 것 같다.
1⃣ 추상과 구체
Section 2에서는 추상화에 대해 학습했다.
코드를 작성할 때 추상화라는 개념이 막연하게 느껴졌었는데, 강의를 들으며 우리는 이미 자연스럽게 추상화를 하고 있다는 점을 깨달았다. 인간은 사고할 때 자연스럽게 추상과 구체를 오가며 정보를 정리하고, 이는 코드에서도 동일하게 적용된다.
첫 번째 미션에서 "추상과 구체의 예시"를 찾는 과정이 처음엔 어렵게 느껴졌지만, 결국 우리의 모든 행동과 사고 속에서 추상화가 이루어지고 있다는 것을 알게 되었다. 이 깨달음 덕분에 추상화가 어렵게만 느껴질 필요가 없다는 자신감을 얻었다.
처음엔 "왜 이렇게까지 추상화에 대해 이야기하는 걸까?" 싶었지만, 결국 적절한 추상화가 곧 읽기 좋은 코드의 핵심 요소라는 것을 이해하게 되었다. 마치 글을 쓸 때 독자가 이해하기 쉬운 방식으로 핵심 정보만 전달하는 것이 중요하듯, 코드에서도 불필요한 복잡성을 줄이고 필요한 정보만 명확하게 담는 것이 중요하다. 따라서 가독성 좋은 코드를 작성하기 위해 추상화 능력을 기르는 연습이 필요하다는 점을 배울 수 있었다.
2⃣ 코드 자체의 가독성 관점에서의 클린 코드
Section 2와 Section 3에서는 코드 자체의 가독성 관점에서 클린 코드 작성 방법을 학습했다.
이 과정에서 가장 중요한 포인트는 "개발자의 뇌 메모리를 덜 소모하게 만드는 코드"가 클린 코드다라는 개념이었다.
흥미로웠던 점은, 내가 평소에도 코드 작성 시 사소한 요소 하나하나에 대해 고민을 많이 해왔다는 것이다. 변수 선언 위치, 공백 라인, early return 등의 요소들이 단순한 스타일 문제가 아니라 실제로 코드의 가독성과 유지보수성을 높이는 데 중요한 역할을 한다는 점을 배웠다.
사실 지금까지도 코드를 작성하면서 "이렇게 작성하는 게 더 나을 것 같은데" 라는 막연한 느낌으로 스타일을 정리해왔고, 프로젝트를 진행할 때도 사소한 부분을 계속 신경 쓰면서 코드를 다듬었다. 하지만 명확한 근거 없이 단순히 직관적으로 판단하는 경우가 많아서, 다른 사람에게 수정 요청을 하거나 피드백을 주기가 어려웠다.
그런데 이번 강의를 통해 내가 고민했던 부분들이 괜한 집착이 아니라, 실제로 코드의 가독성을 높이는 중요한 요소들이었다는 것을 확인할 수 있었다. 또한, 단순히 "이렇게 작성하는 게 더 좋아 보인다"가 아니라 왜 그렇게 작성해야 하는지에 대한 명확한 이유를 알게 되면서, 앞으로 코드 리뷰나 협업에서도 더 자신 있게 의견을 낼 수 있을 것 같다.
과거에는 "너무 사소한 것에 신경 쓰는 건 아닐까?" 하는 고민이 있었지만, 이제는 가독성이 좋은 코드를 작성하기 위해 꼭 필요한 과정이었다는 확신을 가지게 되었다. 앞으로도 이런 고민을 계속하며 더 좋은 코드를 작성하기 위해 노력해야겠다고 다짐했다.
3⃣ 객체 지향적 관점에서의 클린 코드
Section 4와 Section 5에서는 객체 지향적 관점에서 클린 코드 작성 방법을 학습했다.
나는 Java를 개념적으로 먼저 공부한 것이 아니라, 여러 프로젝트를 진행하면서 자연스럽게 배우는 방식으로 익혀왔다. 그러다 보니 객체 지향 개념(SOLID 원칙, 상속, 추상화, 다형성 등)에 대해 깊이 있게 이해하지 못한 채 적용하는 경우가 많았다. 개념을 따로 공부해도 실제 코드에서 이를 활용하는 것이 쉽지 않았고, 객체 지향 설계를 할 때도 원칙적으로 접근하기보다는 경험적으로 해결하는 경우가 많았다.
그래서 이번 강의에서는 더욱 집중해서 학습하려고 했다. 강의가 개념 설명만 하는 것이 아니라, 실제 프로젝트에 적용해보는 방식으로 진행되어 단순한 이론이 아니라 실제 코드에 녹여내는 연습을 할 수 있었다.
물론 한 번의 학습으로 모든 것을 완벽히 이해했다고 할 순 없지만, 앞으로 코드를 작성할 때 이러한 개념들을 고민하며 적용하는 습관을 들이면 자연스럽게 체득할 수 있을 것이라 생각한다. 특히, 이제는 단순히 프로젝트를 통해 Java를 익히는 것이 아니라, 객체 지향적 설계를 고민하면서 더 나은 코드 구조를 만들기 위한 연습을 병행해야겠다고 다짐했다.
결국, 좋은 코드를 작성하기 위해서는 이론을 이해하는 것뿐만 아니라 꾸준한 연습과 적용이 필수적이라는 점을 다시 한번 깨달았다. 앞으로 더욱 노력해야겠다.
📜미션
이번 주는 Day 2와 Day 4에 총 2개의 미션을 수행했다. 미션에 관련한 내용은 아래 링크에서 확인할 수 있다.
Mission 1 | Day 2
Mission 2 | Day 4
👍Keep: 잘한 점
솔직히 말하면, 잘한 점보다는 아쉬운 점이 더 많이 떠오른다. 하지만 확실한 것은, 그 어느 때보다도 열심히 참여했다는 점이다.
스터디 주제에 평소 관심이 많았고, 좋은 기회인 만큼 한 달 동안 최대한 많은 내용을 얻어가고 싶었다. 그래서 강의를 듣고 내용을 꼼꼼하게 정리하며 최선을 다해 공부했다. 이 점만큼은 스스로도 잘했다고 생각한다.
👎Problem: 개선이 필요한 점
너무 꼼꼼하게 공부하려다 보니, 강의에서 한 부분도 놓치고 싶지 않다는 마음이 강했다. 물론 꼼꼼한 학습이 나쁜 것은 아니지만, 다른 사람들보다 2~3배 더 많은 시간이 걸려 학습 속도가 느려졌다. 특히 수요일마다 일정이 있어 공부 시간이 부족한 날이 있었고, 그로 인해 학습이 조금씩 밀리는 점이 아쉬웠다.
또한, 집중력이 부족하다고 스스로 느껴 힘들었다. 공부할 내용은 많은데 시간이 더 걸리다 보니 스트레스를 받았고, 결국 새벽까지 학습하는 상황이 반복되었다.
🤙Try: 더 나은 결과를 위해 시도할 점
앞으로는 모든 내용을 한 번에 완벽히 이해하겠다는 부담을 조금 내려놓으려 한다.
만약 한 번에 이해되지 않더라도, 우선 평일에 진도를 끝내고 주말에 복습하는 방식으로 학습 패턴을 조정해볼 계획이다. 이를 통해 학습 효율을 높이고, 보다 균형 잡힌 공부 습관을 만들어 나가려 한다.
다음 주부터는 이러한 방식을 적용해, 보다 효과적인 학습을 실천해볼 예정이다.
댓글을 작성해보세요.