미안하지만, 여전히 직접 생각해야 합니다

5 hours ago 2

AI 에이전트에 코드 재작성을 맡겨도 호환성, 지연 시간, 처리량, 메모리 한도 같은 설계 판단은 사라지지 않으며, 요구사항이 구체적이지 않으면 모델이 암묵적으로 결정함 Campfire Once의 Rust와 Elixir 재작성은 호환성과 구현 제약부터 서로 달라, 결과를 그대로 언어의 성능 차이로 해석하기 어려움 처리량이나 알림 전달률 하나만으로는 시스템 품질을 판단할 수 없으며, 부하 생성 방식, HTTP 오류, 전달 지연, 재접속 동작까지 함께 살펴야 함 Rust의 이벤트 버퍼를 늘리자 전달률은 약 14%에서 약 90%로 높아졌지만, 최대 전달 지연도 11초에서 130초 초과로 증가해 성공률과 응답성의 상충관계가 드러남 신뢰할 수 있는 시스템을 만들려면 언어와 무관하게 실패 방식과 자원 한도를 설계해야 하며, AI가 생성한 코드와 벤치마크 결과도 비판적으로 검토해야 함 AI가 대신 작성해도 설계 결정은 남음 Ruby on Rails를 만든 DHH는 Campfire Once를 Rails에서 Rust로 재작성하는 일을 AI 에이전트에 맡겼으며, 직접 Rust 코드를 읽거나 쓰는 것은 꺼림 이후 Elixir와 Go 등 다른 언어의 재작성도 추가함 프로그래밍 경험이 풍부한 사람이 AI를 사용하더라도, 코드를 읽지 않는 방식의 결과에는 여러 문제가 남음 프롬프트가 충분히 구체적이지 않으면 정답이 하나가 아닌 설계 선택은 우연에 맡겨질 수 있음 하위 호환성을 유지할지, 지연 시간과 처리량 중 무엇을 우선할지 결정해야 함 부하 상황에서 메모리를 얼마나 허용할지, 장애 이후 새 콘텐츠 알림이 유실되어도 되는지 정해야 함 사용자가 신경 쓰지 않은 항목도 LLM이 구현하는 순간 암묵적으로 결정됨 서로 다른 제약으로 만든 재작성은 공정한 언어 비교가 아님 Rust 재작성은 완전한 하위 호환성을 유지하지 않음 캐싱을 쉽게 하려고 CSRF 토큰을 제거함 알림 등에 사용하던 Redis를 프로세스 내부 큐로 대체함 Elixir 재작성은 Rails 원본에 훨씬 가까움 이런 차이는 언어 자체와 독립적인 구현 선택이므로, 재작성 결과를 그대로 비교해 언어의 우열을 판단하기 어려움 Elixir로 재작성하라는 요청 자체가 완전한 하위 호환성을 선택하게 만드는 것은 아님 생성된 코드에도 동시성 검토가 필요함 Elixir 버전에는 단일 프로세스가 모든 SQL 쿼리를 순차 처리하는 문제가 있음 동시에 실행할 수 있는 읽기 쿼리까지 직렬화함 DHH는...

Read Entire Article