웹디자이너로 IT 업계에 입문하여 관련 지식을 하나하나 익히다 보니, 어느새 개발자로 성장하게 되었습니다. 웹디자이너로 재직 중, 대표님께서 넌지시 던지신 "개발도 좀 해볼래?"라는 말에 덥석 학원을 등록하고 본격적으로 공부하기 시작했습니다.
코드를 입력할 때마다 눈앞에 탁탁 나타나는 결과물에 큰 희열을 느꼈고, 기능이 실제로 동작하는 모습을 보고 싶어 깊이 있게 공부하게 되었습니다. 그렇게 적성을 찾아 재미있게 일한 지 벌써 5년이 되어갑니다. 그 이후로 회사가 필요로 하는 기술은 두려워하지 않고 배우고 익혀 제 무기로 만들고 있습니다.
저는 비즈니스 성장에 기여하는 코딩을 좋아하며, 주도적으로 업무를 진행할 수 있는 환경을 선호합니다. 코드 리뷰와 피드백을 주고받는 것을 즐기며, 컴포트존에 머물기보다는 배우고 성장하는 삶을 지향합니다. 어려운 문제에 직면했을 때 혼자 오랫동안 고민하기보다는 질문을 통해 문제의 본질을 파악하고 동료와 함께 해결책을 탐색합니다.
회사는 마켓핏을 찾기 위해 여러 비지니스 모델을 시도하는 중이었고, 코로나가 시작되며 서비스의 방향을 화상진료가 가능한 재활 의료기기로 시도해 보고자 하였습니다. AWS에서 크레딧을 지원받고 있던 찰나여서, AWSchime SDK를 이용해 기능을 구현하기로 하였습니다. 워낙 초기 스타트업이라 기획, 디자인도 없이 개발을 시작하였습니다. 레퍼런스를 찾아가며 마이크와 카메라 켜기/끄기 기능, 카메라 전환 기능, 전화 걸기, 끊기 기능, 의료노트기능 등 플로우를 직접 기획하고 디자인해 완성하였습니다. 개발팀이 하나되어 일한 덕분에 영업팀에서는 ‘화상 통화 가능'이라는 문구를 내세워 고객 홍보를 할 수 있었습니다. 신입 개발자이면서, 혼자 프론트엔드 개발자로 일할때여서 포기하지 않고 밤새 만든 기능이 회사에 도움돼 매우 뿌듯했던 기억으로 남아있습니다.
화상 통화 기능을 구현하기는 했지만, 실제 사용할 때 불편함이 있었습니다. 예약된 시간에 환자가 화상 진료실에입장하면, 의사에게 알림이 가야 하는데 의사의 브라우저가 꺼져있으면 환자의 입장을 알려줄 방법이 없었습니다.이때 브라우저가 꺼져있을 때도 동작하는 serviceworker를 이용해 firebase 알림을 받아 브라우저에서 알림을보내도록 기능을 구현하였습니다. 의사가 알림을 바로 확인하지 못하거나 실수로 끄더라도 지난 알림 리스트를 볼수 있도록 serviceworker에서 접근할 수 있는 indexedDB에 적재하여 알림 목록 기능을 구현하여 서비스 완성도를 높였습니다. 주어진 문제를 기술적으로 해결했다는 것에 기뻐 개발의 매력에 더 빠지는 계기가 되었습니다.
전자 결재 기능 중 텍스트 에디터는 누가, 무엇을, 어떻게 변경했는지가 중요한 정보였습니다. 단순히 텍스트의 전후변경사항을 비교하는 것은 쉽지만, HTML태그로 감싸진 텍스트와 이미지, 테이블의 전후 변경사항을 비교하는 것은 쉽지 않았습니다. 믿었던 NPM에서도 완벽하게 비교 결과를 리턴해주는 라이브러리를 찾을 수 없었고, 제한된 기간 안에 로직을 직접 구현하기도 어려운 상황이었습니다. 우선 가장 근접한 결과를 리턴해주는 오픈소스를 찾아냈고, 기획 요구사항에 맞게 코드를 로직을 수정해 삭제된 내용은 삭제선과 붉은색 배경을, 추가된 내용은 초록색 배경을 넣어 전자 결재 기능의 완성도를 높였습니다. 문제 해결을 위해서는 라이브러리에 의존할 것만이 아니라, 라이브러리를 부수고 재조립해 만들수도 있다는 것을 경험하고 자신감을 얻게 되었습니다. 이후 같은 어려움을 겪고 있을개발자를 위해 개선한 비교 로직을 오픈 소스로 배포하였습니다.