01. 경계란
- 오픈소스, 라이브러리를 안 쓰는 프로젝트는 없다.
- 우리가 만든 코드에 외부에서 들어온 코드를 병합해야 한다.
- 외부 코드는 외부에서 만든 코드인데, 외부 시스템과 호출하거나 단순히 외부에서 만들어진 코드일 수 있다.
- 우리 코드와 일부 코드를 깔끔하게 통합시키기 위해 경계를 잘 지어야 한다.
캡슐화 (Encapsulation) - 객체의 실제 구현을 외부로부터 감추는 방식
02. 경계 짓기 - 우리 코드를 보호하기
Sensor 관리. Sensor는 외부에서 사용된다.
* Sesor Id와 Sesor 객체로 저장하고 싶어서, Map을 사용
* 하지만 Map을 그대로 사용하면 Map이 가진 clear()가 외부로 노출
* Sensor의 '외부' 코드 관점에서 Sesor 객체의 값들만 가오고 싶다면 캡슐화를 한다.
Map<Sensor> sensors = new HashMap(Sensor>();
Sensor s = Sensor.get(sersorId);
public class Sensors{
private Map<Sensor> sensors = new HashMap<Sensor>();
public Sensor getById(String sensorId){
return sensors.get(sensorId);
}
}
04. 외부 라이브러리 테스트 하기
테스트 이유
- 학습 테스트는 이해도를 높인다.
- 외부 코드의 버전이 변경됐을 때, 우리 코드와 호환되는 지 알 수 있다.