티스토리 뷰

반응형

리누스 창시자가 말하는 오픈소스, AI, 그리고 프로그래밍의 미래


복잡한 소프트웨어는 혼자 관리할 수 없다. 그래서 오픈소스가 필요하다.

리누스는 오픈소스를 단순히 “무료로 공개된 코드”로 보지 않는다. 소프트웨어가 점점 더 복잡해지는 상황에서, 그 복잡성을 관리할 수 있는 가장 현실적인 방식이 오픈소스라고 말한다.

“software is very complicated and the only really good way to manage the complexity of a complex infrastructure is open source”

복잡한 인프라를 한 회사, 한 조직, 한 사람만으로 완벽하게 관리하는 것은 어렵다. 오픈소스는 많은 사람이 보고, 검증하고, 고치고, 개선할 수 있는 구조를 만든다.

중요한 것은 모든 사용자가 반드시 프로젝트에 참여해야 한다는 뜻이 아니다. 대부분의 사람은 그저 사용만 한다. 리누스 자신도 3D 프린팅 도구를 쓰지만, 그 프로젝트에 직접 기여하고 싶지는 않다고 말한다.

하지만 오픈소스이기 때문에, 정말 고치고 싶은 사람은 언제든 참여할 수 있다. 회사, 국가, 직위와 상관없이 문제를 발견한 사람이 개선에 뛰어들 수 있다. 이것이 오픈소스의 진짜 힘이다.


AI가 좋아질수록 코드는 많아진다. 문제는 그 코드를 누가 책임지느냐다.

최근 리눅스 커널 개발에서는 눈에 띄는 변화가 나타났다. 커밋 수가 이전보다 약 20% 정도 늘었고, 리누스는 처음에 이것이 새 메이저 버전 출시 때문이라고 생각했다. 하지만 실제 원인은 AI 도구의 발전이었다.

AI가 좋아지면서 더 많은 사람이 코드를 작성하고, 패치를 만들고, 버그를 찾기 시작했다. 개발의 초기 진입장벽이 낮아진 것이다.

하지만 좋은 일만 생긴 것은 아니다. AI가 찾아낸 버그 리포트가 보안 메일링 리스트에 대량으로 쏟아지면서 유지보수자들은 새로운 부담을 떠안게 되었다. 같은 버그를 여러 사람이 AI로 찾아내고, 비슷하지만 조금씩 다른 형태로 보고하는 일이 반복되었다.

리누스는 이 상황을 이렇게 표현한다.

“I have a love-hate relationship with AI.”

기술적으로 AI는 유용하다. 리누스도 AI 도구를 좋아하고, 실제로 긍정적으로 본다. 하지만 AI가 만들어내는 사회적 문제는 아직 해결되지 않았다.

문제는 AI 자체가 아니라, AI를 사용하는 방식이다.


버그를 찾았다고 끝이 아니다. 고치지 않으면 유지보수자에게 짐만 넘긴 것이다.

AI는 버그를 더 쉽게 찾게 해준다. 하지만 버그를 찾았다고 해서 곧바로 큰 성과를 낸 것은 아니다. 오픈소스 프로젝트에서 진짜 중요한 것은 발견 이후의 태도다.

어떤 사람들은 버그를 찾자마자 블로그 글을 쓰고, 로고를 만들고, 취약점에 이름을 붙이며 주목받으려 한다. 하지만 정작 유지보수자에게 충분한 시간을 주지 않거나, 패치 없이 문제만 던지는 경우가 있다.

이런 방식은 프로젝트를 더 안전하게 만들기보다 유지보수자를 지치게 만든다.

리누스는 AI가 찾은 버그를 무조건 부정적으로 보지는 않는다.

“When AI finds a bug in any source code that is a short-term pain. But long-term is you found a bug, we fixed it. The end result is better for it.”

AI가 버그를 찾으면 단기적으로는 고통스럽다. 중복 리포트가 쏟아지고, 유지보수자는 대응해야 한다. 하지만 장기적으로 보면 버그를 발견했고, 고쳤고, 결과적으로 소프트웨어는 더 좋아진다.

즉, AI가 버그를 찾는 것은 좋은 일이다.
다만 그것을 커뮤니티와 함께 책임 있게 다루는 문화가 필요하다.


AI는 개발자를 없애는 도구가 아니라, 개발 방식만 바꾸는 도구다.

리누스는 “AI가 코드를 다 작성한다”는 식의 말에 강하게 반응한다. 그는 이런 주장이 과장되어 있다고 본다.

그가 든 비유는 컴파일러다.

“those same people, I pretty much guarantee that 100% of their code is written by compilers.”

오늘날 개발자는 기계어를 직접 작성하지 않는다. 컴파일러가 최종 기계어 코드를 만들어준다. 그렇다고 해서 개발자가 사라진 것은 아니다.

