반응형
- 외부 라이브러리를 사용하는 것에 대한 이야기
- 외부 라이브러리를 사용하는 부분을 Wrapper Class로 따로 감싸줘야 한다.
- 앞서 예외 처리를 한 원리와 동일하게 라이브러리의 값이 바뀌게 되더라도 사용하는 쪽에서 변경할 사항이 없도록 클래스 내부에서 처리해야 한다.
- 그리고 Map이 가지고 있는 무수한 function들이 많은데 그냥 바로 HashMap()으로 개발 수 있게 하면 안에 모든 function을 난잡하게 사용할 수 있게 되는데 Wrapper class을 사용해서 통제하며 개발하면 특정 function만 사용하며 개발할 수 있도록 개발이 가능하다.
// Before
Map sensors = new HashMap();
// Sensor가 필요한 객체 코드는 이렇게밖에 받지 못 한다.
Sensor s = (Sensor)sensors.get(sensorId);
아래 코드와 같이 바꾸면 Map의 Value가 바뀌더라도 getById를 동일하게 계속 사용해줄 수 있다.
public class Sensors {
private Map sensors = new HashMap();
public Sensor getById(String id) {
return (Sensor) sensors.get(id);
}
...
}
- 경계를 살피고 익힌다.
- 외부 코드와 기존 코드를 통합하기 전 테스트 케이스를 작성해 익혀야 하고 이를 기반으로 감싸는 클래스를 만들어 줘야 한다.
- 바로 코드를 작성해 정상적인지 확인하기 전 바로 라이브러리를 호출하는 테스트 코드를 만들어보라고 말한다.
- 외부 코드와 기존 코드를 통합하기 전, 간단한 테스트 케이스를 작성해 외부 코드를 익힌다.
- 깨끗한 경계를 만든다.
- 외부 코드 자체를 호출하는 부분은 최소한으로 줄여야 한다.
(앞서 계속 얘기한 것)
- 외부 코드 자체를 호출하는 부분은 최소한으로 줄여야 한다.
- 아직 존재하지 않는 코드 사용하기(Adaptor 구조)
- 이것 역시 비슷한 내용이다.
- 예시로 사용해야하는 외부 코드가 개발이 덜 된 상태라면 가상의 API를 호출하는 Class를 만들어 이 안에서 예외처리를 하는 등 바라는 인터페이스를 구현하면 의도도 분명해질 수 있다.
- API 버전업에 따른 수정사항이 있으면 모든 코드를 수정해야하는데 adaptor만 수정해주면 된다.
- 그리고 실제 개발이 되었다면 그 때 이제 이 가상으로 만든 Interface와 API의 간극을 매꾸면 된다.
반응형
'개발 일반' 카테고리의 다른 글
잊을 때쯤 한번 다시 읽어봐야할 Clean code에 관하여 (리팩토링) (0) | 2021.04.21 |
---|---|
잊을 때쯤 한번 다시 읽어봐야할 Clean code에 관하여 (시스템) (0) | 2021.04.06 |
개발 일반잊을 때쯤 한번 다시 읽어봐야할 Clean code에 관하여 (오류 처리) (0) | 2021.03.23 |
잊을 때쯤 한번 다시 읽어봐야할 Clean code에 관하여 (주석) (0) | 2021.03.15 |
잊을 때쯤 한번 다시 읽어봐야할 Clean code에 관하여 (함수) (0) | 2021.03.15 |