우선, 소프트웨어 엔지니어링의 본질은 타이핑 작업이 아니다.


"제한된 자원을 최대한 잘 활용하여 사회적 효용을 극대화 시키는 것"


이것이 소프트웨어 엔지니어의 본질적인 역할이다.



프로그래밍은 항상 저 본질에 더 충실해지는 방향으로 움직였다.


그리고 대부분의 개발자들은 이미 그 방향성의 수혜자들이다.




대다수의 개발자들은 이제 어셈블리어로 코딩 하지 않아도 된다.


훌륭한 IDE 덕분에 간편하게 코드를 작성할 수 있다.


문제가 터지면 스택 오버플로우에 질문할 수 있다.


코드를 처음부터 끝까지 스스로 작성할 필요 없이, 다른 사람들이 만들어놓은 코드를 가져와 적용할 수 있다.




이것은 역사상 존재했던, 지금도 존재하는 수많은 소프트웨어 엔지니어들의 공로 덕분이다.


이들 덕분에 우린 "제한된 자원 안에서 최대의 효용 달성" 이라는 본질에 더 가까워질 수 있었다.



그리고 작금의 AI 코딩 에이전트는 또 하나의 거대한 성취이다.


이제 드디어 한국어로 로직을 만드는 것이 프로그래밍이 되는 시대가 오려고 한다.



그런데 이런 흐름에 반발하는 자들이 있다.


이 성취를 벌써부터 깎아내리고, 평가절하하는 경우가 간혹 보인다.


내가 하고 싶은 말은, 흐름에 저항하지 말라는 것이다.


오히려 이러한 역사의 흐름을 소프트웨어 엔지니어링의 본질에 한층 가까이 다가가는 여정이라고 생각하고, 그 속에서 자신이 할 수 있는 역할이 무엇일 지 고민해보는 편이 낫다.



과연 AI가 코드를 작성해주는 시대에 소프트웨어 엔지니어의 역할은 무엇일까?

그 역할을 수행하기 위해선 무슨 역량을 갖춰야 할까?



이런 질문을 스스로 던지고 고민하는 것이, 흐름을 거부하다가 떠밀려가는 것보단 낫지 않을까.