학교를 다니면서 비싼 돈을 주고 기숙사를 사는데
외박신청 시스템이 너무나도 불편하다고 판단되었습니다... 😥
학교 자체 App이나 홈페이지가 존재 하지만
신청 로직이나 달력에서 날짜를 선택하는 것만 해도 클릭수나 로그인이 너무나도
불편하다고 느꼈고 저 뿐만 아닌 다른 학생들도 이런 불만이 많아 제작하게 되었습니다!
[기존의 외박 신청 로직]
- 추가
- 날짜 선택
- 저장
(가장 큰 불편함은 내가 언제까지 신청한지도 잘 모르겠고 승인/미승인 내역도 매 번 이렇게 확인해야 하는게 별로라고 판단 됨)
개발은 App 기반으로 Android, Ios 동시 출시를 고려하여
React Native with Expo
로 개발을 결정
배포의 경우 Expo를 통한 학생들에게 배포가 좀 더 쉬운 편이라고 생각하여
이렇게 배포를 하기로 결정하게 되었다.
총 두 번의 업데이트가 있었는데 첫 번째는 크롤링
을 기반으로 한 AWS Lambda
서비스를 이용하였다.
크롤링 기반 서비스를 택한 이유는 세션 정보나 신청 로직을 태그 요소를 통해서 자유롭게 조작할 수 있다는 점에서 이를 택하게 되었다.
React Native
Expo
Serverless, AWS-Lambda
chromium
기반으로serverless
를 택하기로 마음먹었다.chromium
기반에서 웹페이지를 띄운다면 dialog
창에 확인 버튼을 누른다는 코드인데 page.on('dialog', (dialog) => {
dialog.accept();
});
Backspace
키를 사용해서Endpoint
를 통해서 API call(GET, POST)
와 내가 날짜 계산 로직을 잘 못 짜서 구동이 안된거 까지 합쳐서 너무나도 많은 시도를 했다.React의 경우 벨로퍼트님의 책을 보고 CRUD 게시판을 만들어본 경험은 있지만
ReactNative는 아무런 지식도 없었기에 노마드 코드님의 초보를 위한
React Native[간단한 날씨 어플 만들기]를 보고 제작을 하였다.
코드의 경우 완전 구동이 되는거에만 목적을 두고 써서 스파게티 코드이다...
네비게이션이나 페이지네이션 같은 기능도 넣고 싶었지만 이 때는 도저히 작성할 실력이 안되거 같아서 다음 업데이트 때 제대로 공부하여 작성하겠다는 마음을 먹었다.
만들기는 했지만 뭔가 아쉬움이 많이 남았다...
속도 측면에서 api 콜이 30초 이상을 넘어가서 fail처리가 나버리니 용납이 안되긴 했지만 일단 이를 개선할려고 노력한 것과 디자인에 대해서도 많은 개선이 필요하다고 생각하여 무조건 앱을 업그레이드 하기로 마음 먹었다.
다음 포스트에서 학생들에게 받은 피드백과 개선 사항을 바탕으로 만든
앱 2탄을 작성 예정입니다.
한국공학대학교 22학번 학생입니다.
외박 신청 앱 잘 사용하고 있습니다 감사합니다 :)