Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
클린 코드 TIL #7
#clean_code
2년 전
780
1

오늘 TIL 3줄 요약

  • Try-Catch-Finally 문을 이용해 오류 처리를 프로그램 논리와 분리하라

  • 정상 흐름을 정의해 예외적 상황을 처리할 필요가 없게 하라

  • nul을 반환, 전달 하지 마라

TIL (Today I Learned) 날짜

2022.03.04

오늘 읽은 범위

7장. 오류처리

책에서 기억하고 싶은 내용을 써보세요.

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

    • 논리가 오류 처리 코드와 뒤 섞이지 않으므로 호출자 코드가 더 깔끔해진다.

  • Try-Catch-Finally 문부터 작성하라

    • try 블록은 트랜잭션과 비슷하다. try 블록에서 무슨 일이 생기든지 catch 블록은 프로그램 상태를 일관성 있게 유지해야 한다.

  • 호출자를 고려해 예외 클래스를 정의하라

    • 애플리케이션에서 오류를 정의할 때 프로그래머에게 가장 중요한 관심사는 오류를 잡아내는 방법이 되어야 한다.

  • 정상 흐름을 정의하라

    • 특수 사례 패턴(SPECIAL CASE PATTERN) : 클래스를 만들거나 객체를 조작해 특수 사례를 처리하는 방식. 클래스나 객체가 예외적인 상황을 캡슐화해서 처리하므로 클라이언트 코드가 예외적인 상황을 처리할 필요가 없다.

  • null을 반환하지 마라

    • 메서드에서 null을 반환하고픈 유혹이 든다면 그 대신 예외를 던지거나 특수 사례 객체를 반환한다.

  • null을 전달하지 마라

    • 대다수의 프로그래밍 언어는 호출자가 실수로 넘기는 null을 적절히 처리하는 방법이 없다.

  • 결론

    • 깨끗한 코드는 읽기도 좋아야 하지만 안정성도 높아야 한다.

    • 오류 처리를 프로그램 논리와 분리해 독자적인 사안으로 고려하면 튼튼하고 깨끗한 코드를 작성할 수 있다.

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

  • try-catch를 어떻게 해야할 지도 어려웠는데 특수 사례 패턴을 이용하는 걸 배웠으니 이것도 고려하게 되면 더 생각할게 많아질 것 같다. 안정적으로 코드를 짠다는게 엄청 어려운 일이구나 생각했다. 해당 값이 null인지 아닌지에 대한 확인을 하는 경우가 많았는데 null값에 대한 처리는 애초에 null 을 반환 혹은 전달하지 않도록 짜여 있었으면 해결 되는 문제 였다는 깨달음을 얻었다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • TDD : Test Driven Development의 약자로 '테스트 주도 개발'이라고 한다. 반복 테스트를 이용한 소프트웨어 방법론으로 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다.

  • OCP(Open Closed Principle) : 개방-폐쇄 원칙은 '소프트웨어 개체는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다'는 프로그래밍 원칙이다.

오늘 읽은 다른사람의 TIL

1 comment