먼저 정리 하기 전 엔티티 구성은 별로였기에 정규화 과정을 했습니다. 또한, api는 데이터베이스를 MongoDB가 코스트 측면에서 유리할것으로 확인했습니다. 왜냐하면 조회능력이 뛰어나고 저장시 mysql보다 정형적이지 않기 때문에 여러가지 api를 가져와서 사용할수있기 때문입니다.
정리하자면 여러가지 api를 사용해야하기 때문에 범용성 측면에서 MongoDB가 효율적이라고 판단했습니다.
따라서 유저서비스나 게시판 그리고 댓글은 mysql을 사용하고 api에서 가져오는 정보는 mongoDB를 사용하여 두가지 트랙으로 진행하는것으로 정리했습니다.
따라서 api를 분석해보겠습니다.
Available resources
| Area | List one particular area. | /v4/areas/{id} | - | Open |
| Areas | List all available areas. | /v4/areas/ | - | Open |
| Competition | List one particular competition. | /v4/competitions/PL | - | Open |
| Competition | List all available competitions. | /v4/competitions/ | areas={AREAS} | Open |
| Competition / Standings | Show Standings for a particular competition. | /v4/competitions/{id}/standings | matchday={MATCHDAY} season={YEAR} date={DATE} |
Open |
| Competition / Match | List all matches for a particular competition. | /v4/competitions/{id}/matches | dateFrom={DATE} dateTo={DATE} stage={STAGE} status={STATUS} matchday={MATCHDAY} group={GROUP} season={YEAR} |
Open |
| Competition / Teams | List all teams for a particular competition. | /v4/competitions/{id}/teams | season={YEAR} | Open |
| Competition / (Top)Scorers | List top scorers for a particular competition. | /v4/competitions/{id}/scorers | limit={LIMIT} season={YEAR} |
Open |
| Team | Show one particular team. | /v4/teams/{id} | - | Open |
| Team | List teams. | /v4/teams/ | limit={LIMIT} offset={OFFSET} |
Open |
| Match | Show all matches for a particular team. | /v4/teams/{id}/matches/ | dateFrom={DATE} dateTo={DATE} season={YEAR} competitions={competitionIds} status={STATUS} venue={VENUE} limit={LIMIT} |
Open |
| Person | List one particular person. | /v4/persons/{id} | - | Open |
| Person / Match | Show all matches for a particular person. | /v4/persons/{id}/matches | dateFrom={DATE} dateTo={DATE} status={STATUS} competitions={competitionIds} limit={LIMIT} offset={OFFSET} |
Open |
| Match | Show one particular match. | /v4/matches/{id} | Open | |
| Match | List matches across (a set of) competitions. | /v4/matches | competitions={competitionIds} ids={matchIds} dateFrom={DATE} dateTo={DATE} status={STATUS} |
Open |
| Match / Head2Head | List previous encounters for the teams of a match. | /v4/matches/{id}/head2head | limit={LIMIT} dateFrom={DATE} dateTo={DATE} competitions={competitionIds} |
Open |
이를 기반으로 api 조회의 시간을 필요한 5대리그만 00시에 조회를 하고 라이브 경기는 1분에 한번 조회하는 형식으로 무료플랜에 적합하게 하겠습니다.
그러려면 일단
전체 조회 1회 라이브 조회 각 분당 10회 정도로 6초의 지연시간만 만든다. 이렇게 하면 될듯하다.
또한,
다른 api를 보자
https://developer.sportradar.com/
Awards List
MLB Awards List provides a list of all MLB awards available in the API.
developer.sportradar.com
여기에서는 실시간 업데이트가 없는 것으로 보이니 하루에 한번 업데이트 하는것으로 하는 것이 좋아 보인다.
자 다음 2단계 -1 에서 직접 코딩에 들어가보도록 하자
'프로젝트 한걸음 더' 카테고리의 다른 글
| 정보처리기사 준비하다가 프로젝트 리펙토링 1단계 스타트 (4) | 2025.07.31 |
|---|---|
| 정보처리기사 준비하다가 프로젝트 리펙토링 1일차 (3) | 2025.07.31 |