이전에 OSAM Hackathon에 선발되었다는 글은 oflofty.tistory.com/2
블로그를 시작하면서 (OSAM 해커톤 선발과정)
어느덧 입대한지 대략 6달정도 된 거 같다. 사실 사회에서 있을 때보다 엄청나게 편하다고 느낀다. 운좋게도 군번이 좀 잘 풀리기도 했고 그래도 밖보다는 내가 무언가를 해야한다는 부담감이 ��
oflofty.tistory.com
스마트폰 비대면 반납 + 국방부 어플리케이션 통합 프로젝트
해커톤에 제출한 프로젝트에 삽을 뜬지 1주 약간 넘었는데 느낀 점들이 정말 많다. 우선 군대 내부의 환경의 문제로 기술스택이 변경된 이유로 인해 불필요한 삽질을 지나치게 많이 했다. 단적으로 react native 환경설정을 하는 과정이나 싸지방에서 VM-t 가 활성화가 되지 않아서 에뮬레이팅을 돌려볼 수 없는 채로 테스트를 돌려야하는데 설상가상으로 빌드된 apk 파일은 react 서버가 켜져야 돌아갔었다. 같은 네트워크에서 접속하거나(예를 들어서 같은 와이파이를 쓰는 경우) usb처럼 직접 컴퓨터에 연결했어야 했는데 두가지 방법 모두 사이버지식정보방 컴퓨터로는 할 수 없는 방법이었다.
그래서 모든 초기과정을 전부 삽질을 하면서 추석 직전에 쥐어짜냈던 시간을 싹 날리고 프로젝트를 진행한 게 문제가 컸다. 뭐 그 덕분에 간만에 터미널을 꽤 많이 다루기도 했고, 개발하는 감도 약간은 찾은 느낌이었다.
현재 가장 큰 문제를 꼽자면 아무래도 배운 내용은 android studio 기반의 앱개발이었는데 사이버지식정보방에서는 부팅을 할때마다 android studio 개발 환경이 모두 초기화가 되기에 불가피하게 react native를 통해서 개발하는 방식으로 바뀌었는데 react를 전혀 모르는 상태에서 프로젝트를 뛰어들었다는 점이다. 덕분에 간단한 패키지를 만들어서 프론트엔드쪽에서 돌리는것조차 3일정도 걸렸고 아직도 프로젝트에서 가장 중요한 다른 앱에 접근하는 걸 감시하는 Background Service를 계속 돌리는 작업은 구현이 될 듯 말 듯하면서도 잘 되지 않아 시간을 많이 잡아먹었다. 글을 정리하는 10/7일에 앱 잠금기능을 구현을 완료했는데 이런저런 시행착오를 많이 겪어서 예상보다 오래 걸렸다.
사실 컴퓨터전공에게 있어서 구글신한테 물어보는 것만큼 좋은 것도 없지만 잠시 한계점에 부딪힌 거 같은 느낌도 들었다. 구글링을 아무리 해도 RN으로 백그라운드에서 앱접근을 막는거에 대한 솔루션을 못찾아서 실마리라도 잡으려고 계속 찾고 공부하고 있는데도 계속 뭔가 꼬인다. 아무래도 일반적인 프로젝트에서는 안쓰일 거 같은 걸 하려다보니 정보가 부족했던 게 아무래도 시행착오를 많이 겪은 가장 큰 이유일 거 같다.
그리고 두번째 문제는 아직도 개발환경에서의 디버깅과 에뮬레이팅이 불가능하다는 점이다. 타협점을 잡은 게 apk 파일을 빌드할 때 package.json 파일을 조금 손봐서 네트워크가 연결되어있지 않더라도 사용가능한 apk파일을 통해서 휴대폰에서 다운로드받은 후 내 폰으로 직접 테스트를 돌려봐야 했다. 이게 얼마나 비효율적이냐면 VM이 돌아가는 환경에서는 코드만 바꿔도 바로 옆에 에뮬레이팅 화면을 돌리면서 개발을 할 수 있는데 이 경우에는 내가 폰이 없으면 테스트조차도 못하는 환경이라서 쓸데없이 시간을 많이 잡아먹었다.
그래도 역시 코드짜는 건 삽질하는 게 가장 빨리 느는 거 같다. 거의 군대에서 코드구경도 안하다가 급하게 해커톤 선발과정을 준비했는데 사실 문제푸는 건 그 당시 시간이 부족해서 준비할 시간이 거의 없었다. 본격적으로 감을 찾은 게 정말 1도 모르는 react native를 이용해서 처음 프로젝트에 손을 댈 때 뭐부터 해야할지 몰라 이것저것 찾아가면서 공부하고 조그만한 기능 1~2개 정도 있는 앱을 만들면서 react native로 앱개발을 하는 방법에 대해 어느정도 알게 되었다. 가장 android studio 개발환경과 달랐던 점은 각각의 activity, service, broadcastreceiver 등의 요소들을 편하게 굴리기 어려웠다는 점이다. 대부분은 Java로 짠 코드들을 Native Module로 등록한 후, Bridge를 이용해서 react native에서 굴리게 되는데 이 과정을 이해하는거나 Component를 사용하는 방법 등에 대해서 처음에는 낮설었는데 익숙해지고 나니 오히려 안드로이드 스튜디오로 개발하는 것보다 장점이 많다고 생각이 든다. 꽤 괜찮았다 싶은 부분들은 나중에 따로 글을 써볼까 생각중이다.
아마 이번 주말연휴부터는 빈약했던 front-end쪽 디자인하고 추가적인 기능들에 집중할 생각이다. 아직 진행중인 프로젝트라서 구체적인 계획을 쓰긴 어렵지만 이 페이스면 31일까지는 마감할 수 있지 않을까?
LOCKA 프로젝트를 마치며... (0) | 2020.11.01 |
---|---|
LOCKA 프로젝트 3,4주차 개발일기 (0) | 2020.10.30 |
LOCKA 프로젝트 2주차 일기 (0) | 2020.10.16 |
Locka Project (0) | 2020.09.19 |