옛날 옛적, 필자는 코틀린의 Scope Function 의 종류와 각각의 특징에 대해 포스팅을 한 적 있다. 그런데, 그 때 정말 글을 무책임하게 썼다는 생각이 문득 들었다. 왜냐하면 최근 본 면접에서 관련한 내용에 대해 물어보셨는데, 나름대로 잘 대답했다고 생각했으나 다시 제대로 공부할 필요가 있다는 피드백을 받았기 때문이다. 문제의 파트는 다음과 같다. with 에 대해 설명할 때, **run 과 특징상 별
Scope Function 코틀린은 기본적으로 '표준 스코프 함수 (Scope Function)' 라는 것을 제공한다. 스코프 함수는 특정 객체의 컨텍스트 내에서 특정 동작 (프로퍼티 초기화, 활용 등) 을 실행하기 위한 목적만을 가진 함수다. 스코프 함수를 람다 함수로 사용하게 되면 임시로 스코프를 형성하는데, (그래서 이름이 스코프 함수다.) 이 스코프 내에서는 객체의 이름을 통해 일일히 참조할 필요 없이 객체를 접근하고 핸들링할 수 있다는 편리하다는 장점이 있다. 코틀린이 제공하는 스코프 함수는 총 5가지로, apply, run, with, also, let 로 이루어져있다. 그런데, 얼핏 보기에는 역할이나 수행하는 기능들이 너무 비슷해서 무슨 상황에 무엇을 써야할 지 헷갈리게 된다. 필자도 엄청 헷갈려서 매번 닿는대로 아무거나 썼기에, 이게 잘 쓰고 있는게 맞는건지 의구심이