E D R , A S I H C RSS

NH Dormitory Alarm



이름과 설명은 거창해보이지만, 실상은 관련된 정보를 모바일형태로 제공하고 있으므로 안드로이드 및 iOS 어플제작이 주가 되는 프로젝트입니다. (난이도는 CAUScheduler와 비슷할 것으로 예상합니다.)

농협장학관(농협재단)의 팀장님으로부터 부탁(명령)을 받아 진행하게된 프로젝트이고, 아직 구두로만 필요한 기능을 전달받아 제작을 진행하고 있습니다. 추후 대면하여 논의하게 되면 적절한 보수가 있을 수도 있습니다.

혹시나 프로젝트 진행 경험을 쌓고 싶거나 혹은 (실시간 채팅(푸쉬))앱 제작 및 서버에 관심이 있으신 분들은 자유롭게 참여하시면 좋을 것 같습니다.

(단, 너무 많은 인원으로는 진행이 어려울 듯하여 적절한 인원이 모이게 되면, 더 이상 모집할 수 없을 것 같습니다.)


1. 참가하는 사람

2. 앱 제작의 배경 및 목적

농협장학관의 현재 공지(행사 및 소식)전달 방식은 현재 (대부분)벽보 및 (중요한 내용은)문자메세지(MMS)로 알리고 있습니다.

또한, 인터넷 사이트(http://jaedan.nonghyup.com/site/mobile )의 공지사항을 통해서도 전달하고는 있습니다.

하지만, 장학관내의 사생들에게 효율적으로 전달이 안되는 탓인지 공지된 내용을 이행하지 않는 경우가 많이 발생하고 있습니다.

따라서 이러한 문제를 해결하기 위한 한가지 방안으로, 농협장학관의 어플리케이션을 제작하여 좀 더 효율적으로 공지사항 전달 수단으로 사용할 예정입니다.


3. 진행 상황


** 3월 17일까지의 진행상황

1. express, passport를 통해서 Dashboard 로그인구현 및 기본적인 설정이 가능하게 만들어두었습니다.
(테스트해보실 분들은, http://leesnhyun.iptime.org 에 test/test 로 로그인 가능합니다. 추후삭제 및 css 적용예정 ㅠㅠ)

2. github에 올라가있는 소스에서 확인할 수 있듯이, 현재 MQTTService는 구현을 완료했으며, 대쉬보드에서 푸쉬전송을 하면 받아볼 수 있습니다.

3. 현재 'test' 토픽(topic)만을 구독(subscribe)하게 해두었지만, 나중에는 토픽을 잘게 세분화할 예정입니다.
소스상에서는 subscribe 뿐만아니라 publish, unsubscribe도 구현이 되어있으며, 상황에따라 호출할 수 있도록 할 예정입니다.

4. DexClassLoader (Java 에서의 ClassLoader)를 이용하여, main apk에서 sub apk파일의 함수를 호출할 수 있도록 해두었습니다.
이는 어플자체의 업데이트를 피하고, stealth update를 위한 장치이고, 보안과 관련된 부분은 파일의 무결성검사(hash값)를 통해서 해결해볼 생각입니다.


** 3월 30일까지의 진행상황

1. Mosquitto broker와 Mysql을 연동하여 ACL(Access List) table 을 만들었습니다. (원래 Mosquitto에서는 파일(.db)에 작성함.)

2. 하지만, ACL에 쿼리하기 위해 HTTP Request를 이용하는데, 클라이언트(안드로이드)에서의 부담이 있는 것 같습니다.
따라서 Mosquitto broker를 좀 수정해 서버내부에서 쿼리를 날리도록 수정해보겠습니다.

3. 임의의 유저가 푸쉬서버에 접근하지 못하게 하기 위해서, MQTT Protocol의 인증기능을 사용.

4. DB설계를 잘못해서, 멀티디바이스가 지원이 안될뻔했으나 지금은 수정하여, 멀티 Device도 지원됨. 단, 농협재단의 id는 하나이므로 여러개의 디바이스에는 동시에 같은 푸쉬가 전송되도록 했습니다.

5. 클라이언트의 보안강화 (SharedPreference 암호화 및 민감한 정보들은 sha256 + salt로 암호화)

6. Fragment에서 getActivity()가 null이 되는 상황이 간헐적으로 발생하여 수정중에 있습니다. 수정했습니다.


=

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:49
Processing time 0.0225 sec