솔리디티, 드디어 정식 1.0 버전 출시 예고
sm-stack · 2025.10.22 · Short
[솔리디티, 드디어 정식 1.0 버전 출시 예고] 솔리디티의 최신 버전은 현재 0.8.30입니다. 앞자리 버전이 0이라는 것은 일반적으로 '아직 동작이 완벽하지 않으며, 호환이 되지 않는 변경이 계속 나올 수 있다'는 것을 의미합니다. 그리고 오늘 솔리디티 팀은 정식 1.0 버전 출시를 예고했습니다. 컨트랙트 개발자들이면 꼭 참고해야 하는 여러 가지 변
[솔리디티, 드디어 정식 1.0 버전 출시 예고] 솔리디티의 최신 버전은 현재 0.8.30입니다. 앞자리 버전이 0이라는 것은 일반적으로 '아직 동작이 완벽하지 않으며, 호환이 되지 않는 변경이 계속 나올 수 있다'는 것을 의미합니다. 그리고 오늘 솔리디티 팀은 정식 1.0 버전 출시를 예고했습니다. 컨트랙트 개발자들이면 꼭 참고해야 하는 여러 가지 변경 사항들이 있네요. 1. Rust + Haskell 느낌의 언어 지금의 솔리디티는 '클래식 솔리디티'로 불리고, 새로 만들어지는 '코어 솔리디티'는 Haskell 같은 함수형 언어와, Rust와 같은 현대 시스템 언어의 특징들을 EVM에 맞게 채택한 형태가 될 예정입니다. 대표적인 특징들은 다음과 같습니다. - 제네릭(Generic)과 다형성(Parametric Polymorphism) - 트레잇(Trait)과 타입클래스(Typeclass) - 일급 함수 및 익명 함수(First-class / Anonymous Function) - 컴파일러 단 타입 추론 - 대수적 자료형 (Algebra Data Types, ADT) - Rust에서 사용되는 형태의 패턴 매칭 이러한 변경 사항은 곧 릴리즈될 클래식 솔리디티 0.9 버전에서 점차적으로 적용되어, 클래식 솔리디티와 코어 솔리디티 간 개발자들이 너무 어색하지 않도록 문법 수렴 과정을 거칠 예정입니다. 결론적으로 겉으로 보기에는 Rust와 매우 유사해지지 않을까 싶네요! 2. IR 파이프라인 개선 솔리디티는 개발자들이 쓰기 좋은 고수준의 언어로 설계되어 있으며, 이를 체인이 알아듣는 바이트코드로 컴파일합니다. 그 과정에서 중간 단계인 Yul을 거치게 되죠. 로봇으로 자동화한 음식점에 비유하자면 - Solidity 코드 = 셰프가 말로 표현한 레시피 - Yul(IR) = 주방 보조가 보기 좋게 정리한 표준 조리 지시서 - EVM 바이트코드 = 실제로 로봇팔이 실행할 기계 지시서 로 볼 수 있습니다. 그런데 가끔 솔리디티를 쓰다보면, 전혀 관련 없는 파일을 수정했는데도 컴파일해보니 바이트코드가 달라지는 경우가 있었습니다. 같은 요리를 같은 방법으로 했는데 완성된 결과물이 조금씩 달라지는 것이죠. 솔리디티 팀은 이를 바로잡기 위해 새로운 IR 파이프라인의 내부 구조를 손보고 있는 중입니다. 이를 블로그에서는 SSA + CFG라고 표현하는데, 쉽게 얘기하면 코드의 흐름과 변수들을 구조화 일일히 다 마킹해서 결정론적으로 빠른 컴파일이 가능하도록 만드는 것입니다. 뿐만 아니라 이러한 방법을 도입하면 가스 절감에도 도움이 되고, 컴파일 속도도 빨라진다고 하네요. 컨트랙트 개발자들이면 한번쯤 경험해봤을 컴파일 시간이 길다는 문제라던지, 바이트코드가 바뀐다던지 하는 문제는, 향후 솔리디티 버전들에서 없어지지 않을까 싶습니다. 3. 새로운 디버깅 표준, ethdebug 컨트랙트 개발자라면 한번쯤, 솔리디티 코드 디버깅에 어려움을 겪은 적이 있을 것입니다. 특히 컴파일 시 --optimize 옵션을 사용하면, 최적화 과정에서 코드 구조가 재배열되면서 소스 코드와 EVM 바이트코드 간의 매핑 정보가 손상되어 오류 지점을 정확히 추적하기 어려웠죠. 솔리디티 팀은 이러한 문제를 해결하고, 솔리디티뿐 아니라 다른 EVM 기반 언어에서도 활용할 수 있는 언어 독립적 디버깅 표준 포맷인 ethdebug를 개발 중입니다. 이 표준이 완성되어 개발 툴체인(Foundry 등)에 원활히 통합된다면, 최적화된 빌드에서도 라인 단위 추적이 가능한 고품질 디버깅 환경을 경험할 수 있을 것으로 기대됩니다. 4. 결론 솔리디티 팀이 제시한 로드맵은 단순한 언어 업그레이드라기보다, 언어의 근본적 재설계와 생태계 인프라의 재구성에 가깝습니다. 코어 솔리디티는 타입 시스템, 함수형 구조, 제네릭, 표준 라이브러리 등 현대적 언어의 핵심 요소를 적극 도입해 스마트컨트랙트 개발의 안정성과 표현력을 크게 높일 가능성이 있습니다. 하지만 이런 변화는 곧 기존 생태계와의 단절을 의미하기도 합니다. 수많은 기존 코드와 도구, 감사 절차, 심지어 개발자들의 사고방식까지도 적응이 필요하죠. 특히 언어 수준에서의 파괴적 변경과 컴파일러 백엔드(SSA IR, ethdebug 등) 개편은 단기적으로는 혼란을 불러올 수 있습니다. 그럼에도 불구하고 이번 로드맵은 “성숙한 언어로 가는 필연적인 진화 단계”로 보입니다. 결국 이 변화의 성패는 커뮤니티의 참여와 도구 생태계의 속도에 달려 있습니다. 코어 솔리디티가 개발자들에게 진입장벽이 아닌 새로운 가능성으로 받아들여질 수 있다면, 이는 이더리움 개발 경험 전반을 한 단계 끌어올리는 전환점이 될 수 있을 것입니다. 출처