🖤인프런만의 100% 블프 이벤트🖤

🎁100% 환급+할인+당첨 가능한 인프런 블프 구경오세요!

인프런 워밍업 스터디 클럽 2기 백엔드(클린코드&테스트코드) 발자국 - 2주차

인프런 워밍업 스터디 클럽 2기 백엔드(클린코드&테스트코드) 발자국 - 2주차

인프런 워밍업 클럽 2기, 백엔드(클린코드&테스트코드) 과정에 참여하고 있습니다.

이번 2주차에는 코드를 다듬을 때 기억하면 좋은 스킬과 팁을 배우고, 강사님께서 제공해주신 예제 프로젝트를 직접 리팩토링 해보는 시간을 가졌습니다.

강의 링크: Readable Code: 읽기 좋은 코드를 작성하는 사고법

 


 

[학습내용 핵심 요약]

자세한 설명이나 예제 및 코드는 강의 저작권 보호를 위해 기재하지 않았습니다.

 

추상

  • 주석의 양면성: 코드 품질 저하 vs. 필요한 정보 전달

  • 좋은 주석: 의사 결정 히스토리, 코드로 표현 불가능한 정보 전달

  • 주석 관리: 자주 변하는 정보 지양, 코드 변경 시 주석 업데이트

  • 변수/메서드 나열: 사용 순서, 중요도, 그룹화로 의도 전달

  • 패키지 구조: 문맥 정보 제공, 적절한 분할로 관리 용이성 확보

  • 패키지 변경: 같은 프로젝트에서 작업하는 팀과 합의 후 변경하는 것이 중요하다.(초기 설계의 중요성)

  • 객체 지향 설계로 인해, 버그 수정 용이성이 증가할 수 있다.

  • 재귀 알고리즘을 사용할때는 Stack Overflow 에러를 주의해야 한다. 이를 피하기 위해, Stack 자료 구조를 사용할 수 있다.

  • IDE 활용: 코드 포맷팅, 품질 체크 도구(Sonarlint), .editorconfig 사용

  • 코드 스타일: 팀과 합의된 기준을 지키는 것이 중요하고, 지속적인 개선을 해나가는 것이 중요하다.

     

  • 공개/비공개 메서드 배치: 객체의 기능 드러내기

  • 메서드 그룹화: 중요도, 종류별 배치로 일관성 유지

  • 스택 메모리 이해: 재귀 함수 사용 시 주의점

  • 코드 품질 관리를 위해서는 지속적인 리팩토링과 개선에 관심을 갖는 것이 중요하다.

 

기억하면 좋은 조언들

  • 능동적 읽기: 복잡한 코드 이해를 위한 리팩토링 접근법

  • 코드 이해 방법: 단락 구분, 추상화, 주석 활용

     

  • 코드 읽기 목표: 도메인 지식 증진, 작성자 의도 파악

  • 오버 엔지니어링: 불필요한 복잡성 증가, 유지보수 어려움

  • 인터페이스 남용: 구현체가 하나일 때는 인터페이스를 남용하지 않도록 주의가 필요함

  • 이른 추상화 위험: 복잡도 증가, 의도 파악 어려움

  • 은탄환은 없다: 클린 코드도 만능 해결책이 아님

  • 실무 현실: 품질과 빠른 결과물 사이의 균형

  • 클린 코드 사고: 미래 수정 가능성 고려한 코드 작성

  • 적정 기술: 상황에 맞는 방법론 적용 중요성

  • 도구 사용 능력: 극한 사용과 적절한 제한에 대한 이해 필요

  • 적정 수준 파악을 위한 경험 축적을 위해, 클린 코드를 극단적으로 시도해보는 경험이 도움이 된다.

     

  • 지속적 학습: 다양한 상황 경험을 통한 판단력 향상


[후기]

강의를 따라하기 전에, 혼자서 리팩토링 하며 고민해보는 시간을 가져본 다음 강사님의 강의를 따라가는 과정이 매우 효과적인 학습법으로 느껴져서 좋았던 시간이었습니다. 리팩토링 할 때 제가 놓친 부분들이 너무 많았던 것 같아 아쉽기도 했지만, 현재 내 실력을 보다 객관적인 관점으로 체감할 수 있었던 시간이라 더 좋았던 것 같습니다.

이번 주차에서 배운 내용을 토대로 느낀점은 다음과 같습니다.

  • 내가 중요하게 생각했던 도메인의 추상 포인트와 다른 사람이 생각하는 포인트는 매번 다를 수 있다.

  • 추상화에 정답은 없고, 현재 시점에 적용할 수 있는 최선의 방법을 찾아내는 것이 그 시기에 할 수 있는 가장 최선의 방법이다.

위의 두가지 내용은 계속 머리속에 새기고 있으면 좋을 것 같다는 생각이 들었습니다.

이상으로, 2주차 학습 내용 요약과 후기를 정리한 발자국 포스팅을 마칩니다.

댓글을 작성해보세요.

채널톡 아이콘