URL : https://todayapi.click/api-docs ( 수시로 개발되고 있으므로 접속이 원활하지 않습니다. )
네이버 뉴스를 메인으로 필요한 정보를 가져와 인공지능 분석을 통해 필터링하고 간단하게 보여주는 협업 프로젝트로서 작업자는 백엔드 작업에 대한 전반적인 부분을 작업하려고 한다. 3개의 파트로 나뉘며, 나를 포함한 3명의 개발자와 함께 작업할 예정이다.
메인이 되는 [언어스택]은 아래와 같다. [Frontend] Flutter [Backend] Node.js - Express - Mysql ( + MongoDB ) [Engine] Python - Tensorflow
Node 파일 구조는 아래와 같다.
| 1depth | 2depth | 3depth | 내용 |
|---|---|---|---|
| server/ | |||
| controller/ | 주요 기능이 개발되는 파트 | ||
| lib/ | 공통사용 모듈 | ||
| models/ | DB와 직접 연동하여 쿼리를 전송하는 파트 | ||
| routes/ | GET, POST 등의 요청을 라우팅 | ||
| src/ | Swagger 관련 파일 | ||
| .env | 환경변수 값을 지정 (dotenv) |
- MongoDB
node.js에서 json 데이터를 관리하는 데에 적합한 데이터베이스는 MongoDB가 Mysql보다 적합 할 것으로 판단된다. 현재 어떤 컬럼이 발생할지 모르는 상태에서 데이터가 들어온 경우 데이터 구조를 수시로 바꾸는 경우가 발생하고 있어 회원 정보 등의 신뢰성이 필요한 데이터를 제외한 뉴스등의 대용량 데이터는 MongoDB를 차용하려고 한다.
- Mongoose
데이터 스키마의 일관성을 위해 ODM을 사용한다.