연사는 Ruby의 진화를 코드의 ‘복잡성 압축’ 관점에서 설명하며, 새로운 개념 학습이 더 큰 문제 해결에 필수적임을 강조합니다. 발표에서 다룬 주요 기능은 다음과 같습니다:
- Endless Method (Ruby 3.0): 단일 표현식으로 메서드를 정의하여 코드를 간결화하고 가독성을 높입니다. 작은 유틸리티 메서드나 서술자 정의에 적합하며, 간결성을 유도하고 이름 지정에 유용합니다.
- Data Class (Ruby 3.1): 불변(immutable)의 단순한 값 객체를 정의하는 편리한 방법을 제공합니다. 설정자가 없어 데이터 무결성을 보장하며, 데이터를 묶고 명명할 때 효과적입니다.
- Hash Value Omission (Ruby 2.7): 해시 생성 시 키와 값이 동일하면 값을 생략하여 코드 반복을 줄이고 명명 일관성을 강제합니다. 코드를 간결화하고 성능 이점도 제공합니다.
- Pattern Matching (Ruby 2.7): 코드 형태 변화에 가장 큰 잠재력을 가집니다. 해시, 우측 연산자,
case in
등 다양한 형태로 복잡한 데이터 구조를 효율적으로 분해하고, 타입 검사, 오류 처리, 유효성 검사에 활용됩니다. 지역 변수 생성/변경 시^
(pinning) 연산자로 제어합니다.
연사는 Ruby 커뮤니티의 숙련된 개발자들이 변화에 보수적일 수 있음을 경고하며, 이는 언어를 보호하려는 의도에서 비롯되지만 장기적으로 언어 발전을 저해할 위험이 있다고 말합니다. 따라서 개발자들이 새로운 기능을 실험하고 피드백을 제공함으로써 Ruby의 관련성을 유지하고 혁신을 주도해야 한다고 강조합니다.