`fileWriter.close();`
- 컴퓨터가 파일을 수정할 때 여러 프로그램들을 동시에 수정하면 문제가 되기 때문에 보통은 하나의 프로그램이 하나의 파일을 붙잡고 있으면 다른 프로그램을 읽기는 되지만 쓰기는 못 하게 함
- 쓰기 작업을 다 끝내고 나면 붙잡고 있던 파일을 놓아줘야 함
-- 그 때 사용하는 명령이 `close()`
- 자바에 있는 많은 기능들이 어떤 데이터 작업(특히 쓰기 작업)을 할 때 독점적으로 그 작업을 하기 위해서는 그것을 붙잡아야 하고 반드시 놓아줘야 함
- `close()`를 클래스마다 다른 이름을 사용하면 중구난방
-- 자바에서는 `close()`라는 행위를 필요로 하는 모든 클래스가 `close()`라는 메소드를 똑같은 형태로 구현하게 강제하기 위해서 어떤 장치를 가지고 있음
--- `AutoCloseable`: `close()`라는 메소드를 강제하고 있음
-- 자바 문서의 `All Known Implementing Classes` : 모두가 `AutoCloseable`을 구현하고 있기 때문에 `close()`라는 메소드를 모두 다 가지고 있음
-- 어떠한 클래스가 `AutoCloseable`을 구현하고 있다면 `close()`라는 메소드를 호출해서 그 클래스가 붙잡고 있는 행위를 내려놓도록 할 수 있음
- 인터페이스 : 동작 방법을 조작하는 방식을 표준화하는 데 아주 많이 사용됨