Ruby 3.4 릴리즈와 함께 새로운 기능인 'it' 블록 파라미터 참조 이름이 도입되었습니다. 이 기능은 블록 내에서 전달되는 인자를 명시적으로 변수명을 선언하지 않고 간결하게 참조할 수 있도록 설계되었습니다. 기존에는 `_1`, `_2`와 같은 번호 매겨진 파라미터나 명시적인 변수명 선언 방식을 사용했지만, 'it'는 특히 간단한 블록 작업에서 코드 가독성과 작성 편의성을 향상시키는 대안을 제공합니다.
과거 Ruby에서는 블록 파라미터를 참조하기 위해 array.map { |name| name.capitalize }
와 같이 명시적인 변수(name
)를 선언하거나, 더 간결하게 array.map(&:capitalize)
와 같이 symbol_to_proc
문법을 활용했습니다. 그러나 symbol_to_proc
는 인자가 필요하거나 복잡한 메서드 체이닝이 필요한 경우에는 사용하기 어렵다는 한계가 있었습니다. Ruby 3.4의 ‘it’는 이러한 상황에서 유용하게 활용될 수 있습니다. 예를 들어, 문자열 배열의 각 요소를 대문자로 만들거나(e.g., names.map { it.capitalize }
), 공백으로 분리된 이름의 각 부분을 대문자로 만들고 다시 합치는 복잡한 작업(e.g., names.map { it.split.map(&:capitalize).join(' ') }
)을 it
를 사용하여 간결하게 표현할 수 있습니다. ‘it’는 블록으로 전달되는 단일 인자를 암시적으로 참조하며, 이를 통해 짧은 블록 코드를 더욱 직관적으로 작성할 수 있습니다. 하지만 ‘it’는 해시를 순회할 때 사용할 경우 예상과 다르게 동작할 수 있습니다. 해시의 each
나 map
과 같은 메서드는 블록으로 키와 값 쌍을 2요소 배열 형태로 전달합니다. 따라서 해시 순회 시 ‘it’를 사용하면 [key, value]
형태의 배열을 참조하게 되어, 키와 값을 개별적으로 다루고자 할 때는 hash.each { |key, value| ... }
와 같이 명시적으로 파라미터를 선언하는 것이 더 적합합니다. 즉, ‘it’는 단일 인자가 명확한 배열 관련 블록 작업에서 특히 빛을 발하는 기능입니다.
결론적으로, Ruby 3.4에서 새롭게 제공되는 'it' 블록 파라미터는 배열과 같은 컬렉션에 대해 간단한 변환이나 작업을 수행하는 짧은 블록 코드를 작성할 때 유용하고 간결한 대안을 제시합니다. 명시적 변수 선언이나 `symbol_to_proc`의 한계를 보완하며 코드의 가독성을 높일 수 있습니다. 다만, 해시와 같이 블록으로 여러 인자가 배열 형태로 전달되는 경우에는 'it'의 사용이 적합하지 않을 수 있으므로 상황에 맞게 기존의 명시적 파라미터 선언 방식을 활용하는 것이 바람직합니다. 'it'의 도입은 Ruby 개발자들에게 또 다른 유연한 코딩 스타일 옵션을 제공합니다.