프로젝트/관련 스터디

[돈독한 가계부_01] 프로젝트를 위한 DB 설계 여정_어렵다!

단ee 2024. 11. 4. 17:05

이제는 때가 됐다. 

백엔드 개발을 배울 때가......아아악  한 번 더..? 아니다

 

ERD요....? 오랜만에 자격증 책에서 이론을 찾아보자...


 

우리 팀에 백엔드 개발자는 없어서 자연스럽게 사용자가 입력할/입력 받아야할 DB 구조는 내가 작성하게 됐다.

 

데이터를 뽑아서 분석하는 건 해봤지만 설계...?? 

개발자는 본업도 개발이고 취미도 개발이랬는데... 혹시 이제 취미로 백엔드 개발을 시작해야하는걸까...

 

 

짧게 고민을 했지만 다행스럽게도 가계부는 많은 레퍼런스가 존재하기 때문에, 참고해서 초기 버전을 대강 그려보았다. 

 

아래는 레퍼런스를 참고해서 최초로 작성한 컬럼정의서.

결국 가계부에 기입해야 하는 내용이 입/출금 내역인 경우가 많아 금융 어플에서 제공하는 엑셀 내보내기 기능에서 생성되는 데이터 구조를 많이 참고했다.

 

처음에는 수입내역과 지출내역을 하나의 시트에 기입하게 만들 생각이었다. 결과물에서는 분리함.

 

 

다른 블로그들을 참고해보았지만... 이것만 보고 정석적인 DB를 뚝딱뚝딱 설계할 수는 없었고, 

어떤 테이블이 서로 어떻게 관계를 가져가게 할지, 그리고 함수나 쿼리로 어떻게 연동할 지 참고하기 위해 대강의 스키마 정도만 그려보기로 했다.

 

 

작업 초반에는, 지금까지 부트캠프에서 여러 데이터 분석 프로젝트를 하면서 봤던 데이터들의 구조가 떠올랐기 때문에 카테고리마다 ID를 부여해서 그걸 key로 삼을까 고민했었다. 

 

하지만 1년치 데이터를 다 채운다 하더라도 3천행이 넘지 않을 것 같았고(하루에 8번씩 매일 카드를 긁어야 3천행을 만들 수 있다...), 구글 시트의 함수와 피벗테이블을 많이 사용할텐데 일일히 테이블 조인으로 연결하는 게 더 수행할 연산이 많아질 것 같아서 별도의 ID를 부여하진 않았다. 

 

 

위의 스키마까지 간단히 작성해보고 바로 아래처럼 와이어프레임을 그려보았다. 

최종 결과물의 화면과는 많이 달라지긴 했지만, 그래도 처음에 배치나 구조를 잡을 때 유용했다.

 

 

 

 

 

참고한 사이트