[한화시스템 BEYOND SW캠프 7기] DB Project _ HeathCheck

아로롱·2024년 6월 6일

BEYOND SW CAMP 7

목록 보기
17/30
post-thumbnail

https://github.com/beyond-sw-camp/be07_1st_3team_healthcheck

✔️ 프로젝트 개요

개인 건강 관리 / 운동 기록 등의 기능을 가진
가상 헬스 어플의 데이터 베이스 구축하기.


🏗️ DB 설계

WBS 작성

초반에는 크게 틀만 잡은 뒤, 테이블을 구체화하면서 담당자를 제대로 배정했다.

목표 : 운동 목표를 설정하고 기록하며, 현재 내 몸의 상태를 확인할 수 있는 운동 관리 시스템.
친구, 게시판 등 소셜 기능도 함께 이용할 수 있다.

요구사항 명세서 작성

User

  • 회원 기능 ) 어플에서 마이페이지에 들어간다면 ?
    • 회원가입 / 정보 수정 / 탈퇴 / 로그인 / 로그아웃 / 아이디, 비밀번호 찾기
  • 회원 상세 ) 어플 사용을 위해 체중, 근육량 등 회원의 정보를 기록.
    • 회원 상세 정보 입력 / 회원 상세 조회 / 회원 상세 정보 삭제

Device

  • 디바이스 ) 애플워치, 갤럭시워치, 갤럭시핏 등 기기를 통해 운동 기록 가져오기.
    • 기기 등록 / 등록한 기기 조회 / 기기 삭제
  • 목표 설정 ) 이 어플을 통해 나는 체중 감량? 근육량 증가?
    • 목표 등록 / 목표 조회 / 목표 수정 / 목표 상태 변경 / 목표 삭제

Exercise

  • 운동 기록 ) 오늘한 운동을 어플에 등록하자.
    • 운동 기록 등록 / 운동 기록 조회
  • 진행 상황 ) 목표까지 얼마나 진행되고 있는가?
    • 진행상황 등록, 수정 / 진행상황 조회
  • 영양 관리 ) 오늘 나의 섭취 정보를 등록, 조회하기.
    • 영양 섭취 입력 / 수정 / 삭제 / 내 섭취 내역 조회(섭취 전체) / 칼로리 조회
  • 프로필 ) 친구, 게시판 등의 기능에서 활용할 내 프로필.
    • 프로필 생성 / 프로필 조회 / 프로필 수정
  • 친구 ) 친구와 목표, 진행 사항 공유하기.
    • 친구 추가 / 친구 목록 조회 / 친구 목표 조회 / 친구 진행 상황 조회 / 친구 삭제
  • 게시글 / 댓글 / 쪽지 ) 소셜 기능 활용하기.
    • 게시글 조회 / 검색 / 댓글 작성 / 조회 / 쪽지 발송 / 수신, 발신 조회

✍🏻 데이터베이스 구축

테이블 생성


작성한 명세서에 맞게 테이블과 컬럼 생성.
굳이 사용하지 않는 컬럼이 추가되지 않도록 실제 어플을 사용하고 있다고 가정하였다.
요구사항 명세서를 작성하면서 틀을 제대로 잡아둔 덕분에, 테이블 생성 시 큰 변동사항 없이 목적에 맞는 테이블만 생성할 수 있었다 !

각자 작성한 생성문을 공유하는 과정에서 수정사항을 발견하면 alter 문을 작성, 공유하여 함께 수정하였다.
칼로리, 근력 등의 값을 decimal(10,2) 와 같이 소수점으로 구체적으로 작성하였다가 계산 효율성을 위해 int로 변경하였다.

데이터 삽입




회원 정보와 운동 목표를 반영해 진행 상황을 계속해서 업데이트 해주어야 하는 연동 사항이 있기 때문에,
FK가 제대로 연결되었는지의 여부와 프로시저 작동 테스트를 위해 우선 생성된 각 테이블에 데이터를 삽입하였다.

