우리는 단순히 기능을 구현하는 것이 아니라, 신뢰할 수 없는 실행 환경을 견디기 위한 코드를 함께 작성하고 있다. polyfill에서 ponyfill, 그리고 그 너머까지 이어진 흐름은 JavaScript가 어떻게 불확실성 위에서 진화해왔는지를 보여준다. 이 글은 우리가 작성하는 코드의 상당 부분이 왜 기능이 아니라 ‘환경에 대한 방어’로 존재하는지를 구조적으로 풀어낸다.
우리는 단순히 코드를 작성하는 것이 아니라, 수백 개의 의존성을 함께 다운로드하며 시스템을 구성한다. 문제는 그 중 상당수가 더 이상 필요 없는 코드라는 점이다. 이 글은 JavaScript 의존성 비대화가 어떻게 만들어졌고, 왜 여전히 유지되고 있으며, 우리가 어떤 선택을 해야 하는지를 구조적으로 분석한다.
AI 에이전트가 모든 일을 대신하는 시대라는 말은 매력적이다. 하지만 금융과 의료 같은 규제 산업에 이 개념을 그대로 적용하는 순간, 그 전제는 무너진다. 이 글은 AI의 한계가 기술이 아니라 책임 구조에 있다는 점, 그리고 AI가 왜 자율적인 존재가 아니라 통제 가능한 구조로 재구성될 수밖에 없는지를 따라간다.
AI 검색은 단순한 기능 개선이 아니다. 검색이 웹으로 연결되는 구조를 끊고, 콘텐츠를 플랫폼 안에서 소비하는 방식으로 바꾸고 있다. 이 변화는 퍼블리셔의 수익 모델뿐 아니라 웹 생태계 전체를 흔들고 있으며, 이제 문제는 기술이 아니라 구조와 권력의 문제로 이동하고 있다.