Diary/나의 개발일지

크롬 확장 프로그램을 개발해보자 2 - 몇 가지 어려움과 해결

프로필사진
inup 2023. 12. 31. 08:51

 

 

종강 후에 남은 과제도 처리하고 학기 간 못만난 친구들도 만났더니, 벌써 2024년을 단 하루 앞둔 시점이 다가왔다. 시간 빠르다는 생각은 자주 하지만, 역시 연말이라 특히 더 빠르게 느껴지는 것 같다. 확장프로그램 개발은 다소 차순위로 미루어진 느낌도 들지만, 마음을 다시 잡고 요즘 차근차근 개발하기 시작했다.

 

몇 가지 어려움

익스텐션 개발은 상대적으로 마이너한 분야이다. '이걸 어떻게 구현해야 할지 잘 모르겠어.' 라는 생각이 들 때, 구글의 도움을 받으면 지금까지는 대부분 해결되었다. 그러나, 익스텐션을 개발해본 사람도 너무 적고, 인터넷에 올라온 정보도 많지 않다. 이 부족한 내용 중에서도, 올해부터는 Manifest V3를 강제하며 레거시 버전은 지원이 중단되어 현재는 가용할 수 없는 정보도 더러 있었다. 이 조각 조각의 정보를 이어붙이는 시간이 꽤 걸렸다.

 

또한, 구글 클라우드에서 클라우드 스케줄러를 다룰 때 외에는 Javascript를 사용해본 적이 거의 없었는데, 익스텐션은 약간의 HTML(+CSS)와 수많은 JS가 필요하다는 것도 새롭게 알게 되었다. 기초적인 문법 빼고는 하나도 할 줄 몰랐는데, 어느새 꽤 잘 쓰고 있다. 그리고 아주 넉넉하고 인심좋은 동적 타이핑이 정말 매력적이다. 말 그대로 맛있다.

 

처음 구상할 때의 생각은 '드래그하면, 텍스트를 인식해서 환율을 불러오면 될 거야!' 라고 막연하게 생각했다. 하지만, 이 과정도 생각만큼 간단한 게 아니었다. 숫자를 표현하고, 특히 돈을 표현하는 방식에는 정말 다양한 표기법이 사용된다.

'9억 8000만원'을 표현할 수 있는 다른 방법으로는 '9억8천만', '980,000,000원', '9.8억'과 같이 많은 상황과 변수를 고려해야 한다. 단순히 '숫자 + 통화'만 인식할 수 있게 한다면 개발자 입장에서는 편리하겠지만, 사용자는 대부분의 상황에서 직접 숫자를 입력, 수정하는 과정을 거쳐야 한다. (구글 검색이 더 빠를 것이다.)

 

문화권에 따라 '숫자 + 통화'로 적는지, '통화 + 숫자'로 적는지 또한 다르다. 페소나 달러의 경우 일반적으로 후자를 더 선호한다. 여기에 띄어쓰기나 쉼표를 넣는다면? 센트(cent)를 소수점 아래에 병기한다면? ... 등등, 입출력은 간단하지만 굴러가는 로직은 생각만큼 간단한 일은 아니었다.

 

결과

 

디자인을 제외한 작동부는 대부분 작성 완료하였다. 선택한 텍스트를 인식하고, 종류를 구분하고, 숫자와 통화를 분리하고, API로부터 환율을 받아오며, 이를 적용하는 부분까지 완성하였다. 이제 사용자에게 보여주는 다이얼로그의 디자인과 기본/선호 통화 종류 설정, 개인화 설정 등의 파사드 부분이 남아있다.

 

빠르게 한다면 1월 첫째 주까지는 완성이 가능할 것 같다.