You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<p>또 전체적인 프로그램을 미리 신중하게 적어서 생각하는 방향이 옳은지 여부를 확인하기 전에 조각난 코드부터 대책 없이 늘어놓은 다음 그것의 모양을 조금씩 잡아 나가는 방법으로 프로그래밍을 했다.<br>
78
+
소설과, 화가, 그리고 건축가의 직업이 그런 것처럼 프로그램이란 전체 모습을 미리 알 수 있는 것이 아니라 작성해 나가면서 이해하게 되는 존재다.<br>
79
+
프로그래밍 언어는 당신이 이미 머릿속으로 생각한 프로그램을 표현하는 도구가 아니라, 아직 존재하지 않는 프로그램을 생각해 내기 위한 도구다.<br>
80
+
해커에게 필요한 언어는 마음껏 내갈기고, 더럽히고, 사방에 떡칠할 수 있는 언어다.<br>
81
+
— 해커와 화가</p>
82
+
</blockquote>
83
+
<p>그렇다. 코드는 더러워야 한다. 정결한 코드는 아무 의미가 없다. 코드는 더러움 속에서, 혼란 속에서 존재되어야만 한다. 코드에 아이디어를 떡칠해야 한다. 왜 코드 외적인 것에서 아이디어를 피력하고, 생산하는가? 항상 코드 자체에 아이디어를 적어 놓아야 한다. 프로그래머란, 오로지 코드에 어떤 것을 피력해야 한다. 코드 외적인 것에서 놀지 마라. 코드에서 놀아라. 코드는 깔끔해야 한다는 강박을 버려라. 코드는 더러워야 한다.</p>
</span></span><spanclass="line"><spanclass="cl"><spanclass="n">i</span><spanclass="o">=</span><spanclass="o">*</span><spanclass="p">(</span><spanclass="kt">long</span><spanclass="o">*</span><spanclass="p">)</span><spanclass="o">&</span><spanclass="n">y</span><spanclass="p">;</span><spanclass="c1">// evil floating point bit level hacking
94
+
</span></span></span><spanclass="line"><spanclass="cl"><spanclass="c1"></span><spanclass="n">i</span><spanclass="o">=</span><spanclass="mh">0x5f3759df</span><spanclass="o">-</span><spanclass="p">(</span><spanclass="n">i</span><spanclass="o">>></span><spanclass="mi">1</span><spanclass="p">);</span><spanclass="c1">// what the fuck?
</span></span></span><spanclass="line"><spanclass="cl"><spanclass="c1">// y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed
<p>근래 단일 책임 원칙이 부서지고 있는 듯하다. AI가 각광받음에 따라, 개발자들이 모든 제품에 AI를 다 갖다 붙이는 중이다.</p>
81
+
<p>Apple도 Xcode 26에 AI를 붙여놓았고, T월드에도 AI 추천이 있으며, 카카오 뱅크에도 AI 챗봇이 있고, 한컴에도 AI가 있고, JetBrains IDE에도 AI가 범벅되어 있다.</p>
82
+
<p>나는 이렇게 생각한다. 모든 것은 '단일 책임 원칙'을 지켜야 한다. 도대체 왜 IDE에 AI 어시스트가 들어가야 하는가? 코드 작성에만 완전히 집중되어야 하는 것 아닌가? 개발 환경에만 완전히 집중되어야 하는 것 아닌가? 왜 굳이 쓸데없는, 이미 다른 환경을 통해 충분히 사용 가능한 AI를 거기에 굳이 붙여놓는 건가?</p>
83
+
<p>나는 이해가 되지 않는다. 프로그램은 계속해서 가벼워지고, 빨라지고, 버그가 fix 되어야 하며, 기능은 더욱더 간단해져야 한다. 근데 왜 요즘의 프로그램들은 기능은 점점 불어나며, 이로 인해 버그는 계속해서 증가하고, 앱은 느려지며, 프로그램은 기하급수적으로 큰 용량을 차지하게 되는가? 이는 결국 기능 블로트로 이어진다.</p>
84
+
<p>그리고 웃긴 것은, AI 랍시고 갖다 붙여 놓았으나, 막상 사용해 보면 LLM 모델에 대한 API 호출이다. 그냥 호출하고 필요에 맞게 조작해놓은 것을 AI랍시고 갖다 붙여놓은 거다. 자체 모델을 구축하려는 시도조차 하지 않는 데, 이게 뭔 AI 기능인가?</p>
85
+
<p>시대가 아무리 봐도 역행하는 듯하다. 단일 책임 원칙은 아마 10년 전이 더 잘 지켜진 듯하다. 하나의 것은 하나의 일만 해야 한다. 하나의 것들이 모여 새로운 일을 해야 한다.</p>
0 commit comments