본문 바로가기
개발 이야기

개발 프로젝트 경험담 #2(Angularjs, Cordova)

by 신나요 2022. 1. 11.

지난 이야기

이제 막 웹 개발을 시작한 지 얼마 안돼 들어간 프로젝트는 코르도바와 angularjs를 쓰는 현장이었다.

그동안 웹 프로젝트 경험이라곤 철 지난 jquery가 대부분이었고,  javascript는 하는 게 별로 없는 쉬운 녀석이라고 생각했던 완전 초보 개발자 시절이었다.

그런 내 앞에 뜬금없이 나타난 angularjs를 꾸역꾸역 해나갔고 페이지가 하나하나 완성될 때쯤 보이지 않았던 녀석이 눈에 보이기 시작했다.

그 녀석의 이름은 코르도바.

 

코르도바 너 도대체 뭐니

화면단이 하나씩 기능을 갖추자 여김 없이 매니저들은 슬슬 단말에서 테스트를 해보자고 했다.

그렇다, angularjs로 웹페이지 개발을 했지만 우리 프로젝트는 웹이 아니라 앱을 만드는 것이었다.

코르도바를 이용했던 것은 Javascript, html, css를 사용하여 모바일앱을 만들기 위함 이였다.

고객의 요구사항은 안드로이드, 아이폰, 아이패드에서 작동해야 했었고, 푸시 서비스(Push service)를 이용했다.

Cordova는 Phonegap을 기반으로 개발된 프레임워크로 Adobe의 제품이었지만, 아파치에 기증됐다.
코르도바의 기본 아이디어는 네이티브 앱에서 웹뷰를 이용하여 그 안에서 웹을 실행한다. 그리고 스마트폰 장치의 카메라, 위치정보, 가속도 센서, 푸시 서비스 기능 등을 이용할 수 있게 해 준다.

우리는 코르도바를 사용하여 웹앱과 네이티브 앱을 결합한 일명 "하이브리드 앱"을 개발하고 있었던 것이다.

 

갤럭시에선 푸시 메시지가 안 오는데요?

푸시 메시지 기능은 스마트폰의 기능을 사용해야 했기 때문에 코르도바 플러그인을 이용해서 구현한다.

하지만 대부분의 오픈 소스들이 그렇듯 제대로 움직인다는 담보를 해주진 않는다. 

고객이 원하는 버전, 단말, OS에서 테스트를 해야 했었고, 모든 단말에서 정상 작동하는 플러그인을 찾아야 했다.

 

그리고 정상작동하는 플러그인 찾기가 시작된다.

  1. 푸시 서비스 플러그인 찾기
  2. 플러그인을 이용한 코딩
  3. iOS와 Android 각각 빌드
  4. 각 테스트 단말에 인스톨
  5. 원하는 기능을 확인

모든 단말에서 정상 작동할 때까지 1~5를 무한반복이다.

다행히 우리같이 고생하는 사람들은 다른 곳에도 많았고, 정상 작동하는 플러그인을 찾아서 푸시 서비스 기능을 구현할 수 있었다. 하지만 버전업으로 해당 기능이 작동하지 않는다면? RIP...

 

만약  플러그인이 존재하지 않는다면?

원하는 기능의 플러그인을 만들 수밖에 없다.

코르도바 플러그인 작성을 하기 위해서 네이티브 프로그래밍 지식이 필요하고,

OS별로 Android, iOS코딩을 한 후 코르도바 플러그인으로 부품을 만들어 프로젝트에 사용하게 된다.

오히려 오픈 소스로 작성된 플러그인을 이용하기보단 유지보수를 위해 플러그인을 제작 후 이용하는 편히 나을지도 모르겠다는 생각이 든다.

 

코르도바 안녕 다시는 만나지 말자

Angular & Cordova프로젝트를 릴리스하고 나서 돌이켜 보니,

Cordova는 안 좋은 기억으로 Angularjs는 흥미로웠던 기억으로 남았다.

코르도바를 사용하면서 유지보수 관점에서 오픈소스의 어려움을 느꼈다.

또한 딱 맞는 플러그인 찾기도 힘들지만, 플러그로 인한 콜백 지옥이 더 힘든 점이었다.

 

다신 만나지 말자 코르도바~~

하지만 나는 다른 프로젝트에서 Cordova의 계승자 Ionic을 만나게 된다.

 Ionic 아이오닉 이란
Web Native를 위한 UI프레임워크로, 모바일에 필요한 UI라이브러리를 가지고 있고, 애니메이션 또한 60 프레임으로 구현하고 있다.
코르도바의 플러그인을 대부분 사용 가능하고, Promise로 래핑 하고 있어 콜백 지옥에 벗어날 수 있다.
또한 디바이스의 스토리지에 접근 가능하게 해주는 아이오닉 스토리지, CLI지원 등을 지원해줌으로 Cordova에서 앱 제작을 편하게 해 준다.

 

 

함께 읽기

[개발 이야기] - 개발 프로젝트 경험담#1(Angularjs)

'개발 이야기' 카테고리의 다른 글

개발 프로젝트 경험담 #1(Angularjs)  (0) 2022.01.10

댓글