심화 주차 동안 개인과제와 개인공부를 끝내고 드디어 팀 프로젝트 시간이 다가 왔다.
오늘은 팀 프로젝트 과제 발제 하는 날이었다.
새로 구성된 팀원들과 함께 발제가 끝나고 회의를 하면서 협업을 위한 기초 규칙부터 와이어프레임, ERD작성, API 명세서 그리고 역할 분담까지 했다.
이번 과제 내용은 BackOffice
서비스를 구현하는 것인데, 우리는 배달의 민족
으로 가장 유명한 음식 배달 서비스를 구현해보고자 한다.
또 새로 사용해야 할 기술이 몇 가지 생겼기 때문에 과제 기간동안 많이 막히고 힘들어 할 것임이 틀림없지만 항상 도전적인것을 하고 결국 해냈을때 내가 성장한 모습을 보는 것이 그렇게 재밌다.
그동안 Node.js
와 express
로 기본적인 CRUD부터 RefreshToken까지 여러가지 기술을 구현 해봤지만 이번에는 Transaction
을 주문 결제 로직에 적용하는 새로운 작업을 할 것 같다.
먼저 우리는 프론트가 될 와이어 프레임을 만들었다
사용한 도구는 miro
라는 처음 보는 도구로 만들었다.
저번주 기간동안 게임 프로젝트를 구현하기 위해서 Figma
를 처음 사용해 보고 익숙해졌다 했지만 팀원들은 Miro
로 사용하길 원해서 사용해봤지만 피그마랑 딱히 다른점은 없었다.
굳이 다른점을 찾는다면 Figma
가 더 옵션을 적용해서 커스텀할 수 있는 범위가 넓다는 점?..인것 같다
로그인 부터 시작해서 각 페이지별로 구현되는 과정을 연결하기 위해 화살표로 로직의 흐름을 구성해봤다.
그동안 간단한 게시판 crud만 작성해봤기 때문에 관계 설정이 조금 복잡해진 테이블을 작성하려고 하니까 낯설고 어려운 부분이 많았다.
사업자 계정과 일반 계정을 각 테이블로 구성해서 구현하려고 했으나, 튜터님께 찾아가 중간 점검을 받은 결과 enum을 적용해서 USER테이블을 하나로 묶어서 구현해주는 방법이 좋다고 하셨고, 그 말대로 db를 다시 구성했다.
작성된 ERD를 기준으로 팀원들과 역할 분배를 마친 뒤 각자 맡은 역할대로 API명세서를 작성하기로 했었고 나는 메뉴 CRUD를 먼저 하기로 했었고, 하던 대로 요청 응답에 맞춰 작성했다.
프로젝트를 위해 팀원들과 github
을 협업툴로 사용하기로 했다.
먼저 Repository
를 만들고 기초 파일을 세팅해 둔 다음 팀원들에게 배포했다.
폴더 및 파일 구성은 가장 기본 상태로 만들어 뒀고 이번 프로젝트때는 Layered Architecture
를 이용하여 코드작성을 할 것 이다.
백엔드 구현에 이용할 도구
Node.js
Express
Prisma
MySQL
개발에 필요한 기본적인 패키지 세팅도 이렇게 했다.
.env에AWS RDS
를 이용해 DB연결 및 배포를 위해서 연결도 해 둔 상태이다.
기본적인 세팅이 끝났고 본격적으로 API구현을 시작한다!
깔쌈하십니다~