검증 반영 1) 기획 및 요청 • VS Code 확장 개발에 대한 Plan • 기존 웹앱을 VS Code 확장으로 포팅, 파일 업데이트시 자 동 업데이트 등 기능 요청 2) 프롬프트 결과 검증 • 리뷰, 실행 -> 동작 여부 확인 • 디버깅 또는 재요청 3) 반영 • 변경 사항 커밋
• 리스너를 통해, 파일 관련 변경 처리 Extension -> Webview: • 확장에서 webview.postMessage 사용, 데이터를 JSON 직렬화 형태로 보냄 • 웹뷰에서 window.addEventListener 를 통해 메시지 처리 Webview -> Extension: • 웹뷰에서 acquireVsCodeApi 함수 호출하여, API 객체 얻은 뒤, postMessage 로 데이터 보냄 • 확장에서 panel.webview.onDidReceiveMessage 를 통해 메시지 처리
사용자에 의해 닫히거나, dispose() 가 호출되면, 웹뷰는 파괴 • 백그라운드 탭 -> iframe 은 파괴, 포커스 -> webview.html 다시 생성 상태 저장 • setState(), getState(), WebviewPanelSerializer 구현 -> 재시작시 상태 복원, • retainContextWhenHidden -> 다른 패널에 가린 경우에도, 메모리 유지
빠른 이해와 구현에 큰 도움을 줌 • 아직까지는 AI가 생성한 코드가 유지보수에 최적이라고 보기는 어려움 AI × VS Code 확장 • AI를 활용해 개발을 직접 돕는 생산성 툴을 만드는 접근이 효과적 • 특히 기존 웹 기반 툴을 VS Code 확장으로 만드는 것은 실용적 • 개발 중 별도의 툴을 실행할 필요 없이, 익숙한 개발 환경 안에서 바로 사용 가능 Webview 확장의 장점 • 기존 웹앱 또는 WASM 코드만 업데이트해도 확장 기능에 바로 반영 가능 • 유지보수 부담은 낮추고, 개발 효율은 높일 수 있음 AI 가 작성한, 유지보수 하기 어려운 코드 예시 : thorvg.viewer 의 html 을 복사/붙여넣기