Redis 개발자가 AI를 활용하여 새로운 Array 데이터 타입을 4개월 만에 개발, PR(Pull Request)을 제출함
사양 문서 작성, 코드 구현, 테스트 등 개발 전반에 걸쳐 AI를 적극 활용하여 개발 속도를 향상시킴
커뮤니티에서는 AI 기반 개발 방식에 대한 긍정적 평가와 함께, 코드 품질 및 유지보수에 대한 우려를 제기함
특히, 정규 표현식(Regular Expression) 기능 추가의 적절성, 기존 ZSET과의 차별성, 그리고 C stdlib의 로컬라이제이션 함수 사용에 대한 논쟁이 발생함
개발자는 AI를 활용하여 사양 문서 작성(Specification Document), 코드 구현, 테스트 등 개발 전반의 과정을 효율적으로 수행했다. 특히, AI는 32비트 지원(32-bit Support)과 같은 복잡한 작업과 알고리즘의 버그를 찾아내는 데 기여했다. 하지만, AI는 어디까지나 보조 도구이며, 개발자는 최종 코드 검토(Final Code Review)를 통해 AI가 놓친 부분을 직접 확인해야 한다. 또한, AI의 도움에도 불구하고, 22,000 라인 이상의 코드 검토는 여전히 어려운 과제로 남아있다.
새로운 Array 데이터 타입은 희소 표현(Sparse Representation)과 밀집 디렉토리(Dense Directory)를 결합하여 메모리 효율성을 높였다. 특정 조건이 충족되면 데이터 구조가 내부적으로 변경되어, ARSCAN 및 ARPOP 연산 시 기존 요소 수에 비례하는 시간 복잡도를 갖도록 설계되었다. 이러한 설계는 대규모 데이터 처리(Large-scale Data Processing)에 유리하며, ARSET과 같은 연산의 성능을 향상시킨다.
정규 표현식 기능 추가는 기존 Redis의 기능과 직접적인 관련성이 적다는 점에서 커뮤니티의 의문을 자아냈다. 개발자는 TRE 라이브러리(TRE Library)를 선택하여 정규 표현식 기능을 구현했지만, 특정 패턴에서 성능 문제가 발생하여 AI의 도움을 받아 최적화했다. 일부에서는 Lua 스크립팅(Lua Scripting)을 활용하거나, 기존 ZSET을 개선하는 방안을 제시하며, 새로운 API 추가에 대한 의문을 제기했다.
커뮤니티에서는 AI를 활용한 개발 방식에 대해 다양한 의견을 제시했다. 일부는 AI가 개발 속도를 향상시키는 데 기여한다는 점을 인정하면서도, 코드 품질(Code Quality)과 유지보수(Maintenance)에 대한 우려를 표명했다. 특히, AI가 생성한 코드의 정확성과, AI가 놓칠 수 있는 엣지 케이스(Edge Cases)에 대한 검증의 중요성을 강조했다. 또한, AI가 개발자의 창의성을 대체할 수 없다는 점을 지적하며, AI는 어디까지나 보조 도구임을 강조했다.