Home [Clean code] Ch07,08. Error Handling
Post
Cancel

[Clean code] Ch07,08. Error Handling

Ch07. Error Handling

오류 코드보다 예외를 사용하라

  • 오류 status 를 하나 하나 지정해서 하기보다는 예외를 사용하는 것이 맞음
  • try - catch 와 같이 전체적인 맥락에서 오류를 잡을 수 있음
    • try 문이 하나의 트랜잭션 역할을 한다.
    • catch 블록은 프로그램 상태를 일관성 있게 유지함

미확인 에외를 사용하라

  • 오류 코드를 싹 다 지정하는 것처럼 예외를 모두 확인된 예외로 사용할 수 있지만, 미확인 예외를 사용하는 것도 분명히 필요함
  • 확인된 예외는 OCP를 위반함
    • Open Closed Principle
      • 기능이 추가될 때 소프트웨어는 확장을 하고, 변경은 최소화하자
      • 시스템이 확장하기 쉬우면서 너무 많은 영향을 받지 않도록하기 위함
  • 함수를 호출하다보면 call stack depth 가 깊어질 수 밖에 없는데, 확인된 예외만 사용한다면 영향받는 함수가 너무 많아짐.
    • 우리 예시
      • CLI → SDK → API-server
        • API-Server
          • Layer 별로 추상화 수준을 다르게 해서 예외 종류를 나눴음
    • → 아래에서 나오는 예외 클래스 정의가 하나의 해결책이 될 수 있음 (감싸기 기법 == 래핑)

Null 반환 , Null 전달 노노!

Ch08. Boundaries

외부 코드 사용하기

  • 오픈소스가 매우 매우 대중화 된 지금 오픈소스 사용은 거의 불가피함
    • 거의 대부분의 기능을 가진 것들이 오픈소스화 되어 있기 때문에 요즘은 먼저 구현하기 보다 구글링을 먼저함

경계 살피고 익히기

  • 오픈소스를 사용할 때 곧바로 우리 코드에서 외부 코드를 호출하기 보단, 외부 코드에 대한 테스트 케이스 작성 및 익히는 방법도 괜찮음
    • 학습 테스트
    • 더 빠르게 익힐 수 있고, 독자적인 클래스로 캡슐화할 수 있음
    • 학습 테스트는 공짜 이상이고, 노력보다 얻는 성과가 더 큼
  • 테스트 케이스 필요!
  • 코드를 불러오는 경우가 아니라 컴포넌트 자체를 가져와서 우리 플랫폼에 붙이는 작업을 했었는데, 해당 외부 플랫폼에 대한 이해도를 쌓는 행위가 선행되는 것이 매우 중요했음

아직 존재하지 않는 코드를 사용하기

  • 아는 코드와 모르는 코드를 분리하는 경계
  • 인터페이스 정의
  • ADAPTER 패턴
    • 전기 콘센트
      • 한국 표준 플러그를 일본 전원 소켓이 끼우기 위해서는 어댑터를 끼워야함.
      • 어댑터는 소캣의 인터페이스를 플러그에서 필요로 하는 인터페이스로 바꿔줌
    • → 현재 사용하고 있는 라이브러리가 더 이상 요구에 부합하지 않아 재작성하거나, 다른 라이브러리를 사용해야할 때가 있음. adapter 패턴을 이용하면 기존 코드를 가능한 적게 변경하면서 교체할 수 있다.
This post is licensed under CC BY 4.0 by the author.