[개발]

[Andriod/Kotlin] KAU-STUDY 예약 앱 개발 - DB구조

개발새발주발 2024. 2. 1. 07:47
728x90

 2023 2학기 안드로이드 스튜디오와 코틀린을 활용하여 앱을 개발하였다.

사실 동일한 수업을 재수강했기에 주도적으로 개발을 이끌어 나갔다. 

 

 

프로젝트 깃허브 링크는 여기 !

https://github.com/0lrlokr/KAU_OOP15

 

 

3명이서 백엔드/프론트엔드 구분 없이 약 2달간 진행한 토이 프로젝트이다. 

 

 

📚 KAU-STUDY 예약 앱

한국항공대학교의 스터디룸을 예약하기 위해서는 여러가지 페이지를 거친 뒤,(종합정보시스템>예약하기>스터디룸 예약페이지로 들어가서)예약을 할 수 있습니다. 또한 웹에서만 예약이 가능하여, 학생들의 불편함이 있었습니다. 이를 해소하고자, 기존 웹에서의 기능을 앱으로 만들어보았습니다. 또한 입실확인을 학생들이 스스로 할 수 있도록 하여 자율성을 높인다. 

🔧 주요기능

  1. 스터디룸 예약
    I) 층, 스터디룸을 선택한 뒤, 해당 스터디룸의 예약현황을 조회할 수 있습니다.
    II) 예약하고자 하는 스터디룸을 선택한 뒤, 상세 정보를 입력하여 예약합니다.
    III) 예약 시, 일일 누적 3시간이 넘는 경우는 예외처리됩니다.

  2. 스터디룸 예약 현황 조회
    I) 본인의 스터디룸 예약 현황을 조회할 수 있습니다.
    II) 예약 현황 조회에서 스터디룸 예약을 취소하실 수 있습니다.

  3. 스터디룸 입실 확인(카메라)
  4. 스터디룸 상, 벌점 조회

⌨️ 사용 스택

Android Studio/Kotlin Google Firebase

 

💽 DB 구조

 데이터 베이스를 직접 설계해보았다. 리얼타임 데이터베이스로 기존 sql기반과 다른 nosql이라 sql을 먼저 배우고 만드려니 조금 어려운 감이 있었다. 하지만 참조관계등을 고려할 필요가 없어 오히려 쉽다는 것을 개발단계에서 느꼈다 

 

 

 처음 설계한 데이터 베이스와 사뭇 다른 설계를 가지고 있지만, 수정을 통해 데이터가 많이 깔끔해지는 것을 느꼈다. 처음에는 스터디룸 데이터베이스 하나의 방 테이블 내에 예약 시간, 예약자 정보를 모두 넣으려고도 하고 조언도 구하고 ,, 

지금 보니까 참 멍청한 생각이었다!!!

 

사실 위 사진처럼 설계를 한 뒤, 데이터를 넣은 결과 많은 문제가 발생했다. 

스터디룸 신청을 해야할 때, 이미 신청되어 있는 시간대를 어떻게 표시할 것인가, 예약되어있지 않은 방까지 데이터를 기록하려니 하루에 약 78개의 데이터가 나왔다. 토이데이터 치고 관리하기가 어렵고 크다고 생각하여 개발 과정에서 많이 바꾸었다. 

 

드디어 최종 데이터 베이스, 총 2개의 큰 테이블로 구분할 수 있고 세분화된 모습을 작성해보았다. 

 

 

📀 사용자 데이터 베이스 / 📀  스터디룸 데이터 베이스 예시

 

 

 

 

 디자인은 많이 신경을 쓰지 않아 DB가 프로젝트의 뼈대나 마찬가지기에 조금 길어졌다. 또한 프로젝트를 진행한 노트북 파손으로 인해 현재 소스를 다운받지 못한 상태이다 ..! 우선 DB에 관한 내용을 다루고 다음번 포스팅에 코드 소개하는 포스팅을 작성하도록 하겠다 ~ 


'[개발]' 카테고리의 다른 글

[AWS] S3과 버킷  (0) 2024.05.19
[JAVA] JDBC 프로젝트  (1) 2024.01.26