20181026 JAVA 외부에 대한 dependency를 줄인다. 인터페이스만 열어두고, 접근제어자로 캡슐화. Exception 최근 정말 크리티컬하지 않다면, unchecked(runtime) Exception을 사용하는게 보편적.