ํ์ฅํจ์ info๋ฅผ ํตํด ํธ์ถ ํด๋์ค๋ช ๊ณผ ๋ฉ์๋๋ช ์ถ๋ ฅ class PopcornPopper{ fun on() { info() } } fun T.info(): T { val res = this Throwable().stackTrace[1].apply { println("${generateTag()} ${generateMessage(res)}") } return this } fun T.info(msg: () -> Any): T { Throwable().stackTrace[1].apply { println("${generateTag()} ${generateMessage(msg())}") } return this } fun StackTraceElement.generateTag() = className.subst..