오늘은 다른거보다 그냥 만든거 자랑 하나 하려고 합니다.
질문이나 개선사항 등은 haherhohu@gmail.com으로 연락주시면 되겠습니다.
https://marketplace.visualstudio.com/items?itemName=haherhohu.websquare
websquare - Visual Studio Marketplace
Extension for Visual Studio Code - websquare xml file to convert js
marketplace.visualstudio.com
# 계기
때는 지난 4월, 제가 그토록 피하던 Java 쪽 SI 를 수행중이었는데,
UI 개발도구(....라고 쓰기도 민망한)인 Websquare를 사용하게 되었습니다.
이 Websquare라는 놈을 가지고 개발을 하다 보니 개발도구로는 eclipse 만을 지원하는 괴악한 구조를 가지고 있더란 말이죠.
아니 웹 기반 개발인데 mac용 eclipse에서는 확장 설치도 안 되는 경우는 뭐란 말입니까(...)
심지어 전자정부프레임워크 4.1 for mac은 수행 시 개발자 인증에 걸려서 실행조차 안 됩니다(...물론 풀 수는 있습니다만...)
아무튼, 최근 제가 자주 사용하는 도구는 VSCode이고, VSCode 마이그레이터를 만들 정도로(...) 내부망에서도 열심히 쓰는 중인데
Eclipse를 사용할 수도 없고 여러 모로 깝깝하더란 말이죠.
https://github.com/haherhohu/vscode-portable-migrator
GitHub - haherhohu/vscode-portable-migrator: 내부망용 vscode 를 만들기 위한 마이그레이터
내부망용 vscode 를 만들기 위한 마이그레이터. Contribute to haherhohu/vscode-portable-migrator development by creating an account on GitHub.
github.com
(지나가는 마이그레이터 자랑... 다만 가끔 정상적으로 동작하지 않는 경우가 있어서 사용하지는 말 것.)
# 개발 시작
찾아보니 websquare xml 을 mac이나 linux환경에서 command-line 으로 수행할 수 있도록 만들어진 바이너리가 있더라고요.
이 바이너리를 이용해서 shell script 를 작성하였습니다.
웹스퀘어 변환을 위한 mac용 shell script(참고만 하세요)
근데 이렇게 쓰다 보니 여간 불편한게 아니었습니다. 매번 커맨드라인으로 쉘을 돌리는 것도 일이란 말이죠.
그래서 VSCode 확장으로 한번 만들어볼까? 해서 만들어 보게 되었습니다.
처음에는 확장이고 뭐고 Typescript도 처음 해봐서 아는게 없어서 막막했는데,
최근 AI가 그렇게 핫하다 해서 AI한테 물어물어 만들었습니다.
생각보다 이것 저것 많이 해 주더라고요.
물론 확장 디버깅 및 수행 등은 직접 테스트해보고 두근두근 하면서 만들었습니다.
첫 0.0.1 버전은 이렇게 대략 8시간 정도 밤샌 결과 탄생하게 되었습니다.
# 업데이트
그렇게 릴리즈를 해 놓고 나니, 이걸 과연 누가 받아볼까 싶더라고요.
다음날 회사에 가서 VSCode를 사용하고 있는 사람들 둘 셋 정도에게 말씀드렸습니다. 이런거 만들었다고
다행이 좋게좋게 봐 주셔서, 그 분이 제 첫 고객이 됐네요(...)
처음에는 mac 에서만 구동됐는데, 내부망에서 구축된 환경은 또 windows라서, 이후에 windows 쪽 지원을 추가하기도 하고,
빌드 후 target 디렉터리로 (강제) 배포하거나, 각종 websquare 변환기의 옵션들을 추가하고,
변환기도 한번 업데이트 한 뒤, 버그를 잡으며 0.0.10 버전까지 오게 되었습니다.
# 결론
그러니까 VSCode에서 Websquare 쓸 일이 있으면(이 경우부터가 좀 별로지만)
한 번씩 사용해 주시고 의견 남겨주세요 ㅎㅎ
(당연한 이야기지만) mac/linux/windows를 모두 지원합니다.(...)
확장 코드는 이쪽을 참고하시면 됩니다
https://github.com/haherhohu/websquare
GitHub - haherhohu/websquare
Contribute to haherhohu/websquare development by creating an account on GitHub.
github.com