728x90
경계
- 오픈소스, 라이브러리 같은 경우는 외부코드 해당하며, 우리가 만든 코드는 외부코드랑 병합을 해야함
- 우리코드, 외부코드를 깔끔하게 통합시키기 위해서는 경계를 지켜야함
경계 짓는 방법
- 우리코드를 보호하기
- 외부코드와 호환하기
- 외부라이브러리 테스트
우리 코드를 보호하기
우리코드를 보호하는 방법중에는 캡슐화를 잘 사용하는 것
- 캡슐화 : 객체의 실제 구현을 외부로부터 감추는 방식
안좋은 예시
Map<Sensor> sensors = new HashMap<>();
Sensor s = sensors.get(sensorId);
- Map 인터페이스가 제공하는 불필요한 기능이 노출하게 됨
- 외부코드가 함부로 호출하면 sensor 데이터가 손상될 수 있고, 의도와 벗어남
좋은 예시
public class Sensors {
private Map<Sensor> sensors = new HashMap<>();
public Sensor getById(String sensorId) {
return sensors.get(sensorId);
}
}
- 캡슐화를 통해 Map을 감춤
- 원하는 기능만 공개
- 적절한 경계로 우리코드를 보호함
외부 코드와 호환하기
외부 코드를 호출할 때 우리가 원하는 방식으로 사용하기 위해 Adapter 패턴을 사용하는 것이 좋음
- Adapter 패턴 : 외부코드를 호출할 때, 우리가 정의한 인터페이스 대로 호출하기 위해 사용하는 패턴
외부 라이브러리 테스트하기
Learning 테스트를 작성해 외부코드인 라이브러리를 테스트 함
Learning 테스트 장점
- 외부코드를 배우고 안정성을 미리 검증이 가능함
- 외부코드의 버전이 변경됐을때, 우리코드와 호환되는지 확인할 수 있음
'CLEANCODE' 카테고리의 다른 글
[CLEANCODE] 객체와 자료구조 (0) | 2021.10.24 |
---|---|
[CLEANCODE] 형식맞추기 (0) | 2021.10.24 |
[CLEANCODE] 주석 (0) | 2021.10.23 |
[CLEANCODE] 함수 (0) | 2021.10.23 |
[CLEANCODE] 의미있는 이름 (0) | 2021.10.20 |