블로그
전체 5#카테고리
- 개발 · 프로그래밍 기타
#태그
- 인프런
- 인프런워밍업클럽
- 스터디3기
- 워밍업클럽
- 워밍업클럽3기
2025. 04. 10.
0
[워밍업 클럽 3기 Backend 클린코드 & 테스트코드]를 마치며
💁♀ ABOUT 워밍업 클럽👆 About [워밍업 클럽] Backend 클린 코드 & 테스트 코드 스터디워밍업 클럽은 실무에 필요한 지식을 쌓을 수 있는 지식공유자 주도 스터디 프로그램이다. 현직자 출신의 지식공유자가 본인의 강의를 바탕으로 직접 스터디를 이끌며 진행하는 방식이다.👆 왜 신청했는가?1⃣ 평소에 관심이 많던 주제였기 때문처음 코딩을 배우기 시작했을 때부터 막연하게 "좋은 코드란 무엇인가?", "어떻게 하면 더 읽기 쉽고 유지보수하기 좋은 코드를 작성할 수 있을까?" 같은 고민이 있었다. 하지만 막상 공부하려고 하면 무엇부터 시작해야 할지 감이 잡히지 않았다.클린 코드와 테스트 코드는 중요하다는 걸 알고 있었지만, 실력이 부족하다고 느껴서 "아직 내 수준에서 공부할 내용이 아닐지도 몰라" 하며 미뤄왔다. 테스트 코드 역시 마찬가지였다. 테스트 코드를 작성하는 이유는 알겠지만, 어디까지 테스트해야 하는지, 어떤 방식으로 작성해야 하는지 막막했다.이번 스터디는 이런 고민을 해결할 수 있는 기회라고 생각했다. 체계적으로 학습하면서 클린 코드와 테스트 코드에 대한 개념을 확실히 정리하고, 실무에서 활용할 수 있는 능력을 기를 수 있을 거라 기대했다.2⃣ 강제성이 있는 환경이 필요했기 때문나는 스스로 의지가 약하다고 생각해서, 새로운 것을 공부할 때 강제성이 있는 환경을 만들어야 꾸준히 학습할 수 있다고 늘 느껴왔다. 그래서 항상 관심 있는 주제가 생기면 관련된 스터디나 프로젝트에 참여하면서 학습을 지속하려고 노력하는 편이다.이번에도 혼자서 클린 코드와 테스트 코드를 공부한다고 하면 분명 흐지부지될 가능성이 컸을 것이다. 하지만 스터디에 참여하면 일정에 맞춰 학습을 진행해야 하고, 함께하는 사람들이 있기 때문에 자연스럽게 동기부여도 될 것이라 생각했다.또, 단순히 강의를 듣는 것이 아니라, 여러 사람들과 함께 학습하고 피드백을 주고받을 수 있다는 점도 매력적이었다. 혼자 공부하면 잘 이해되지 않는 부분을 그냥 넘어가게 될 수도 있지만, 스터디에서는 서로의 코드를 리뷰하고 의견을 나누면서 더 깊이 있는 학습이 가능할 것 같았다.3⃣ 좋은 기회를 놓칠 이유가 없었기 때문비록 예상보다 큰 금액의 강의를 신청해야 하는 상황이었지만, 이 기회가 정말 좋은 기회라고 생각해 참여하기로 결심했다.혼자서 클린 코드와 테스트 코드를 공부하려면 어려운 부분도 많고, 체계적으로 배울 수 있는 기회가 쉽게 오지 않기 때문이다. 하루 이틀 고민하다가 마감 1시간 30분 전에 결정을 내리게 되었고, 한 달 동안 집중해서 실무에 필요한 지식을 배울 수 있다는 점에서 이 기회를 놓치면 안 된다고 확신했다.👆 상세 페이지[지금 무료] 인프런 워밍업 클럽 스터디 3기 - 백엔드 클린 코드, 테스트 코드 (Java, Spring Boot) | 인프런 - 인프런👏 후기👍 좋았던 점항상 ‘언젠가는 꼭 공부해봐야지’ 하고 미루기만 했던 클린 코드와 테스트 코드를 이번 기회에 제대로 공부할 수 있어서 정말 좋았다. 특히 강의가 단순히 개념만 설명하는 것이 아니라, 실제 코드에 적용해보는 실습 위주라서 강사님의 사고 흐름을 자연스럽게 따라갈 수 있었고, 이해도 더 잘 됐던 것 같다. 또 강의에서 끝나는 것이 아니라 미션을 통해 다른 코드에 직접 적용해보면서 고민도 하고, 다양한 시도들을 해볼 수 있어서 단순히 개념만 익히는 수준이 아니라는 점이 특히 좋았다.처음 워밍업 클럽에 참여할 때는 ‘우수 러너는 못 되더라도 완주는 꼭 하자’는 목표로 시작했는데, 결국 완주는 물론이고 우수 러너로까지 뽑혀서 정말 뜻깊은 마무리를 할 수 있었다. 너무 잘하고 싶은 마음에 밤을 새우기도 하고, 고민하면서 시간이 오래 걸리기도 했지만, 그만큼의 보상을 받은 것 같아 정말 뿌듯하고 행복했다.👎 반성하는 점이번 워밍업 클럽에 참여하는 동안 클린 코드와 테스트 코드에 정말 많은 시간을 들여 학습했다. 주어진 기간 동안 해야 할 것들을 책임감 있게 마무리한 건 분명 잘한 일이지만, 돌이켜보면 너무 ‘이번 한 달 안에 다 끝내야 한다’는 마음으로 몰아붙였던 것 같다.클린 코드나 테스트 코드는 한 달 동안의 학습으로 끝나는 주제가 아니라, 이후에도 계속 적용해보고 반복하면서 익혀야 하는 부분인데, 나는 마치 이번 기회에 모든 걸 완성해야 한다는 듯이 조급하게 달렸다. 그러다 보니 체력적으로 지치기도 했고, 오히려 다음을 위한 여유를 남기지 못한 점이 아쉽게 느껴졌다.앞으로는 학습이라는 걸 조금 더 길게 보고, 그때그때 최선을 다하되 내가 감당할 수 있는 속도와 균형을 유지하는 것도 중요하다는 걸 배운 시간이었다.🤙 앞으로의 계획클린 코드와 테스트 코드 같은 주제는 단순히 이번 학습으로 끝나는 게 아니라, 이후에 직접 다양한 프로젝트에 적용해보면서 더 깊이 배우고 깨달을 수 있는 부분이 많다고 생각한다. 그래서 앞으로도 이번에 배운 내용을 바탕으로, 실제 상황에 적용해보며 계속해서 학습을 이어가고 싶다.
개발 · 프로그래밍 기타
・
인프런
・
인프런워밍업클럽
・
스터디3기
2025. 03. 30.
0
[워밍업 클럽 3기 Backend 클린코드 & 테스트코드] 네 발자국 👣
이 글은 박우빈 강사님의 Readable Code: 읽기 좋은 코드를 작성하는 사고법 강의를 기반으로 인프런에서 진행하는 [워밍업 클럽 3기] Backend 클린 코드 & 테스트 코드 스터디 회고록입니다.아래 학습 내용은 박우빈 강사님의 Readable Code: 읽기 좋은 코드를 작성하는 사고법 강의를 듣고 학습한 내용입니다.저작권 보호를 위해 강의 내용보다는 학습하면서 느낀 점 위주로 정리하였습니다. 벌써 한 달이 지나 워밍업 클럽이 끝났다. 항상 관심은 있었지만 "나중에 해야지" 하고 기약 없이 미뤄왔던 클린 코드와 테스트 코드 공부를 한 달 동안 몰입해서 할 수 있어서 정말 좋은 경험이었다.혼자서 강의만 들었다면 이렇게 집중할 수 있는 환경이 절대 만들어지지 않았을 것 같다. 그리고 단순히 강의로 끝나는 게 아니라, 여러 미션을 통해 직접 적용해보고 고민해볼 수 있었던 점도 정말 좋았다.아직은 낯설고 어렵지만 앞으로 이전에 했던 여러 프로젝트에 적용해보면서 다양한 방식으로 고민도 해보고 더 익숙해질 수 있으면 좋겠다.워밍업 클럽 하느라 수고했다, 나 자신!!! 춘식이도!!! 그리고 함께 공부한 모든 분들도!!! 💪🔥한 달간 몰입할 수 있는 최고의 환경을 제공해주셔서 감사합니다! ✏ 4주차 학습 내용4주차에 학습한 내용은 크게 세 부분으로 나눌 수 있을 것 같다.1⃣ Mocking항상 테스트 코드를 작성하려다 포기했던 지점이 Mock 때문이었다.Mocking을 사용해야 할 것 같긴 한데, 어떻게 해야 할지 막막했고, 복잡해 보였다.결국 “나중에 공부해야지” 하며 계속 미뤄왔었다.하지만 이번 강의를 통해 Mocking이 생각보다 어렵지 않다는 것을 알게 되었다.Mock을 활용하면 테스트가 쉽고 빠르게 실행될 수 있다는 장점이 있다.특히 Mockist vs Classicist 개념을 배우면서, 모든 것을 Mock으로 처리할 필요는 없다는 점도 이해할 수 있었다.BDDMockito를 사용하면 가독성을 높이며 명확하게 Mock을 설정할 수 있다.👉괜히 어렵다고 피하지 말고, 직접 해보는 것이 중요하다는 걸 깨달았다!2⃣ 더 나은 테스트 코드 작성이전까지는 테스트 코드를 단순히 "기능이 정상적으로 동작하는지 확인하는 용도"라고만 생각했다.하지만 이번 학습을 통해 테스트 코드도 하나의 중요한 문서이며, 유지보수 가능한 형태로 작성해야 한다는 것을 깨달았다.💡 테스트 코드도 프로덕션 코드처럼 신경 써야 하는 이유가독성이 떨어지는 테스트 코드는 오히려 디버깅을 어렵게 만든다.@ParameterizedTest를 활용하면 불필요한 if문 없이 다양한 테스트 케이스를 깔끔하게 작성할 수 있다.테스트 실행 속도도 중요한 요소이므로, 환경 설정을 최적화하여 불필요한 서버 기동을 줄이는 것이 중요하다.👉이제부터는 테스트 코드도 프로덕션 코드처럼 고민하며 작성해야겠다!3⃣ AppendixAPI 자동화 도구라고 하면 항상 Swagger만 알고 있었고, 그마저도 실제 사용 경험은 없었다.하지만 이번 강의를 통해 Spring REST Docs라는 새로운 도구를 배우게 되었다.Spring REST Docs는 테스트 코드 기반으로 문서를 생성하므로 API 문서의 신뢰도가 높다.반면 Swagger는 프로덕션 코드에 직접 의존하기 때문에 침투적이라는 단점이 있다.직접 실습하면서 적용해볼 수 있어서 API 문서화의 중요성도 체감할 수 있었다.👉이전 프로젝트에서 Swagger를 써볼까 고민했었는데, 이제는 Spring REST Docs도 적극적으로 고려해볼 수 있을 것 같다!📜 미션이번 주는 Day 16와 Day 18에 총 2개의 미션을 수행했다. 미션에 관련한 내용은 아래 링크에서 확인할 수 있다.Mission 5 | Day 16MISSION 5Mission 6 | Day 18MISSION 6 👍Keep: 잘한 점먼저 지난 주에 시도하기로 마음먹었던 코드 리뷰를 받았다는 점을 칭찬하고 싶다. 또한 한 달간 열심히 워밍업클럽을 완주한 나 자신도 꼭 칭찬해주고 싶다. 고생 많았다!👎Problem: 개선이 필요한 점리뷰 신청을 했다는 점은 큰 용기를 냈다는 면에서 잘한 일이라고 생각하지만, 아쉬운 점도 많다. 사실 테스트 코드를 작성하면서 고민했던 부분이 꽤 많았고, 궁금한 점도 많았는데 너무 사소해 보일까 봐 질문을 미루거나 까먹기도 했다. 그래서 결국 너무 단순한 질문만 했다는 점이 아쉽다. 다른 사람들의 질문을 보면서 그들의 고민의 깊이가 정말 깊다는 생각을 했고, 그에 비해 내 질문은 초라하게 느껴지기도 했다. 앞으로는 공부하면서 모르는 부분이나 궁금한 점이 생기면 그때그때 기록하는 습관을 들여야겠다고 생각했다.🤙Try: 더 나은 결과를 위해 시도할 점한 달간의 워밍업클럽은 마무리되었지만 여기서 멈추지 않고 복습하는 시간, 직접 적용해보는 시간을 가지려고 한다. 지금은 정보처리기사 실기 준비 때문에 힘들지만(그래서 관심있는 소모임이 있음에도 불구하고 참여의사를 밝히지 못했다 ㅜㅜ), 시험을 마친 후에는 꼭 복습을 다시 하며 시간을 가지려 한다.➕워밍업 클럽 흔적들📆 노션사실 후반부 갈수록 완료 체크를 잘 안해주긴 했다.... ㅎhttps://inf.run/ZENhG📒 강의 노트강의 저작권 보호를 위해 블러처리했습니다!1⃣Readable Code: 읽기 좋은 코드를 작성하는 사고법 2⃣Practical Testing: 실용적인 테스트 가이드
개발 · 프로그래밍 기타
・
워밍업클럽
・
워밍업클럽3기
2025. 03. 23.
0
[워밍업 클럽 3기 Backend 클린코드 & 테스트코드] 세 발자국 👣
이 글은 박우빈 강사님의 Readable Code: 읽기 좋은 코드를 작성하는 사고법 강의를 기반으로 인프런에서 진행하는 [워밍업 클럽 3기] Backend 클린 코드 & 테스트 코드 스터디 회고록입니다.아래 학습 내용은 박우빈 강사님의 Readable Code: 읽기 좋은 코드를 작성하는 사고법 강의를 듣고 학습한 내용입니다. ✏3주차 학습 내용3주차에 학습한 내용은 크게 세 부분으로 나눌 수 있을 것 같다.이전에 Spring 프로젝트들을 수행하면서 테스트 코드를 작성할 때는 Business Layer에 대한 테스트만 진행해왔었다. Controller 단을 테스트해보려고 해도 외부에서 들어오는 요청이나 이런 부분들에 대해서 어떻게 처리를 해줘야하는지 잘 모르겠었고 프로젝트 마감기한으로 인해 그 부분에 대해 자세히 공부를 해 볼 시간이 부족했기 때문이다. 또 실질적으로 로직이 수행되는 Business 단만 잘 돌아가면 문제가 발생할 일이 거의 없지 않을까 하는 생각이었다. 그런데 이번 기회에 강의를 들으면서 그 부분들을 코드를 통해 실습하면서 학습할 수 있어 좋았다.1⃣ Pesistence Layer 테스트Pesistence Layer은 Data Access 역할이므로 비즈니스 가공 로직이 포함되면 안되며 오직 Data에 대한 CRUD에만 집중해야만 한다.2⃣ Business Layer 테스트Business Layer의 역할은 이름처럼 비즈니스 로직을 구현하는 역할로 Persistence Layer와 상호작용(Data를 읽고 쓰는 행위)을 하여 비즈니스 로직을 전개시키며 트랜잭션을 보장해야 한다.3⃣ Presentation Layer 테스트Presentation Layer은 외부세계의 요청을 가장 먼저 받는 계층으로 파라미터에 대한 최소한의 검증을 수행해야 한다. 하위 Layer들을 Mocking 처리를 해 테스트를 수행할 수 있다. 📜미션이번 주는 Day 11에 미션을 수행했다. 미션에 관련한 내용은 아래 링크에서 확인할 수 있다.Mission 4 | Day 11MISSION 4https://github.com/ParkSoyun/inflearn-pwb-readable-code/pull/2 👍Keep: 잘한 점지난주 회고에서 이번 주 미션은 꼭 코드 리뷰를 신청하겠다고 다짐했었는데, 그 약속을 지켰다!사실 제출한 코드가 최선이라고 확신할 수 없었고, 너무 별 내용 없는 코드라서 리뷰 신청을 망설였다. 하지만 결국 마감 1분 전에 용기 내어 신청 완료! 신청자가 많아서 내 코드가 실제로 리뷰를 받을 수 있을지는 모르겠지만, 다음 주 중간 점검 시간에 다른 사람들의 코드와 비교되어 기가 죽지 않을까 살짝 걱정되기도 한다.👎Problem: 개선이 필요한 점마지막이 다가오면서 조금은 느슨해지는 느낌이 든다. 특히 이번 강의는 이전 강의들보다 한 강의의 길이가 길어서, 그 긴 흐름을 따라가는 게 쉽지 않았다. 하지만 결국 해냈다!🤙Try: 더 나은 결과를 위해 시도할 점이제 딱 일주일 남았다. 끝까지 포기하지 않고, 마지막까지 최선을 다해 마무리할 것이다! 💪
개발 · 프로그래밍 기타
・
워밍업클럽
・
워밍업클럽3기
2025. 03. 16.
0
[워밍업 클럽 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 7MISSION 3https://github.com/ParkSoyun/inflearn-pwb-readable-code/pull/1 👍Keep: 잘한 점이번 주는 전체적으로 아쉬움이 많이 남는 한 주였다.그럼에도 불구하고, 좋지 않은 컨디션 속에서도 해야 할 일들을 포기하지 않고 끝까지 수행했다는 점은 스스로 칭찬해주고 싶다.👎Problem: 개선이 필요한 점컨디션이 좋지 않은 상태에서 무리하다 보니 한 주 내내 몸이 아팠고, 결국 완주를 위해 꼭 필요한 최소한의 일만 수행할 수밖에 없었다는 점이 아쉽다.다행히 주말 동안 충분히 휴식을 취하며 컨디션을 회복했으니, 다음 주부터는 다시 집중해서 달려야겠다.🤙Try: 더 나은 결과를 위해 시도할 점이번 주를 통해 컨디션 관리가 가장 중요하다는 것을 절실히 깨달았다. 앞으로는 몸 상태를 잘 살피면서 최선을 다해야겠다는 다짐을 했다.또한, 월요일 미션을 빠르게 마친 후 코드 리뷰를 신청하는 것을 목표로 삼았다. 사실 아직 다른 사람들 앞에서 내 코드를 공개하는 것이 부끄럽지만, 이번 중간 점검 때 다른 사람의 코드를 보는 것만으로도 큰 도움이 되었다. 그렇다면 내 코드로 직접 리뷰를 받으면 더욱 많은 인사이트를 얻을 수 있지 않을까?조금 더 용기를 내서 이번 미션에서는 코드 리뷰를 꼭 신청해봐야겠다.
개발 · 프로그래밍 기타
・
워밍업클럽
・
워밍업클럽3기
2025. 03. 09.
0
[워밍업 클럽 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 2MISSION 1Mission 2 | Day 4MISSION 2 👍Keep: 잘한 점솔직히 말하면, 잘한 점보다는 아쉬운 점이 더 많이 떠오른다. 하지만 확실한 것은, 그 어느 때보다도 열심히 참여했다는 점이다.스터디 주제에 평소 관심이 많았고, 좋은 기회인 만큼 한 달 동안 최대한 많은 내용을 얻어가고 싶었다. 그래서 강의를 듣고 내용을 꼼꼼하게 정리하며 최선을 다해 공부했다. 이 점만큼은 스스로도 잘했다고 생각한다.👎Problem: 개선이 필요한 점너무 꼼꼼하게 공부하려다 보니, 강의에서 한 부분도 놓치고 싶지 않다는 마음이 강했다. 물론 꼼꼼한 학습이 나쁜 것은 아니지만, 다른 사람들보다 2~3배 더 많은 시간이 걸려 학습 속도가 느려졌다. 특히 수요일마다 일정이 있어 공부 시간이 부족한 날이 있었고, 그로 인해 학습이 조금씩 밀리는 점이 아쉬웠다.또한, 집중력이 부족하다고 스스로 느껴 힘들었다. 공부할 내용은 많은데 시간이 더 걸리다 보니 스트레스를 받았고, 결국 새벽까지 학습하는 상황이 반복되었다.🤙Try: 더 나은 결과를 위해 시도할 점앞으로는 모든 내용을 한 번에 완벽히 이해하겠다는 부담을 조금 내려놓으려 한다.만약 한 번에 이해되지 않더라도, 우선 평일에 진도를 끝내고 주말에 복습하는 방식으로 학습 패턴을 조정해볼 계획이다. 이를 통해 학습 효율을 높이고, 보다 균형 잡힌 공부 습관을 만들어 나가려 한다.다음 주부터는 이러한 방식을 적용해, 보다 효과적인 학습을 실천해볼 예정이다.
개발 · 프로그래밍 기타
・
워밍업클럽
・
워밍업클럽3기