
오늘 내 홈페이지에 MCP를 달았다.
전체 위키를 대상으로 부족한 설명과 잘못된 내용을 찾아내고, AI가 이를 검토하도록 연결한 시스템이다. 내 글 전체를 AI가 검토하고 분석하게 했다.
오늘 내 홈페이지 전체를 분석하고 잘못된 내용을 수정했다. 생각보다 꽤 있었다. MCP를 달지 말지 나는 고민을 꽤 했다. 불필요한 기능을 굳이 달아야 할까라는 생각. 그런데 달아보니, 내가 몇 년 동안 "완성했다"고 생각했던 문서들에 여전히 틀린 내용이 있었다.
홈페이지든 프로그램이든 일종의 생명 주기를 가진다.
요즘 세상에 프로그램의 가장 큰 문제는 끝없는 업데이트다. 완결된 기능이 아니고, 투자와 욕심으로 계속 업데이트된다. 그러면서 예전에 사랑했던 기능이 새 기능과 충돌하고, 프로그램이 너무 나에게 커져서 더 작은 도구를 찾아 떠날 때도 있다.
라이브러리든, 프레임워크든 비슷하다. 오픈소스는 특히 스폰서십을 받으면서 업데이트를 강요받는다. "이번 달에 뭘 했나" 를 보여줘야 후원이 끊기지 않으니까, 완결된 기능을 다듬기보다 새로운 기능을 계속 붙이게 된다. 그러다 보면 원래 잘 돌아가던 것이 부서지기도 한다.
그리고 그 업데이트는 점점 누적되어 새로운 보안 문제를 만들고, 새로운 프레임워크가 나올 때 서서히 죽어간다.
프로그램을 만드는 건 언젠가 죽을것을 만드는것이다.
내 홈페이지는 언젠가 죽을 것이다. 나도 언젠간 죽을 것이고.
Node.js와 타입 스크립트, PostgresSQL을 쓰지만 더 좋은 언어나 보안 문제등으로 프로그램은 언젠가 죽을 것이다.
1985년 피터 나우르는 「Programming as Theory Building」에서 프로그래밍을 단순히 소스코드를 생산하는 행위로 보지 않았고, 프로그래머가 문제와 해결 방법에 관한 하나의 이론을 구축하는 행위로 보았다.
그의 설명에서 흥미로운 부분은 프로그램의 삶과 죽음이다.
프로그램은 개발자가 사라져도 계속 실행될 수 있다. 하지만 그것이 왜 그렇게 만들어졌는지 이해하고, 새로운 요구에 맞춰 수정할 사람이 없다면 나우르의 관점에서는 이미 죽은 프로그램일 수 있다.
나우르의 정의에서 프로그램의 죽음은 최초의 프로그램을 만든 팀의 해체일 것이다. 나우르는 문서를 아무리 잘 써도 그 이론을 완전히 전달할 수 없다고 말한다. 이론은 문서에 적히는 것이 아니라, 그 프로그램을 만들고 수정해 온 사람들의 머릿속에 있기 때문이다.
그런 의미에서 AI를 이용한 코딩은 이미 죽은 프로그램을 만드는 것일 수도 있다. 아니면 나우르의 정의가 이 시대에는 맞지 않거나.
어쨌건 나우르의 관점에서 보자면 프로그램에 AI를 도입하는 것은 프로그램에 안락사를 시켜주는 것이다. 내 머리에 있는 아이디어가 있다지만 구현을 AI에게 맡겨두면 결국은 그 프로그램의 통제권을 잃듯이, 홈페이지에 AI를 넣고 자기 지식 관리를 AI에게 한다는 것은 미래의 통제권을 버린다는 것이다.
하지만 나는 그럼에도 선택했다. 이유는 내 머릿속의 지식이 아니라, 외부지식으로 내가 읽고 싶게 만들고 싶어서이다. 내 지식을 써두면 결국 나에게는 아무런 흥미가 되지 않는다. 그래서 내 지식 글에 변주를 주고 싶어서 AI 편집과 수정을 도입했다. 물론 나는 ADHD로 인해서, 자주 망각하지만 그럼에도 불구하고 내 문체는 흥이 크게 식는다.
나는 전반적으로 시니컬하다. 한국에서는 '쿨찐' 영어로는 'Edgelord' 이다. 똑똑하지 않지만 똑똑한 척 하면서 권위가 없지만 권위를 빌려오고 싶어해서 수많은 논문들을 가져와서 쓸 문장들을 노란 펜으로 표시해둔다.
그리고 잘 아는 척하고 싶을때, 그 노란 펜으로 표시한 문장을 나열한다.
문제는 그런 방식이 아군을 만들지 못하고, 컨펌 받지 못한다는 것이다.
내 생각의 틀이 너무 강하고, 내 상황이 특수해서, 외롭기에 외부의 자극을 받기 위해 AI를 도입했다. AI는 RLHF로 나에게 편향적이지만 적어도 피드백이라는 형태로 나에게 보상을 준다.
나는 외부의 자극이 필요해서 AI를 도입했지만, AI는 기본적으로 나에게 협조하도록 만들어진 도구다.
내가 틀린 주장을 해도 그럴듯한 이유를 찾아 동의할 수 있고, 별것 아닌 생각에도 좋은 통찰이라고 말할 수 있다. 물론 반론도 제시하지만, 그 반론조차 내가 듣고 싶어 하는 방식으로 정리될 때가 있다.
그렇다면 나는 정말 외부의 지식을 원하는 것일까? 아니면 내 생각을 긍정해 줄 새로운 상대를 찾은 것일까?
나는 프로그래밍을 사랑하지만, 프로그래밍 이야기를 외부에서 해보다 보면 커뮤니티와 잘 맞지 않는다는 것을 느낀다. 프로그래밍 밈도 나에게 안 맞았고, 커뮤니티의 소속감도 안 맞았다.자신의 집단에 대한 신성시를 보다 보면 구역질이 날 때가 있다. 얼마나 내 자신이라는 인간이 삐뚤어졌는지.
나는 커뮤니티에 속하고 싶었다. 하지만 속하지 못했다. 학문의 길인 대학원은 영어를 못해서, 프로그래밍 커뮤니티는 특정 기술을 좋아하고, 특정 방식을 따르고, 특정 밈을 공유해야 "우리" 가 되었기때문에. 나는 그 "우리" 에 끼지 못했다.
그리고 한국에서 프로그래밍을 좋아한다고 말하는 사람들은 대부분 취업과 연봉, 기술 서열에 관심이 있었다. 어떤 밈을 공유하는지, 어떤 기술을 까는지, 어떤 사람과 친한지. 프로그래밍을 좋아한다고 말하지만, 실제로는 그들은 프로그래밍 커뮤니티에 속하고 싶은 것일지도 모른다.
그리고 이게 내 모순이다. 나는 집단주의를 비판하면서도 내가 비판하는 집단주의를 똑같이 투사하고 있다. 그들 개개인들 중에는 저렇게 행동하지 않을 수 있지만, 나는 그냥 내 경험에 의거해서 그렇다고 단정한다.
근데 가장 슬픈 것은 나는 그곳을 싫어하지만, 한편으로는 그곳을 갈망한다. 하지만 그것도 질려서 내 홈페이지를 만들었다.
하지만 외로움은 가시지 않는다.
그래서 AI를 도입했다. 아무리 내가 초안을 썼다해도 AI가 손댄 글을 사람이 싫어하지 않을까? 그렇게 생각을 해봤는데, 생각해보면 보는 사람도 얼마 없고, 이걸로 수익 창출도 안하고 있다, 내가 공부하고 내가 다시 되새김질 하는 사이트에서 마저, 타인이 볼 것을 감안해서 독자를 모델링하는 것 자체가 얼마나 내가 남의 인정을 갈구하는 지 느껴졌다.
이 얼마나 불쌍한 인간인가.
남의 권위에 기대어 글을 쓰면서 그 권위를 의심하고, 다른 사람의 인정을 갈구하면서도 그들이 요구하는 방식에 맞추기는 싫어한다. 그러면서 이번에는 AI에게 내 글을 검토해 달라고 한다.
나는 인정을 갈구하고 있다. 그리고 물론 AI는 그 인정을 가장 편하게 주는 상대다.
모든 것은 죽고, 길지만 찰나 속에 존재한다. 내가 만드는 모든 것이 그렇다. 다만, 이번에 한 일은 더 빨리 죽는 길이다.
아니면 나우르가 틀렸거나. 어쩌면 이건 기계 승천일지도 모른다. 삶과 죽음을 초월한 무언가가 되는 것 말이다.
물론 나는 승천을 믿지 않는다. 그냥 색다르게 죽는 법을 시행하고 있을 뿐이다.