일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- char 입력
- MongoServerSelectionError
- 출력 명령어
- fastify
- docker
- DevOps
- 수직확장
- 프로세스
- docker context create
- mysql
- 설치형 SW
- ECS
- comdef
- cli
- 웹 SW
- Java 입력
- fastify-cli
- 코드스테이츠
- zshrc error
- 지속적 전달
- OpenSearch
- 백준
- SSAFY입학
- c++
- 홈 디렉토리
- neofetch
- dfs
- 부트캠프
- ci/cd
- 리눅스
- Today
- Total
다디와 괴발개발
[Project 1 - WAS] 기능 정의서, ERD, Swagger API 문서 제작 본문
조오오금이 아니라 아주 많이 늦게 업로드하지만 드디어 올리는 Codestates DevOps 부트캠프 첫 번째 프로젝트 정리 글!
이번 문서에서는 첫 번째 프로젝트의 목표와 프로젝트 제작을 위해 제작하였던 기능정의서, DB 제작을 위한 ERD, API 통신을 위한 API 문서를 정리해보았다!
목표
- CRUD 기능을 가진 API 서버를 완성합니다.
- 클라우드 서비스 데이터베이스를 사용하여 데이터를 영속적으로 저장합니다.
- 데이터를 모델링하고, API 문서화를 진행합니다.
- Git을 이용한 협업을 진행합니다.
첫 번째 프로젝트인 만큼 목표는 간단하게 로컬에서 돌아가는 WAS 서버를 제작하는 것이다.
DevOps 부트캠프에서는 프론트는 다루지 않기 때문에 프로젝트 목표에 프론트엔드 구현은 포함되지 않는다
기술 스택
- 백엔드 : Node.js (version >= 16), fastify
- 데이터베이스 : MongoDB
- API : Swagger
주제
2022 대선 시즌을 맞아 대선 공약을 랜덤으로 출력하여 사용자가 공약에 대한 찬반을 선택해 나와 가장 잘 맞는 / 잘 맞지 않는 추천 후보 보여주는 서비스
기능 정의
- 사용자는 후보별로 모든 공약을 조회할 수 있다.
- 사용자는 화면에 제시된 공약에 대해 찬, 반으로 투표할 수 있다.
- 사용자는 랜덤한 순서로 각 후보 마다 7개의 공약을 투표할 수 있다. (총 28 문항)
- 사용자는 마지막 화면에서 자신과 가장 잘 맞는 후보와 잘 맞지 않는 후보를 볼 수 있다.
- 사용자의 투표 별 선택 결과와 최종 결과는 데이터베이스에 저장된다.
ERD
ERD는 dbdiagram 사이트를 이용하여 그렸다.
크게 User(유저), Promise(공약), President(대통령 후보)로 구성되어 있다.
User Table에는 유저의 이름과 가장 잘 맞는 후보(best_pres), 잘 맞지 않는 후보(worst_pres)에 대한 정보가 저장된다
President Table에는 대통령 후보의 이름(name)과 당 정보(party)가 들어간다.
Promise Table을 말하기 앞서, 2022 대선 공약의 7가지 카테고리를 구분하기 위해 Promise_category Table을 만들었다.
대선 후보 및 공약 관련 내용은 파이낸셜 뉴스 사이트에서 보고 정리하였다.
대선 공약 7가지 카테고리 항목
Promise Table에는 대통령의 id값, category의 id값과 공약 내용(contents)가 들어간다.
마지막으로 User_Promise 테이블에는 유저가 선택한 항목들을 저장하기 위해서 제작되었으며, 유저 uuid 정보와 선택한 공약에 해당하는 공약 id, 후보 id, 찬/반 여부를 저장하는 choice를 저장한다.
API
API 문서는 Swagger를 통해 정리하였다.
프로젝트 도중 API를 여러번 바꿔서 프로젝트 끝나고나서 다시 만든건 비밀
다시 만들어보면서 Swagger Hub 사용법을 많이 익혔다. Swagger Hub 사용법은 따로 포스팅해보겠다.
'DevOps > Project' 카테고리의 다른 글
[Project 1 - WAS] Fastify-cli 프로젝트 생성 (2) | 2022.06.02 |
---|