마이리폼(1), DB 설계와 API 설계

2023. 1. 19. 16:41프로젝트/마이리폼

728x90
반응형

마이 리폼 시작기

 

기존에 활동하던 UMC에서 프로젝트를 시작했다.

 

UMC에서 방학 중에 진행하는 프로젝트는 같은 지부에 있는 사람들과 함께 어플을 개발하는 식으로 진행된다.

 

여러가지 아이템 중 '마이 리폼'이라는 서비스가 가장 타켓팅이 잘 되어있다고 느껴서 매력적으로 다가와서 이를 지원하고 함께 프로젝트를 진행하게 됐다.

 


 

나는 일정이 있어서 팀 회의에 참석하지는 못했지만 팀 회의 다음날까지 파트장을 구해야했기에 다음날 바로 파트장 선발을 위한 회의를 진행했다.  파트장에 지원하는 분이 없어서 파트장은 제비뽑기로 선발되었다.

 

사실 파트장에 지원할까 했지만 지금 알바를 빡세게 하고 있기도 하고 우테코 5기에 최종합격돼서 조만간 바빠질 것으로 생각돼서 지원을 못했다. ㅠㅠ

 


 

파트 분담

 

어쨋든 그러고 며칠 뒤 역할 분담을 진행했는데, 첫 파트 분담은 총 네가지 분야가 있었다.

 

우선 '연동' 파트가 있었다. 이 파트는 백엔드와 프론트엔드와의 통신이 가능하도록 지원하는 파트였다. 지금와서 생각해보면 사실 개발한 코드가 없어서 굳이 이 파트가 필요했을까하는 생각이 든다.

 

두번째와 세번째는 OAUTH를 활용해 애플 로그인과 카카오 로그인을 개발하는 것이었다. 

마지막으로 네번째는 DB 설계와 API 설계를 맡는 것이었다. 

 

애플 로그인과 카카오 로그인은 구글링을 해봐도 많이 나오기도 하니까 별로 하고 싶은 생각은 없었다. 그리고 연동 파트도 환경설정하는 것처럼 코드 작성보단 귀찮은 일들을 많이 담당할 것 같아서 그닥 구미가 당기지는 않았다. 그래서 기왕 해보는거 DB 설계와 API 설계부터 차근차근해보고 많이 배우자는 생각으로 DB 설계와 API 설계 파트를 지원했다. 

 

 


 

DB 설계

기간은 1주일 정도 있었다. PM님이 작성하신 use case나 기능 명세서 등을 확인하고 필요한 db 정보가 무엇이 있을지, API 설계해야하는 부분이 어떤게 있을지 고민을 많이 했다. drawio와 같은 사이트에서 er 다이어그램을 그리는 것이 아직은 익숙하지 않아서 종이에 그림을 그려가며 내용을 정리한 뒤, 이를 er 다이어그램으로 옮겨 그리는 방식으로 처리를 했다. 

 

혹시나 빼먹은 내용이 있을까해서 비슷한 서비스들에 대해 구글링해가며 DB 설계한 내용을 참고해갔다.

 

DB 1차 설계

 

그런데 대면 회의 때 구현하고자 했던 기능들 중 일부를 구현하지 않기로 결정했다고 해서 몇몇 테이블을 제거했다. 그리고 테이블을 하나씩 본 뒤, 데이터 타입도 다수의 의견을 반영해 변경했다.

 

API를 만들고 있는 지금도 사실 DB 컬럼명의 일관성이나 DB와 API명의 일관성이 떨어지는 부분이 있어서 계속 수정을 해나가고 있다.

 

 

DB/API 설계

 


 

API 설계

 

API도 마찬가지로 처음 작성했던 것에 비해 사라진 것들이 많다. 이는 핵심 기능을 우선적으로 선발해서 그에 대한 API를 추가하는 식으로 진행했다. 

회의를 진행하면서 추가되는 api나 삭제되는 api, 보류 중인 api 등을 구분해갔다. 깃과는 다르게 문서에 대한 히스토리를 기록할 수 없어서 노션에서 변경되는 사항이 있을 때마다 추가하고, 색을 통해 삭제되는 api나 보류 중인 api를 구분했다. 

 

사실 2월달부터 조금 더 큰 프로젝트를 진행하는데, 혼자서 백엔드를 맡기로 해서 일부러 조금 힘들어보이지만 중요한 파트를 자원했다. 할 때는 계절학기 시험과 겹쳐서 조금 힘들었는데 지금 와서 보니까 하길 잘한 것 같다.

 

728x90
반응형