- 소프트웨어 개발의 새로운 시대에서 변화를 느끼고 있음 : 내가 하는 일에 덜 관여하게 됨
- LLM을 통해 함수 작성 및 오류 수정 작업을 위임하면서 몰입감이 감소
- 수동에서 auto-pilot 상태로 전환되어 LLM의 작업을 검토하고 수락하는 과정이 반복됨
- 누군가가 자신의 기술에 몰두하면 흐름(Flow)의 상태에 들어가게 됨. 이는 장인이 되는 것과 같음
- 주체와 객체의 경계가 사라지고 복잡한 문제 해결에 깊이 빠져드는 상태를 의미
- 많은 사람들이 프로그래밍 워크플로에서 LLM의 최근 사용 증가가 더 높은 수준의 추상화 작업을 도입하는 것에 불과하다고 주장
- Binary → Assembly → C → 고급 언어로의 발전 과정에서 점점 더 많은 권한을 부여함
- 하지만 LLM 도입은 단순히 또 다른 추상화 수준의 변화가 아님
- 위의 바이너리에서 어셈블리, 어셈블리에서 C로의 변화는 인지적 부하를 줄이며 논리에 집중하도록 도왔음
- LLM은 프로그램의 논리가 아닌 전체 구조에 초점을 맞추게 함 → 기존 변화와 다름
- 프로그램은 조각들이 모여 만들어짐
- 우리는 프로그램을 조립하는 모든 조각을 이해함으로써 우리 프로그램을 이해함
- 이제 조각을 만드는 것을 위임함으로써 장인의 작업을 위임하고 만드는 것을 관리함
- 만드는 것에 덜 관여하게 되고, 우리가 LLM이 만드는 코드에 대한 소유권이 줄어듦
- 즉, 우리는 장인 정신(craftsmenship)을 관리(management)로 바꾸었음
- 우리가 만드는 정확한 조각보다는 작업 결과에 더 관심을 가지게 됨
-
프로그래밍이 목표가 아닌 수단이 되어 버림
- 다행히도, 아니면 불행하게도, 여전히 코드에서 문제가 발생하며, 코드의 맥락을 파악하고 수정해야 함
- 이는 프로그래밍 과정에서 여전히 인간의 개입이 필요함을 의미함
-
LLM 에이전트를 사용하여 프로그래밍에 더 몰두할 수 있음
- 우리는 고수준 추상화에 집중하고, LLM 에이전트는 열심히 변경함
- 하지만 아직 적절한 도구가 없음
-
연속된 많은 변화에 대한 인지 부하가 크고, 이를 처리할 방범이 필요
- 인간의 기억엔 한계(단기 기억의 경우 7±2개의 항목만 기억)가 있기 때문에, 다양한 수준의 추상화에서 정보를 표현하도록 잘 설계된 도구가 필요
- 그러면 세부 사항을 파악하고 더 큰 그림으로 확대해 갈 수 있음