확장함수 (2) 썸네일형 리스트형 코틀린(Kotlin) - 리팩토링 : 로컬 함수와 확장 함수로 코드 중복 없애기 우리가 생각하는 좋은 코드의 중요한 특징 중 하나가 "중복이 없는 것" 이라고 생각합니다. 흔히 "두번 이상 반복적으로 사용되는 로직은 따로 빼서 재활용할 수 있도록 해라."라는 말도 있죠 ㅎㅎ 그래서 리팩토링을 통해, 긴 메소드를 부분 부분 기능을 나눠서 따로 떼어내는 작업을 하게 되는데, 하지만 그렇게 코드를 리팩토링 하게 되면, 클래스 안에 작은 메소드들이 너무 많아지게 되고, 각 메소드 사이의 관계를 파악하기가 쉽지가 않아서, 오히려 코드를 이해하기 더 어려워지는 상황이 발생하게 됩니다... 그렇다고, 따로 떼어낸 메소드들을 모아서 내부 클래스(inner class) 안에 넣자니, 코드는 깔끔해지긴 하는데 그에 따른 불필요한 작업들이 늘어나게 됩니다. 하지만 우리에겐 코틀린이 있고, 코틀린에는 더.. 코틀린(Kotlin) - 확장 함수 만들기 자바 컬렉션에는 디폴트 toString()이 구현되어 있습니다. 하지만, 그 디폴트 toString()의 출력 형식은 고정되어 있기 때문에, 우리에게 필요한 형식이 아닐 수도 있습니다. val list = listOf(1, 2, 3) >>> println(list) //디폴트 toString() 호출 [1, 2, 3] 위의 디폴트 구현과 달리, 우리 입맛대로 toString()을 커스텀 하고 싶다면 어떻게 해야 할까요? 코틀린에는 이런 요구 사항을 처리할 수 있는 함수가 표준 라이브러리에 이미 탑재 되어 있습니다! 확장함수(Extension Function) 라고 하며, 마치 기본 클래스에 정의된 함수인 것처럼 새로운 기능을 추가하는 기능입니다. 우선 먼저, 알고가야할 개념으로는 "코틀린에서는 함수를 클.. 이전 1 다음