[ 클린코드 매일 읽기 ] TIL 7장. 오류 처리

원장·2024년 2월 6일
0

클린코드

목록 보기
8/10

3줄 요약

  • null을 반환하지도 체크하지도 말라.
  • 예외는 필수다!
  • 내가 무의식적으로 썼던 if (x != null) 이 안좋은 습관이였다.. 고치자 ㅠㅠ

오늘 읽은 범위

7장 오류 처리

책에서 기억하고싶은 내용

  • 뭔가 잘못될 가능성은 늘 존재한다. 뭔가 잘못되면 바로 잡을 책임은 바로 우리 프로그래머에게 있다.[130]
  • Try-Catch-Finally 문부터 작성하라 [132]
  • 예외에 의미를 제공하라. 예외를 던질 때는 전후 상호아을 충분히 덧붙인다 [135]
public void registerItem(Item item){
	if (item != null) {
    	ItemRegistry registry = persistentStore.getItemRegistry();
        if (registry != null) {
        	Item existing = registry.getItem(item.getID());
            if (existing.getBillingPeriod().hasRetailOwner()) {
            	existing.register(item);
            }
        }
    }
}
  • 이런 코드 기반에서 코드를 짜왔다면 나쁘다고 느끼지 않을 지도 모르겠다고 말했는데, 정확하게 나쁘지 않았다고 느꼈다. 원래 나도 이런식으로 null 체크하면서 코드를 짰기 때문이다. 하지만 저자는 null을 반환하는 상황 자체를 만들지 말라고 한다.[139]

  • 깨끗한 코드는 읽기도 좋아야 하지만 안정성도 높아야 한다. 이 둘은 상충하는 목표가 아니다. 오류 처리를 프로그램 논리와 분리해 독자적인 사안으로 고려하면 튼튼하고 깨끗한 코드를 작성할 수 있다. 오류 처리를 프로그램 논리와 분리하면 독립적인 추론이 가능해지며 코드 유지보수성도 크게 높아진다.[142]

읽은 소감과 떠오르는 생각

  • 개발자는 자기가 만든 제품에 오류가 생길 경우 유저에게 알릴 필요가 있다. 오류처리를 잘 하지않으면 앱이 꺼졌을 때 유저는 왜 꺼진지도 모르고 당황한다. 뭔가 만들면 항상 그랬던 것 같다. 유저는 앱이 비정상적인 활동을 보이면 그냥 안된다고만 한다. 구체적인 설명이 없다. 그렇게 안된다고 말하기 전에 예외처리, 오류처리로 그 유저가 왜 종료된건지 고지를 했어야하는게 맞았다. 돌이켜보니.

  • null 체크 후 다음 동작으로 넘어가는 것을 아무렇지 않게 생각했었는데 안좋은 습관이라고 한다. 근데 정말 이렇게 쓰면 다른 사람이 저 null을 봤을 때도 그렇고 코드가 정확히 진행되는건지 아닌건지 파악이 어려울 수도 있을 것 같다고 생각했다. 고쳐야겠다. 다음부턴 최대한 내 코드에 null은 없게 고쳐나가자.

  • 추가로 null도 반환하지말라고한다. 동의한다... return; || return null; 쓰지 말자 ㅠㅠ

궁금한 내용이나 잘 이해되지 않는 내용

  • 없다.

공부법

profile
나 원장이 아니다

0개의 댓글