try-with-resources의 종료 순서

선언된 자원은 본문 종료 뒤 역순으로 모두 닫힌다.

  1. Socket 선언

    가장 안쪽 기반 자원을 먼저 적는다.

  2. Input 선언

    Socket에서 입력 래퍼를 만든다.

  3. Output 선언

    마지막 바깥 자원을 만든다.

  4. 역순 종료

    output, input, socket 순으로 닫는다.

핵심: 외부에서 받은 Socket도 소유권을 넘겨받은 경우에만 자원 선언에 넣는다.