[워밍업 클럽 2기 BE 클린코드&테스트] 2주차 회고
워밍업 클럽 2기에 열린 BE 클린코드&테스트 스터디에 참가하고 있습니다.
2주차에는 1주차에 배운 클린코드 관련 내용을 예제 프로젝트에 적용하는 시간을 가졌습니다.
아래에 2주차 동안 배운 내용을 요약했습니다.
[배운 점]
1. 코드 다듬기
1.1 주석의 양면성
주석은 코드의 이해를 돕는 중요한 도구이지만, 과도한 사용은 오히려 코드의 가독성을 해칠 수 있다는 것을 배웠습니다. 좋은 코드는 그 자체로 문서가 되어야 한다는 점을 명심하게 되었습니다.
1.2 변수와 메서드의 나열 순서
코드 구조화의 중요성을 깨달았습니다. 변수와 메서드를 일관된 순서로 배치하면 코드의 가독성과 유지보수성이 크게 향상됩니다.
1.3 패키지 나누기
큰 프로젝트를 관리 가능한 단위로 나누는 것의 중요성을 배웠습니다. 잘 구조화된 패키지는 코드의 모듈성을 높이고 재사용성을 증가시킵니다.
1.4 기능 유지보수하기
버그 수정과 알고리즘 교체 과정을 통해 유지보수의 실제적인 측면을 경험했습니다. 이는 초기 설계의 중요성과 함께 변화에 유연한 코드 작성의 필요성을 일깨워주었습니다.
1.5 IDE의 도움 받기
현대적인 IDE 도구들이 제공하는 다양한 기능들을 활용하면 생산성을 크게 향상시킬 수 있다는 것을 배웠습니다. 리팩토링, 코드 분석, 자동 완성 등의 기능들이 특히 유용했습니다.
2. 리팩토링 연습
2.1 추상화 레벨
적절한 추상화 레벨을 찾는 것의 중요성을 배웠습니다. 너무 낮은 추상화는 코드의 복잡성을 증가시키고, 너무 높은 추상화는 실제 구현을 이해하기 어렵게 만듭니다.
2.2 객체의 책임과 응집도
단일 책임 원칙(SRP)의 중요성을 실감했습니다. 각 객체가 명확한 책임을 가지고 높은 응집도를 유지할 때, 코드의 유지보수성과 재사용성이 크게 향상됩니다.
2.3 관점의 차이로 달라지는 추상화
같은 문제도 다른 관점에서 보면 전혀 다른 추상화 모델이 나올 수 있다는 점을 배웠습니다. 이는 문제 해결 시 다양한 시각을 가지는 것의 중요성을 일깨워주었습니다.
3. 기억하면 좋은 조언들
3.1 능동적 읽기
코드를 단순히 읽는 것을 넘어 적극적으로 이해하고 분석하는 습관의 중요성을 배웠습니다. 이는 코드 품질 향상과 문제 해결 능력 개발에 큰 도움이 됩니다.
3.2 오버 엔지니어링
때로는 단순한 해결책이 최선일 수 있다는 점을 배웠습니다. 불필요한 복잡성을 피하고 현재 요구사항에 맞는 적절한 수준의 솔루션을 제공하는 것이 중요합니다.
3.3 은탄환은 없다
모든 상황에 완벽하게 들어맞는 단일 해결책은 없다는 점을 인식하게 되었습니다. 각 문제와 상황에 맞는 최적의 해결책을 찾는 노력이 필요합니다.
[앞으로의 다짐]
이번 학습을 통해 코드 품질 향상과 리팩토링의 중요성을 깊이 있게 이해하게 되었습니다. 이는 단순히 기술적인 스킬을 넘어 소프트웨어 개발에 대한 전반적인 접근 방식을 바꾸는 계기가 되었습니다. 앞으로도 지속적인 학습과 실천을 통해 더 나은 개발자로 성장하고자 합니다.
댓글을 작성해보세요.