건축의 역사는 철근 콘크리트 개발 전후로 나뉠만큼 철근 콘크리트는 현대 건축에서 매우 중요한 자재다. 철근과 콘크리트는 각각 서로 다른 종류의 힘에 강한데, 두 가지를 섞으면 두 자재의 장점을 모두 살릴 수 있다. 게다가 두 재료는 거의 동일한 열팽창 계수를 가지고 있어 온도 변화가 있어도 균열이 발생하지 않는다.
AI 분야에서도 철근 콘크리트를 개발하려는 시도가 있다. 바로 뉴로-심볼릭 (Neuro-Symbolic) AI다. 신경망의 유연함과 논리의 안정성을 결합하여 두 AI의 장점을 모두 살리는 방식이다.
그러나, 안타깝게도 뉴로-심볼릭 AI는 아직 철근 콘크리트처럼 완벽한 배합 비율을 알아내지 못했다.…
자연어로 작성된 프롬프트를 전부 읽고 기억하는 것은 매우 어렵다. 일례로, Claude의 시스템 프롬프트는 그 길이가 16,000단어에 달한다. 만약 프롬프트에서 설명하는 대상이 지속적으로 바뀌는 (e.g 프로그램, API 명세) 경우 프롬프트를 지속적으로 변경해주어야 하는데, 이는 매우 어려운 일이다.
이러한 문제는 전통적인 소프트웨어 명세와 소프트웨어 구현 사이의 불일치 문제와 매우 유사하다. 명세는 자연어로 작성되어 있기 때문에 책임자가 까먹는 경우 구현이 변경이 명세에 반영되지 않고, 이러한 불일치를 발견하는 것도 매우 어렵다.
프롬프트를 작성하는 프로그래밍 언어를 개발하는 것이 한 가지 해결 방법이 될 수 있다.…
바이브 코딩 이전에는 노 코드가 있었고, 결국은 실패했다. 근본적인 이유는 복잡성의 한계, 유지보수의 어려움에 직면했기 때문이다. 간단한 프로토타입을 만들어 볼 수는 있지만 복잡한 서비스를 구축하고 보안성을 높이고 유지보수를 하는 것은 코드를 모르고서는 불가능했다. 바이브 코딩도 지금까지는 비슷한 길을 걷고 있다.
이러한 현상이 발생하는 이유는 자연어의 모호함에 있다. 자연어는 본질적으로 모호하다. 같은 문장도 여러 가지 방식으로 해석될 여지가 남아있으며, 그 해석조차 자연어이기 때문에 모호하다. 재귀적으로 모호한 요소들을 하나씩 제거하여 어떤 문장이 하나의 의미로만 해석될 수 있다면 이것은 자연어가 아닌 형식 언어일 것이다.…