[Lobsters 요약] AI 시대, 코딩에 대한 사랑을 유지하는 방법
18
설명
NLnet Labs는 지난 25년간 DNS, BGP, RPKI와 같은 인터넷 표준을 위한 소프트웨어를 개발해왔습니다.
최근 몇 년간 대규모 언어 모델(LLM)의 발전은 오픈소스 소프트웨어 개발에 큰 영향을 미치고 있습니다.
이 글은 AI가 오픈소스 커뮤니티 기여와 보안 보고서에 미치는 변화와 NLnet Labs의 대응 방안을 다룹니다.
### 배경 설명
NLnet Labs는 25년 이상 DNS, BGP, RPKI와 같은 인터넷 핵심 인프라를 위한 오픈소스 소프트웨어를 개발해온 전문 기관입니다. 이들의 개발 방식은 일반적인 커뮤니티 기반 오픈소스 프로젝트와는 달리, 소규모 전담 팀이 로드맵, 프로젝트 계획, 정기적인 릴리스를 갖춘 상업적 회사와 유사한 방식으로 운영됩니다. Unbound, NSD, Routinator와 같은 프로젝트들은 이러한 방식으로 높은 수준의 안정성과 유지보수성을 확보해왔습니다. 외부 기여는 주로 특정 사용 사례에 맞게 커스터마이징된 후 이를 메인 브랜치에 통합하려는 조직으로부터 발생했으며, 이는 프로젝트의 기능 확장과 유지보수성 향상이라는 상호 이익을 가져왔습니다. NLnet Labs는 코드의 아키텍처, 장기적인 유지보수성, 코딩 스타일을 엄격하게 관리하며, 이는 Unbound가 20년 가까이 재작성 없이 현재의 요구사항을 충족하며 발전할 수 있었던 원동력입니다. 이러한 엄격한 검토 과정은 내부 개발팀에게도 동일하게 적용되어, 코드 품질과 유지보수성을 최우선으로 합니다.
### AI 이전의 기여 모델
NLnet Labs의 오픈소스 프로젝트는 주로 소규모 전담 팀에 의해 개발되어 왔으며, 외부 기여는 상대적으로 드물었습니다. 주로 버그 수정이나 오타 수정과 같은 사소한 개선이 외부에서 이루어졌습니다. 간혹 Unbound와 같은 프로젝트에 대한 대규모 풀 리퀘스트(pull request)가 접수되기도 했는데, 이는 특정 조직이 자체적으로 기능을 커스터마이징한 후 이를 메인 프로젝트에 통합하여 유지보수 부담을 줄이려는 목적이었습니다. 이러한 기여는 프로젝트에 새로운 기능을 추가하고 커뮤니티 전체에 이익을 제공하는 긍정적인 측면이 있었지만, NLnet Labs 팀은 기여된 코드의 설계 선택, 버그 유무, 공격에 대한 견고성 등을 면밀히 검토하는 과정을 거쳤습니다. 때로는 기여자의 의도와 프로젝트의 전반적인 아키텍처가 맞지 않아, 외부 기여를 거부하거나 핵심 팀이 처음부터 다시 개발하는 경우도 있었습니다. 예를 들어, Unbound의 Serve Stale 기능은 합의된 비용으로 NLnet Labs가 직접 구현하기도 했습니다.
### AI 등장 이후의 기여 변화
지난 12개월 동안 여러 최첨단 AI 모델의 출시로 인해 오픈소스 기여 방식에 근본적인 변화가 생겼습니다. 개발자들은 AI의 도움으로 마치 초능력을 얻은 것처럼 느끼며, RFC 9432에 정의된 카탈로그 존을 구현하고 모든 테스트를 통과하며 RFC의 모든 사양을 포함하는 코드를 생성하는 등 놀라운 결과물을 만들어내고 있습니다. 이러한 AI 생성 코드는 겉보기에는 잘 작동하는 것처럼 보일 수 있지만, NLnet Labs는 이러한 코드의 설계 선택이나 잠재적인 문제점에 대해 기여자와 소통하는 데 어려움을 겪고 있습니다. AI가 생성한 코드에 대한 질문에 'Claude가 그렇게 만들었어요'와 같은 답변이 돌아오는 경우가 많아, 코드의 책임 소재와 유지보수성에 대한 근본적인 문제가 발생합니다. NLnet Labs는 이러한 AI 생성 코드 기여를 '무료 강아지'에 비유하며, 의도는 좋지만 장기적인 유지보수와 책임이라는 큰 부담을 안게 된다고 설명합니다.
### AI를 활용한 보안 보고서의 급증
AI 모델의 발전은 보안 보고서의 양과 질에도 큰 변화를 가져왔습니다. 과거에는 의미 없는 버그 보고서가 간혹 접수되어 업무에 지장을 주기도 했지만, 이제는 AI의 도움으로 보고서가 매우 정확해지고 재현 단계와 잠재적 수정 방안까지 포함되어 제출됩니다. 그러나 이러한 보고서가 한 번에 수백 건씩 쏟아져 나오면서, NLnet Labs 팀은 보고서 분류(triaging)에만 하루 종일 시간을 할애해야 하는 상황에 직면했습니다. Routinator의 LLM 버그 보고서에서 'Round-trip infidelity', 'K-file storm pins validation', 'Linear-scan burn via block sort position'과 같은 모호한 제목의 보고서들이 접수되고 있으며, 이는 개발팀의 상당 부분을 버그 수정 및 다른 소프트웨어 공급업체와의 조율에 투입하게 만들었습니다. 이로 인해 올해 초부터 새로운 기능 출시가 지연되는 결과를 초래했습니다. 이러한 상황은 개발자들의 창의적인 문제 해결의 즐거움을 빼앗고, 앞으로의 방향에 대한 불확실성을 증대시키고 있습니다.
### NLnet Labs의 대응 및 정책
이러한 상황에 대응하기 위해 NLnet Labs는 모든 코드 및 문서 기여는 반드시 인간이 작성해야 한다는 LLM 정책을 발표했습니다. AI를 사용하여 발견된 취약점 보고서는 여전히 수용하지만, AI의 도움을 받더라도 모든 코드 라인에 대해 인간이 책임을 질 수 있다는 주장에 대해서는 회의적인 입장을 보입니다. 비록 숙련된 C 또는 Rust 개발자가 AI의 도움을 받아 기여하고 그 코드에 대한 완전한 책임을 질 수 있다고 해도, 현재까지의 경험으로는 그렇지 않은 경우가 많다고 지적합니다. 또한, 실질적인 이유 외에도 윤리적, 지적 재산권 관련 고려 사항이 정책 결정에 중요한 역할을 합니다. NLnet Labs는 15명의 직원 중 12명이 개발자이며, 추가 인력 충원이 어려운 재정적 제약이 있습니다. LLM을 자체적으로 활용하여 보고서를 처리하는 것은 막대한 비용이 들 뿐만 아니라, LLM이 생성한 보고서를 LLM이 처리하고 릴리스하는 상황은 NLnet Labs의 근본적인 가치와 상반된다고 강조합니다. 인간의 판단과 책임이 중요하며, AI가 생성한 코드에 대한 장기적인 유지보수와 책임은 결국 인간에게 달려있다는 것입니다.
### 가치와 인사이트
AI 기술의 발전은 오픈소스 소프트웨어 개발 생태계에 양날의 검과 같은 영향을 미치고 있습니다. 한편으로는 개발 생산성을 비약적으로 향상시킬 잠재력을 지니고 있지만, 다른 한편으로는 코드의 품질, 책임 소재, 유지보수성에 대한 새로운 도전 과제를 제시합니다. NLnet Labs의 사례는 특히 인터넷 핵심 인프라와 같이 높은 수준의 안정성과 신뢰성이 요구되는 분야에서 AI 생성 코드의 도입에 신중해야 함을 시사합니다. AI가 생성한 코드를 무비판적으로 수용할 경우, 예상치 못한 버그, 보안 취약점, 그리고 장기적인 유지보수 부담이 발생할 수 있습니다. 따라서 개발자는 AI를 도구로 활용하되, 최종적인 코드 검토, 설계 결정, 그리고 책임은 반드시 인간 개발자가 져야 한다는 점을 명확히 해야 합니다. 이는 AI 시대에도 코딩에 대한 '사랑'을 유지하고, 지속 가능한 오픈소스 프로젝트를 발전시키기 위한 필수적인 접근 방식입니다.
### 향후 전망
AI 기술, 특히 LLM의 발전 속도를 고려할 때, 앞으로 AI는 소프트웨어 개발의 거의 모든 측면에 더욱 깊숙이 관여할 것으로 예상됩니다. NLnet Labs는 CI/CD 도구에서 LLM 테스트를 무료로 지원하는 방안을 주시하며, 동시에 자신들의 가치와 재단의 지속 가능성을 지키는 균형점을 찾을 것입니다. 경쟁 환경에서는 AI 기반 개발 도구의 도입이 가속화될 것이며, 이는 개발 생산성 향상과 함께 코드 품질 및 보안에 대한 새로운 기준을 요구할 것입니다. 또한, AI 생성 코드의 책임 소재에 대한 법적, 윤리적 논의가 더욱 활발해질 가능성이 높습니다. 커뮤니티 차원에서는 AI를 활용한 협업 모델이 등장할 수 있지만, 동시에 AI가 생성한 코드의 검증 및 통합에 대한 표준화된 절차 마련이 중요해질 것입니다. NLnet Labs와 같은 기관들은 이러한 변화 속에서 자신들의 핵심 가치를 지키면서도 기술 발전을 수용하는 전략을 지속적으로 모색해야 할 것입니다.
📝 원문 및 참고
- Source: Lobsters
- 토론(Lobsters): [lobste.rs](https://lobste.rs/s/glywa4/maintaining_love_for_coding_time_ai)
- 원문: [링크 열기](https://blog.nlnetlabs.nl/maintaining-the-love-for-coding-in-the-time-of-ai/)
---
출처: Lobsters · [원문 링크](https://blog.nlnetlabs.nl/maintaining-the-love-for-coding-in-the-time-of-ai/)
이 글에 대한 한 줄 의견
신고 · 불법·유해·아동 안전(CSAE) 관련 콘텐츠

댓글 0
아직 댓글이 없습니다. 로그인하면 바로 의견을 남길 수 있습니다.