한성대학교 기자재 대여 통합 시스템
어느 학교도 그렇겠지만, 우리학교에서도 학생들에게 학업에 필요한 물품들을 대여해준다.
컴퓨터공학부에서는 거의 노트북을 빌려주는데, 대여 절차는 이렇다
1. 과사무실에 방문
2. 대여신청서 작성
3. 수령
위 과정만 보면 평범하지만 나에게는 이런 경험이 있다.
유니티엔진을 코딩하기 위해 GPU가 있는 노트북의 대여가 필요했던 나는
삼성오디세이 노트북을 빌리러 과 사무실에 방문했었다.
하지만 오디세이는 다 대여되고 존재하지 않았다.
"아니 없는거 알았으면 여기까지 안왔지" 라는 생각을 품고 쒸익쒸익 거리며 지내고 있던 중
2022년 3월 실사용 목적으로 교수님께 "한성대학교 기자재 대여 웹"을 주제로 부여받고 졸업작품으로 개발하고 있던 친한 과동기가 나에게 팀 합류를 부탁했다.
그때부터 개발팀 "민수는행복해"의 일원으로 기자재 대여 웹을 개발했다.
졸업작품전시회가 종료되고, 3개월 뒤에 열리는 교내경진대회에 출품하기 위한 Android, iOS앱도 개발하였으니,
이것이 "한성대학교 기자재 대여 통합 시스템"이다.
나혼자서 80%정도를 개발하는 기형적인 구조였지만,
내 코드와 내 설계를 다른 팀원들에게 설명하면서 나도 엄청나게 공부가 됬었던 것 같다.
왜 그런말도 있지 않은가 "누군가에게 가르치면 자신이 뭐가 부족한지 알게된다."
정말 나에게 부족한점이 뭔지 알고 그것을 중점으로 공부했던 것 같다.
팀원들과 마찰은 전혀 존재하지 않았다.
나역시 얻어가는게 많았기 때문에 만족했고, 팀원들은 그런 나를 보며 엄청난 지지와 응원을 해주었다.
그렇다고 다른 팀원들이 회의에 불참하거나 불성실한 태도를 보인것도 아니였다.
#웹서버
Spring Framework을 통해 웹서버를 개발하였고, 외부에 위치한 MySQL 데베서버로 이루어진다.
데베 설계는 내가 직접하였고, 내 설계를 다른팀원들에게 이해시키는 방향으로 했다.
학교 DB사용 권한은 받지 못했지만 학교 학생들이 사용한다고 가정해서 회원가입 창은 만들지 않았다.
로그인을 하면 이런창을 만날 수 있다.
파란색 대여 버튼을 누르면 대여신청을 할 수 있고
이렇게 관리자가 관리자 전용 페이지에서 승인을 눌러줘야 한다.
대여기간은 승인신청을 한 날짜부터 한달이다.
이렇게 빌려주는 노트북의 사양정보를 보고 자신에게 필요한 노트북이 뭔지 파악할 수 있게도 해놨다
??? : 사양 볼 줄 모른다면 답 없는거 아닌가요?
거기까지는 내가 못도와준다.
그 후 학생이 반납을 하러오면 이렇게 반납버튼을 관리자가 누르면 된다.
여기에는 안뜨지만 반납예정일이 현재시간보다 이전에 있으면, 비고란에 붉은글씨로 "연체" 라고 뜬다. 바로 옆에 전화번호도 있으니 바로 전화걸면 되는 시나리오다.
이렇게 누가 얼마나 빌려갔는지 로그도 볼수 있다.
웹서버는 이정도.
#모바일
Only 빌리는 사람인 학생 전용이다.
iOS는 Xcode, Swift
Android는 Android Studio, Kotlin로 만들었다.
둘의 디자인은 동일하다 암튼 동일하다.
오토레이아웃을 적용해서 어느 휴대폰에가도 비슷한 UI배치를 볼 수 있다.
웹과 동일하게 MySQL데베 테이블의 정보를 모바일에 출력한다.
미리 정의된 자체 API서버에서 MySQL서비스를 받아온다. 왜냐하면 모바일에서 MySQL직접쿼리가 안되기 때문,,,
https://dequista.tistory.com/18?category=1027529
Android : URL을 통해 웹 API를 Json으로 사용해 보았다 (Kotlin)
API라는 것이 대부분 Json을 String으로 만든 것을 가져와 사용하는 방식이다. 나는 내 프로젝트에 필요한 API를 직접 만들었는데 https://dequista.tistory.com/16 Spring : 스프링으로 MySQL을 쿼리하는 API를..
dequista.tistory.com
무차별한 대여신청을 막기 위해 한명이 하나의 노트북만 대여할 수 있도록 하였다.
다음으로 아까 웹으로 관리자가 승인을 누르면 해당기기에
이렇게 알람이 오도록 Firebase Cloud Messaging을 통해 만들었다.
iOS 애뮬레이터에서는 코드를 아무리 잘짜도 알람을 수신받지 못하므로 주의
어떻게 알았냐고? 나도 알고싶지 않았다....
#후기
9월 22일부터 23일까지 교내 대회가 진행된다.
자체 API서버,
그 API서버와 통신하여 쿼리를 받아오는 모바일앱,
관리자 전용 페이지,
이미 배포 완료된 웹,API,FCM,DB서버
를 중심으로 우리의 프로젝트를 어필할 생각이다.
이렇게 여러 플랫폼을 사용하는 프로젝트는 나도 처음이라 나자신에게도 정말 좋은 경험과 공부가 되었던 것 같다.
이걸 이제 학교 정보화 팀에게 인수인계 해야하는데,
어디부터 어떻게 설명해야할지 벌써부터 한숨이 나온다.
이제 인수인계 문서 만들러 가야겠다.
이만 빠잉!