프로시저 작성


작성한 프로시저가 잘 작동하는지, 전 후 비교 캡쳐본을 공유해 확인하였다.
특히 신경 써서 작성했던 부분은
목표가 수정되었을 때 진행사항 또한 업데이트 되는지인바디 업데이트 등으로 회원의 디테일한 데이터가 수정되었을 때 진행사항에 잘 반영이 되는지 였다. progress테이블이 우리 프로젝트의 테이블 중 핵심 테이블이었다.


📢 Github README.md 작성


개요, 기술 스택, 팀원 소개 등 프로젝트 깃허브에 리드미 파일을 정리해 작성하였다.


☀️ 프로젝트를 마치며


98점으로 1등이라는 결과를 얻었다✨

DB 설계에 대한 기초와 과정

수업만 들었을 때는 DB 설계로 구현할 수 있는 것과
기능으로 구현해야 하는 것의 차이를 명확하게 알고 있지 않았다.
예를 들면, 디바이스 연결에 대한 테이블이나 컬럼 / 쿼리를 작성할 수 있지 않을까? 생각했었는데 데이터베이스의 범주에서 벗어나는 기능이었다!
프로젝트를 진행하며 기능과 테이블 구현에 대해 구분할 수 있게 되었다.

팀원들과의 협업

자기가 맡은 일은 최선을 다 하고, 진심으로 참여하는 멋진 팀원들과 함께 진행하게 되어 진척도도 빠르고 완성도도 높았던 것 같다.
특히나 비전공자인 나는 팀원들에게 폐를 끼치진 않을까 ? 할 수 있는 게 있을까..? 하고 걱정했는데,
"이 부분은 어려우니까 제가 할게요 ~" 보다는 오히려 더
"아영님이 이 파트 맡아서 해보시겠어요 ?" 해주며 나를 끝까지 포기하지 않고
끌고가주는 고마운 팀원들 덕분에 한층 더 성장할 수 있었던 것 같다🥺
오탈자를 찾지 못해 발생한 에러를 해결하기 위해 다같이 머리 맞대고 찾아낸 것은 이번년도에서 가장 보람 있고 기뻤던 사건으로 기억될 것 같다. (소박)

ERD CLOUD JIRA Github 와 같은 실무에서 활용하는 툴들도 사용할 수 있는 좋은 기회였다.

아쉬웠던 점은 디바이스 테이블과 연관해 작성할 수 있는 쿼리문이 더 있었는데 놓쳤다는 것이다. 최종 발표 때 강사님의 질문으로 알게 되었는데, 지적 받았다는 생각 보다는 관련해서 구현할 수 있던 포인트를 하나 놓쳤다는 게 너무 아쉬워 개인적으로 생각하고 작성해보기도 하였다.
또 ERD CLOUD 를 통해 ERD 구현 후 export 로 코드 전환하거나, 코드를 통해 ERD 를 구현할 수 있었는데 우리 조에서는 모두 ERD CLOUD 를 처음 활용해보는 팀원들뿐이라 프로젝트가 끝난 뒤 알게 되었다 ^^;;
시간이 조금 더 걸리긴 했지만 ERD 구현에 대해서는 더 꼼꼼하게 알 수 있었던 좋은 기회였다 ! 그래도 다음 번에는 꼭 활용해보고 싶다.

profile
Dilige, et fac quod vis

5개의 댓글

comment-user-thumbnail
2024년 6월 6일

"98점으로 1등이라는 결과를 얻었다✨" 대박..
강사님의 날카로운 피드백 받으셨군요!!
레포링크도 걸어주시면 좋을것 같아요 ㅋ

1개의 답글
comment-user-thumbnail
2024년 6월 8일

언니 아니었음 저희 오타 못찾아서 직전 에러 포기했을 수도 있숩니다.. 체고아로롱.. ♥️

1개의 답글