과거에는 기계어 숫자를 직접 입력했다. 이후 어셈블러가 등장했고, 컴파일러가 등장했다. 이제는 AI가 등장했다. 도구는 계속 발전해왔고, 개발자의 작업 방식도 바뀌어왔다.

하지만 본질은 그대로다.

“AI is changing programming, but it's not changing the fundamentals.”

AI는 프로그래밍 방식을 바꾸고 있다. 하지만 프로그래밍의 근본을 바꾸지는 않는다.

개발자는 여전히 시스템을 이해해야 한다.
코드가 왜 그렇게 동작하는지 알아야 한다.
문제가 생겼을 때 원인을 추적할 수 있어야 한다.

AI는 개발자의 손을 빠르게 만들어주는 도구이지, 개발자의 판단과 책임을 대신하는 존재가 아니다.


AI가 만든 코드를 이해하지 못하면, 그 코드는 내 코드가 아니다.

리누스가 가장 강조한 부분은 “이해”다. AI가 코드를 만들어줄 수는 있다. 하지만 그 코드가 무엇을 하는지 모르면 장기적으로 유지보수할 수 없다.

그는 자신이 AI를 쓰더라도 결과 코드를 보고, 심지어 컴파일된 어셈블리까지 확인한다고 말한다. 이는 단순한 습관이 아니라 개발자로서의 태도에 가깝다.

“if you use AI for coding, if you do a project that you actually maintain long-term, you need to understand not just your prompts, but you need to understand the end result, too”

AI 시대의 개발자는 프롬프트만 잘 쓰는 사람이 아니다.
AI가 만든 결과를 읽고, 검토하고, 고치고, 책임질 수 있는 사람이다.

일회성 프로젝트라면 AI로 빠르게 만들어도 된다. 이런 방식은 흔히 바이브 코딩이라고 불린다. 하지만 진지한 소프트웨어라면 이야기가 달라진다.

“if you want to make something serious, you're going to have to maintain it for 35 years or something.”

진짜 소프트웨어는 만들고 끝나는 것이 아니다. 오랫동안 유지하고, 수정하고, 확장하고, 책임지는 것이다.


AI 시대에는 코딩 문법보다 시스템 이해력이 더 중요해진다.

AI는 누구에게나 코드를 만들어준다. 초보자도 AI에게 요청하면 그럴듯한 코드를 얻을 수 있다. 하지만 그 코드가 좋은 코드인지, 장기적으로 유지 가능한 코드인지, 시스템 안에서 제대로 동작하는지는 다른 문제다.

리누스는 이 차이를 분명히 말한다.

“People who know what they're doing, who understand systems, will be able to prompt tools to write good code.”

무엇을 하는지 아는 사람, 시스템을 이해하는 사람은 AI를 이용해 좋은 코드를 만들 수 있다. 반대로 시스템을 이해하지 못하는 사람도 AI로 코드를 만들 수는 있다. 하지만 그 코드는 결국 깨질 가능성이 높다.

AI 시대에 더 중요한 역량은 단순한 문법 암기가 아니다.
전체 시스템을 보는 능력이다.
문제의 구조를 이해하는 능력이다.
AI가 만든 결과를 검증하는 능력이다.

결국 AI는 개발자의 실력을 평준화하는 도구가 아니라, 실력 차이를 더 선명하게 드러내는 도구가 될 수 있다.


앞으로의 개발자는 코드를 많이 치는 사람이 아니라, 결과를 책임지는 사람이다.

이번 대화에서 리누스가 전달한 메시지는 단순하다.

AI를 두려워할 필요는 없다.
하지만 AI를 핑계로 기본기를 버려서는 안 된다.

AI는 개발자의 생산성을 높인다. 버그를 더 빨리 찾게 해준다. 코드를 더 빠르게 만들 수 있게 해준다. 하지만 AI가 만든 결과를 이해하고, 검토하고, 유지보수하고, 책임지는 일은 여전히 사람의 몫이다.

앞으로 좋은 개발자는 AI를 잘 쓰는 사람이 될 것이다.
하지만 단순히 프롬프트를 잘 쓰는 사람이 아니라, 시스템을 이해하고 결과를 책임질 수 있는 사람이어야 한다.

AI 시대에도 개발자는 사라지지 않는다.
오히려 개발자의 진짜 역할이 더 분명해진다.

코드를 많이 치는 사람이 아니라,
시스템을 이해하는 사람.

도구를 맹신하는 사람이 아니라,
도구의 결과를 검증하는 사람.

AI에게 맡기는 사람이 아니라,
AI를 통제하고 책임지는 사람.

그것이 AI 시대에도 여전히 필요한 개발자의 모습이다.

반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함