[워밍업 클럽 스터디 2기 - 클린코드, 테스트코드] 1주차 발자국

섹션2. 추상


클린 코드를 왜 지켜야 할까?

  • 가독성이 좋다 = 코드가 잘 읽힌다 = 이해가 잘 된다 = 유지보수 하기가 수월하다

결국 나와 팀 전체가 유지보수 하기가 수월하기 때문에 클린 코드를 지향해야 한다.

추상적 사고란?

  • 표현하고자 하는 구체에서 핵심 개념만을 추출하여 잘 드러내는 표현

  • 도메인의 문맥 안에서 이해되는 용어

  • 변수, 메서드 이름, 매직 넘버, 매직 스트, 추상화 레벨을 맞춰 읽기 좋게 만듦

 

섹션3. 논리, 사고의 흐름


  1. void 대신 반환 타입 주기 -> 반환값이 있으면 테스트 용이

  2. early return을 통한 else 사용 지양

  3. 사용 변수는 가깝게

  4. 공백을 통한 의미 나누기

  5. 부정연산자 사용 대신 의미를 변경

  6. 해피 케이스와 예외 처리

 

섹션4. 객체 지향 패러다임


객제 지향의 장점

  • 절차 지향에서 잘 보이지 않았던 개념을 가시화

  • 관심사가 한 군데로 모여 유지 보수성을 높임

  • 보다 높은 추상화 레벨에서 도메인 로직 다룸

     

    주의!

     

  • Setter 사용 자제: 데이터는 불변이 최고

  • Getter 사용 자제: 객체에 메시지를 보내라!

  • 1개의 관심사로 명확하게 책임이 정의되었는지 확인하기

     

     

    SOLID

    SRP:

    하나의 클래스는 단 한 가지의 변경 이유만을 가져야 한다.

     

    OCP: 확장에는 열려 있고, 수정에는 닫혀 있어야 한다.

     

    LSP: 상속 구조에서, 부모 클래스의 인스턴스를 자식 클래스의 인스턴스로 치환할 수 있어야 한다.

     

    ISP: 클라이언트는 자신이 사용하지 않는 인터페이스에 의존하면 안 된다.

     

    DIP: 상위 수준의 모듈은 하위 수준의 모듈에 의존해서는 안 된다. 모두 추상화에 의존해야 한다.

     

     

    1주차 미션


    Day2 미션

    흑백 요리사를 보던 중 백종원 선생님이 음식을 맛있게 먹는 평가하는 모습을 보고 이를 구체적으로 표현해 보았다.

  • 음식을 먹는다.

  • 음식 속 맛을 내는 물질이 입안으로 들어온다.

  • 침에 녹아 맛 구멍을 통해 들어간다.

  • 맛을 감지하는 세포가 자극을 받는다.

  • 자극이 신경을 통해 뇌로 전달된다.

  • 맛을 느낀다.

  • 맛을 평가한다.

     

     

    Day4 미션

  • 주어진 코드를 클린 코드 방식으로 리팩토링 하였다.

  • SOLID에 대해 복기하며 다시 정의해 보았다.

     


1주차 회고


  • 병행하는 게 많아서 강의 진도를 따라가기 힘들었다.

  • 클린 코드에 대해 막연히 생각했었는데, 이번 기회에 잘 배워서 내 것으로 만들 수 있도록 해야겠다.

 

 

 

댓글을 작성해보세요.

채널톡 아이콘