1. 대시보드에서 나타내야 할 것
- 기간에 따른 사용자 수
- 인기글 리스트
- 유입 경로 및 채널
- 유입 키워드
- 유입자 현황 차트 (척도 : 기간, Refere URL, 컨텐츠, 디바이스)
2. 추가 구현하고 싶은 것
- 전날 유입자 통계를 카카오톡으로 알림 받기
- 현재 학습하고 있는 OAuth2.0을 이용하여 대시보드 사이트 인증
- 일일 평균 유입자 현황
- 현재 기능별로 레포지토리가 분리되어있고, kafka broker에 다양한 로그들을 수집할 예정이기 때문에 향후 kubernetes를 적용할 예정
3. 사용할 기술
- DB : DynamoDB or MongoDB (조회성이 많기 때문에 RDB보다 NOSQL이 낫다고 판단) with JPA
- Message Broker : Apache Kafka (Topic은 YYYYmmDD 형식 사용, content는 json형식의 로그데이터 / 일일 배치로 DB BulkUpdate)
- Framework : spring boot with jstl (다른 가벼운 것을 써도 되지만, 학습 차원에서 사용하도록 한다.)
- 언어 : Java1.8
- 인증 : Oauth2.0(Spring Security 사용 예정), jwt
4. 수집해야할 정보
- 블로그 유입자들이 클릭한 컨텐츠
- 유입 시간대
- 블로그를 조회한 Referer URL
5. 아키텍처 구성도
6. 참고 문헌
- KISA 고시 및 권고 : www.kisa.or.kr/public/laws/laws2.jsp
- Apache Kafka Documentation : www.kafka.apache.org/documentation/
- RFC6749 : www.tools.ietf.org/html/rfc6749
7. 수정 로그
2020.05.13 : 최초 작성
2020.05.20 : 아키텍처 다이어그램 추가 완료
2020.06.11 : 아키텍처를 AWS로 옮기는 중, 불필요한 로드밸런서 개수와 외부 노출 서비스의 도메인 연결로 인해 아키텍처 수정중.
2020.06.16 : 서비스별 로드밸런서 아키텍처 적용 및 향후 계획(kubernetes 적용 예정) 추가
2020.06.30 : 운영 환경을 생각하고 설계할 것이기 때문에 kafka와 zookeeper를 분리하는 아키텍처 적용 예정
2020.07.01 : Zookeeper Cluster 구성 완료
'IT > 삽질 로그' 카테고리의 다른 글
[삽질 프로젝트 설계] 티스토리 유입자 대시보드 만들기 - NOSQL 설계 초안 (0) | 2020.06.09 |
---|