PageRivet, 시작부터 지금까지
2시간 전
PageRivet이 만들어지기까지
PageRivet은 처음부터 지금의 모습을 목표로 만들어진 프로그램은 아니었습니다.
작은 불편함에서 시작된 아이디어가 기능을 하나씩 확장하면서 현재의 PageRivet으로 발전하게 되었습니다.
이 글에서는 PageRivet이 어떤 계기로 시작되었고, 어떤 고민과 과정을 거쳐 지금의 형태가 되었는지 소개하고자 합니다.
PageRivet이 탄생하게 된 계기
PageRivet은 처음부터 정적 웹 에디터로 만들 계획은 아니었습니다.
저는 전문적인 개발 교육을 받은 개발자도 아니었습니다. PageRivet을 기획하게 된 계기도 거창한 목표보다는 AI를 이용해 웹사이트를 제작하면서 느꼈던 불편함에서 시작되었습니다.
AI에게 코드를 요청하고, 생성된 코드를 직접 적용한 뒤 페이지를 확인하고, 다시 수정사항을 전달하는 과정을 반복하다 보니 자연스럽게 이런 생각이 들었습니다.
"코드를 생성하고 바로 결과를 확인할 수 있다면 조금 더 편하지 않을까?"
초기 PageRivet의 기획은 지금과 같은 웹 에디터가 아니라, CSS와 JavaScript를 이용해 웹사이트에 사용할 요소를 만들고 결과를 바로 확인할 수 있는 간단한 도구 생성기에 가까웠습니다.
하지만 실제로 구현 방법을 알아가면서 CSS와 JavaScript만으로는 정확한 결과를 미리보기 어렵고, 결국 HTML까지 함께 다루어야 한다는 것을 알게 되었습니다.
그리고 문득 한 가지 생각이 들었습니다.
"HTML, CSS, JavaScript를 모두 다루게 된다면 결국 하나의 웹 에디터와 다를 것이 없지 않을까?"
그렇게 PageRivet의 초기 기획안이 작성되었습니다.
PageRivet에 MCP를 도입하게 된 과정
초기에는 PageRivet 자체에 프롬프트 패널을 넣을 계획이었습니다.
제가 사용하고 있던 GPT의 API를 프로그램과 연결하고, PageRivet 안에서 프롬프트를 입력하면 AI가 코드를 생성하고 그 결과를 즉시 미리보기할 수 있는 구조를 생각했습니다.
처음에는 상당히 자연스러운 방법이라고 생각했습니다.
하지만 한 가지 문제가 있었습니다.
GPT를 사용하는 사용자라면 큰 문제가 없겠지만, Claude나 다른 AI 서비스를 사용하는 사용자에게는 PageRivet을 사용하기 위해 기존에 사용하던 AI와 별도로 GPT API까지 이용해야 하는 상황이 발생할 수 있었습니다.
PageRivet을 사용하기 위해 특정 AI를 강제로 사용하게 만드는 것은 제가 원하는 방향이 아니었습니다.
그 문제를 고민하던 중 떠올리게 된 것이 MCP(Model Context Protocol)였습니다.
PageRivet이 특정 AI를 직접 내장하는 대신, 사용자가 자신이 원하는 AI 클라이언트를 그대로 사용하면서 PageRivet과 연결할 수 있도록 하는 방식이었습니다.
현재 PageRivet의 중요한 특징 중 하나인 AI 클라이언트와 PageRivet의 협업 구조는 이러한 고민에서 시작되었습니다.
MCP를 어떻게 알게 되었는가
앞서 말씀드렸듯이 저는 전문적인 개발 교육을 받은 개발자가 아닙니다.
원래 직업은 건축 분야의 3D 모델링 아티스트였고, 모델링 역량을 넓히기 위해 게임 개발 관련 교육 과정을 공부하게 되었습니다.
그 과정에서 처음 접한 것이 MCP for Unity였습니다.
당시에는 MCP라는 기술 자체도 처음 알게 되었지만, AI가 프로그램의 구조와 상태를 이해하고 직접 작업을 보조할 수 있다는 점이 상당히 인상적이었습니다.
그리고 PageRivet의 AI 기능을 고민하던 과정에서 당시의 경험이 다시 떠올랐습니다.
"PageRivet도 AI를 직접 내장하는 대신 MCP를 통해 외부 AI와 연결하면 어떨까?"
그 생각이 PageRivet에 MCP를 도입하게 된 계기가 되었습니다.
개발 과정에서 마주한 가장 큰 문제
PageRivet을 개발하면서 가장 어려웠던 부분 중 하나는 실제 사용자 환경에서의 검증이었습니다.
제 개발 환경에서는 이미 AI 클라이언트가 PageRivet의 구조와 작업 방식을 어느 정도 알고 있는 상태였습니다.
그렇기 때문에 제가 직접 테스트하는 것만으로는
-
처음 PageRivet을 사용하는 AI가 어디까지 이해할 수 있는지
-
어떤 부분부터 사용하기 어려워지는지
-
설정 과정에서 어떤 문제가 발생하는지
-
실제 사용자 환경에서는 어떤 오류가 발생하는지
정확한 경계를 확인하기 어려웠습니다.
제작자의 환경에서 잘 작동한다고 해서 일반 사용자의 환경에서도 동일하게 작동한다고 보장할 수 없다는 점을 점점 체감하게 되었습니다.
또 하나의 문제는 운영체제였습니다.
PageRivet은 처음부터 Windows 환경을 기반으로 개발했기 때문에 Linux나 macOS 지원에 대해서는 깊게 생각하지 못하고 있었습니다.
그러던 중 다른 사용자로부터 Linux와 macOS 지원 여부에 대한 질문을 받게 되었고, 그때부터 Windows 이외의 환경도 지원할 필요가 있는지 본격적으로 고민하기 시작했습니다.
Avalonia로의 전환
여러 운영체제를 지원할 방법을 알아보던 중 Avalonia를 알게 되었습니다.
Avalonia를 이용하면 하나의 UI 구조를 기반으로 Windows뿐만 아니라 macOS와 Linux까지 지원할 수 있다는 점이 PageRivet의 방향과 잘 맞았습니다.
결국 기존 WinForms 기반의 PageRivet을 Avalonia로 전환하는 작업을 시작했습니다.
처음 목적은 크로스 플랫폼 지원이었습니다.
하지만 전환 작업을 진행하면서 예상하지 못했던 장점도 얻게 되었습니다.
바로 UI의 자유도였습니다.
기존 WinForms 환경보다 훨씬 유연하게 UI를 구성할 수 있게 되었고, 이것은 이후 PageRivet의 인터페이스 구조를 다시 생각하는 계기가 되었습니다.
가장 큰 변화, UI
Avalonia로 전환한 이후 PageRivet의 UI에도 큰 변화가 생겼습니다.
기존 PageRivet은 각 기능의 위치가 정해져 있는 고정형 레이아웃을 사용하고 있었습니다.
제가 사용하는 환경에서는 크게 불편하지 않았지만, 모든 사용자가 저와 같은 방식으로 프로그램을 사용하는 것은 아닙니다.
어떤 사용자는 미리보기를 크게 보고 싶을 수 있고, 어떤 사용자는 코드 편집 영역을 더 넓게 사용하고 싶을 수 있습니다. 사용하는 모니터의 크기나 해상도 역시 모두 다릅니다.
그래서 PageRivet의 레이아웃을 사용자가 직접 구성할 수 있도록 변경하기로 했습니다.
그 결과 도입된 것이 UI 도킹 시스템입니다.
현재는 초기의 고정된 레이아웃에서 벗어나 사용자가 직접 패널의 위치와 크기를 조정하고, 자신에게 맞는 작업 환경을 구성하여 저장할 수 있도록 개선되었습니다.
PageRivet의 UI가 단순히 프로그램이 제공하는 작업 환경에서 사용자가 자신의 작업 환경을 구성하는 방식으로 변화한 것입니다.
앞으로의 목표
AI의 활용도가 점점 높아지고 있는 지금, PageRivet이 웹사이트를 제작하는 과정에서 조금이나마 도움이 되는 도구가 되었으면 합니다.
현재 PageRivet은 정적 웹사이트 편집을 중심으로 개발되고 있지만, 장기적으로는 더 넓은 범위의 웹 개발을 지원하는 방향도 고려하고 있습니다.
아직 확정된 계획은 아니지만, 서버 기능을 포함하는 별도의 확장 버전 역시 검토하고 있습니다.
단순히 외부 호스팅 서비스에 의존하는 것이 아니라, PageRivet 자체에서 서버를 구성하고 실행할 수 있는 환경을 제공하는 것이 장기적인 목표 중 하나입니다.
다만 이러한 확장은 현재 PageRivet의 안정화가 우선입니다.
충분한 사용자가 확보되고 실제 사용 과정에서 발생하는 문제들이 정리되어 프로그램이 안정화된다면, 현재의 기능을 유지하면서 점진적으로 새로운 영역으로 확장해 나갈 생각입니다.
마지막으로 하고 싶은 말
PageRivet이 완벽한 프로그램이라고 말씀드릴 수는 없습니다.
아직 개선해야 할 부분도 있고, 실제 사용자 환경에서 발견해야 할 문제들도 많이 남아 있다고 생각합니다.
하지만 PageRivet은 단순히 기능을 만들기 위해 시작한 프로젝트가 아닙니다.
제가 직접 AI를 이용해 웹사이트를 제작하면서 느꼈던 불편함에서 시작되었고, 지금도 PageRivet을 직접 사용해 홈페이지를 제작하면서 불편한 부분과 필요한 기능을 찾아가고 있습니다.
그렇기 때문에 적어도 한 가지는 계속 지키고 싶습니다.
실제로 사용하는 사람의 입장에서 불편한 부분을 찾고, 더 편리하게 사용할 수 있는 방향으로 계속 개선하는 것.
PageRivet에 관심을 가져주시고, 사용해주시고, 의견을 전달해주시는 모든 분들께 진심으로 감사드립니다.
앞으로도 PageRivet이 조금씩 더 편리하고, 더 유용한 프로그램이 될 수 있도록 계속 개선해 나가겠습니다.

