클린코드 3

클린 코드 - 경계

개발을 하다 보면 외부 코드 (구매한 패키지, 오픈 소스, 다른 팀이 개발한 컴포넌트 등) 를 사용할 일이 있다. 이 장에서는 이런 외부코드를 깔끔하게 사용하는 법에 대해 다룬다. 외부 코드 사용 외부 인터페이스를 사용할 때는 해당 인터페이스를 사용하는 클래스 밖으로 인터페이스가 노출되지 않도록 해야한다. 만약 그렇지 않다면 다음과 같은 문제가 생긴다. 만약 외부 인터페이스의 메서드들이 모두 노출된 상태에서 사용한다면, 누군가 의도치 않은 메서드를 사용하여 예기치 않은 문제를 발생시킬 수 있다. 외부 인터페이스가 변할 경우, 메서드를 사용한 코드를 모두 수정해야 한다. 따라서 외부 코드를 새로운 클래스로 감싸거나 Adaptor 패턴을 이용하면 좋다. 이 경우 인터페이스에 변경이 발생해도 해당 클래스만 수..

이론/설계 2021.06.13

클린코드 7장 - 오류 처리

깔끔한 오류 처리는 중요하다 여기 저기 흩어진 오류 처리 코드 때문에 코드의 가독성이 떨어질 수 있기 때문이다. 오류 코드보다 예외 예외처리가 아닌 오류 처리는 기본적으로 if,else 분기를 타며 Debug.Log(...)를 하는 코드이다. 그러나 이런식으로 쓰면 논리가 오류 처리 코드와 뒤섞여 알아보기 힘들다. 그러나 예외를 사용하면 이를 구분할 수 있다. 단, 앞 장에서 말했듯, 오류 처리도 '한 가지 일'이다. 오류를 처리하는 알고리즘은 분리해야 한다. public void DoSomething() { try { TryDoSomething(); } catch (Exception e) { } } Try-Catch-Finally 부터 작성해라 별 이유는 아니고 이렇게 하면 자연스럽게 try 블록의 트..

이론/설계 2021.05.21

클린코드 6장 (객체와 자료 구조)

6장 - 객체와 자료 구조 흔히 필드를 private로 선언하고 getter, setter를 public으로 놓는데 이게 뭔 의미가 있을까? 저자인 로버트 C. 마틴도 `조회 함수와 설정 함수로 변수를 다룬다고 클래스가 되지는 않는다.` 라고 말한다. 그보다는 추상 인터페이스를 제공해야 한다고 말한다. 즉, 자료를 하나하나 공개하기보다는 추상적인 개념으로 묶어서 표현하는 것이 좋다. public interface FuelTank { double getFuelTankCapacity(); double getFuel(); } public interface FuelTank { double getPercentFuelRemaining(); } 즉, 위에꺼보다 아래꺼가 낫다. 개발자는 자료를 표현할 가장 좋은 방법을..

이론/설계 2021.05.10