워밍업 클럼 3기 BE 클린코드 1주차 발자국

워밍업 클럼 3기 BE 클린코드 1주차 발자국

1주차를 마무리하며...

업무와 같이 할 수 있겠지 싶었는데, 강의의 내용이 알차서 생각보다 힘들었습니다.

코드를 따라치며 수강했지만... 사실 제대로 이해 못하고 따라만 친 부분도 상당히 있었는데,

다시 내가 직접 리펙터링 해가며 따라가야지 다짐을 하며 1주차 발자국을 남깁니다.


강의 정리

클린코드란 무엇인가라는 질문으로부터 강의가 시작됩니다.

좋은 코드란 무엇일까요?

저는 강의의 내용을 듣고 이렇게 정리했습니다.

  • 좋은 글과 마찬가지로 클린코드는 잘 읽히는 코드

  • 한 문장 한 문장에 주제가 또렷해 전달하고자 하는 내용을 읽는 이에게 정확하게 전달하는 코드

강의에서 중간중간에 선조후손이라는 용어를 사용하십니다. 내가 쓰는 코드가 꼭 내것만은 아니라는 점을 계속 상기시켜주시면서, 공용의 코드를 어떻게 다뤄야할지는 말씀해주시는게 많이 도움이 될 것 같습니다.

추상화

추상이란 '사물을 정확하게 이해하기 위해서 사물이 지니고 있는 여러 가지 측면 가운데서 특정한 측면만 가려내어 포착하는 것'을 말합니다.

'비가온다' 라는 표현을 '대기내에 수증기가 응결하여 물방울로 변하고, 이 물방울이 중력에 의해서 지표면으로 떨어진다'라고 친구한테 말하면 갸우뚱할 것입니다.

이처럼 추상은 중요한 정보만 남겨 전달함으로써 상대방의 이해를 돕는 기능을 하는걸 실생활에서도 볼 수 있습니다.


코드에서의 추상화

그러면 코드에서는 어떻게 중요한 내용만 가려내고, 구체적인 내용은 숨겨 읽는 이의 이해를 도울 수 있을까요?

강의에서 나온 내용들 중 기억에 남는 방법들을 나열해봅니다.

  • 코드 블럭내에서 추상화 레벨을 통일하기

  • 객체에 적절한 역할과 책임을 부여하고 메시지를 통한 협력을 하는 구조로 만들기

  • SOLID 원칙을 생각해가며 코드를 작성하기

  • 객체지향의 다양한 기법을 활용하기

    • 상속과 조합

    • Value Object

    • 컬렉션으로 포장한 일급컬렉션 사용하기

    • Enum

    • 다형성

       

     

    그리고 읽는 사람을 배려한 다양한 코드 작성법을 나열해봅니다.

  • 변수, 메서드 추상화를 통해 이름 짓기

  • 매직 넘버, 매직 스트링 상수화하기

  • 공백 라인 활용해 블럭내 코드 분간해주기

  • 조건문에 부정어 연산자 `!`줄이기

댓글을 작성해보세요.


채널톡 아이콘