세상을 바꾸는 개발자

[이펙티브 코틀린] 코틀린의 안정성 - use를 사용하여 리소스를 닫아라 본문

안드로이드/Kotlin

[이펙티브 코틀린] 코틀린의 안정성 - use를 사용하여 리소스를 닫아라

헬창코딩 2023. 7. 19. 22:00

안드로이드는 자바와 코틀린 2가지 언어로 개발을 할 수 있지만 요즘 자바를 사용해서 개발하는 경우는 찾아보기 힘듬니다

저또한 코틀린을 사용합니다 하지만 사용하면서 잘 몰랐던 부분도 있고 한번도 써보지않는 편리고 좋은 기능들이 많이 존재합니다 그래서 이번에 복습할겸 이펙티브 코틀린의 내용으로 정리를 하려고 합니다.

 

 

안정성 -  use 를 사용하여 리소스를 닫아라

 

더 이상 필요하지 않을 때 close 메서드를 사용해서 명시적으로 닫아야하는 리소스가 있다 예를 들어

- InputStream, OutputStream

- java.sql.Connection

- soket, Scanner 등등

 

이러한 리소스들은 AutoCloseable 을 상속받는 Closeable 인터페이스를 구현하고 있다

이러한 모든 리소스들은 최종적으로 리소스에 대한 래퍼런스가 없어질 때, 가비지 컬렉터가 처리하지만 굉장히 느리며 그 동안 리소스를 유지하는데 많은 비용이 발생 

그래서 필요하지 않을때 명시적으로 close 메서드를 호출해주는 것이 좋다.

 

이때 

use 를 사용하면 Closeable/AutoCloseable 을 구현한 객체를 쉽고 안전하게 처리 할 수 있다 또한 파일을 처리할 때는 파일을 한 줄씩 읽어 드리는 useLines 를 사용하는 것이 좋다

 

 

 

참고 : 이펙티브 코틀린

https://www.yes24.com/Product/Goods/106225986?pid=123487&cosemkid=go16425707805513414&gclid=Cj0KCQjwkqSlBhDaARIsAFJANkhCQTUD9TDNQIc0Vtl8O9OL8NFCy7dvHa-SLpewyWlUTlfoadfvjD0aAirIEALw_wcB

Comments