SSAFY 특화 프로젝트
팀 마타(A506)
MATA 링크 : 대시보드 링크
소개 영상 보기 :
프로젝트 진행 기간
2023/02/20 ~ 2023/04/07
MATA 는 무엇인가요?
Our Vision
웹 페이지의 UX를 향상시키기 위해 고객의 동선을 파악하여
고객 여정 지도를 그리는 것은 비즈니스 차원에서 필수입니다.
서비스에 접근하는 모든 고객의 동선을 수집하여 이를 자동화 하고
클라이언트의 각종 업무를 돕는것이 MATA의 역할입니다.
Our Solution
웹 사이트 이용자의 사이트 내 동선 데이터를 수집합니다.
수집된 데이터를 처리, 변환하여 적재합니다.
사이트 관리자 및 운영자에게 사이트 내 흐름에 대한 시각화 정보를 제공합니다.
Our Value
웹 사이트의 발전과 성장을 위한 인사이트를 제공합니다.
주요 기술
Data cluster - Hadoop Ecosystem
Hadoop
Zookeeper
Kafka
Spark
Cassandra
Hive
Airflow
MySQL
Backend - Spring
Spring Boot
Spring Web
JPA
JDBC Template
JWT
Spring Security
Spring for Kafka
Frontend
Vue
Bootstrap
Database
MySQL
Redis
Hive
CI/CD
AWS EC2
NginX
Jenkins
Docker
Docker Compose
프로젝트 아키텍쳐
디렉토리 설명
react-app
•
React 애플리케이션
•
웹사이트 로그 생성 역할
•
테스트용 서버
bigdata-api
•
Springboot 애플리케이션
•
React 앱 혹은 html에서 전달된 데이터를 받아오고 접근 권한을 부여하는 역할
•
Kafka server에 데이터를 넘겨주는 역할
•
Hive, MySQL 등 DB에서 API를 통해 데이터를 조회하는 역할
vue3
•
Vue 애플리케이션
•
대쉬보드 페이지 서버
hadoop-cluster
•
Hadoop Ecosystem 스크립트
•
Kafka, Hive, Airflow 등 다양한 툴을 가지는 분산 데이터 플랫폼
•
Docker 기반 분산 운영
Docs+
•
개인공부, 회의록 등 문서를 정리한 공간
디렉토리 구조
Frontend
FRONTEND\VUE3\SRC
├─assets
│ ├─base
│ ├─images
│ │ └─flags
│ └─sass
│ ├─apps
│ ├─authentication
│ ├─components
│ │ ├─cards
│ │ │ └─_card
│ │ ├─tabs-accordian
│ │ └─timeline
│ │ └─_timeline
│ ├─drag-drop
│ ├─elements
│ │ └─_infobox
│ ├─font-icons
│ │ └─fontawesome
│ │ ├─css
│ │ └─webfonts
│ ├─forms
│ ├─pages
│ │ ├─coming-soon
│ │ ├─error
│ │ ├─faq
│ │ └─privacy
│ ├─tables
│ ├─users
│ ├─widgets
│ └─_structure
├─components
│ ├─layout
│ └─plugins
├─composables
├─layouts
├─locales
├─router
├─store
└─views
├─apps
│ └─invoice
├─auth
├─charts
├─pages
└─users
Plain Text
복사
Backend
BACKEND\BIGDATA-API
├─mata-api-server
│ └─src
│ └─main
│ ├─java
│ │ └─com
│ │ └─ssafy
│ │ ├─common
│ │ │ └─exception
│ │ │ └─dto
│ │ ├─config
│ │ │ └─sercurity
│ │ └─controller
│ └─resources
├─mata-hive
│ └─src
│ └─main
│ └─java
│ └─com
│ └─ssafy
│ ├─config
│ ├─entity
│ ├─repository
│ └─service
├─mata-mysql
│ ├─META-INF
│ └─src
│ └─main
│ ├─java
│ │ └─com
│ │ └─ssafy
│ │ ├─common
│ │ │ └─validation
│ │ ├─dto
│ │ │ ├─member
│ │ │ │ ├─exception
│ │ │ │ ├─request
│ │ │ │ └─response
│ │ │ └─project
│ │ │ ├─exception
│ │ │ ├─request
│ │ │ └─response
│ │ ├─entity
│ │ │ └─enums
│ │ ├─repository
│ │ │ ├─member
│ │ │ └─project
│ │ ├─service
│ │ └─token
│ └─resources
│ └─META-INF
Plain Text
복사
Data Cluster
FRONTEND\VUE3\SRC
├─client
│ └─notebook
│ └─.ipynb_checkpoints
├─lib
│ ├─apache-airflow-2.5.0
│ │ ├─conf
│ │ ├─dags
│ │ │ ├─lib
│ │ │ │ ├─extract
│ │ │ │ │ └─__pycache__
│ │ │ │ ├─spark
│ │ │ │ └─__pycache__
│ │ │ └─__pycache__
│ │ └─logs
│ ├─apache-cassandra-4.0.8
│ │ └─conf
│ ├─apache-flume-1.11.0-bin
│ │ └─conf
│ ├─apache-hive-3.1.3-bin
│ │ └─conf
│ ├─apache-zookeeper-3.7.1-bin
│ │ ├─conf
│ │ └─sbin
│ ├─hadoop-3.3.4
│ │ └─etc
│ │ └─hadoop
│ ├─kafka_2.12-3.4.0
│ │ ├─config
│ │ └─sbin
│ └─spark-3.3.2-bin-hadoop3
│ ├─conf
│ └─jobs
├─node
└─sbin
Plain Text
복사
협업
Jira 를 통한 협업
•
프로젝트를 진행하며 1주당 하나의 스프린트, 총 5개의 스프린트를 진행
•
한 주의 시작마다 인당 총 40시간의 이슈를 생성하고 스프린트를 시작
•
1~4시간의 이슈를 생성하여 작업을 시작할 때 마다 해당 이슈를 진행중 표시
•
작업이 완료 되면 해당 이슈를 완료 표시 한 후, 다음 작업을 진행
•
한 주의 마지막에 스프린트를 종료하여 리뷰하는 시간을 가짐
Gitlab 을 통한 협업
•
master, develop, feature의 git flow 브랜칭 전략을 통해 작업 브랜치를 분할 관리
•
새로운 기능 개발이나 버그픽스를 위해 feature 브랜치를 사용
•
개발 현황을 병합하고 새로운 개발 브랜치를 분기하기 위해 develop 브랜치를 사용
팀원 역할 분배
이태희 (팀장)
Frontend Backend System
•
데이터 플랫폼 아키텍쳐 설계
•
데이터 플랫폼 구축
•
Kafka Producer 개발
•
실시간 ETL 파이프라인 개발
•
배치 ETL 파이프라인 개발
•
리눅스 개발 환경 개선
김태영
Frontend Backend Data
•
Spring boot 기반 회원, 프로젝트 도메인 API 작성
•
Vue3 기반 히트맵 컴포넌트 개발
•
Cassandra To Hive를 위한 Spark스크립트 작성
•
UCC 제작
•
ERD 제작
김호성
Frontend Data
•
vue app 개발
•
vue plotly 기반 대시보드 컴포넌트 개발
•
UCC 제작
•
Cassandra To Hive를 위한 Spark스크립트 작성
박건우
Frontend Backend
•
vue3 차트 컴포넌트 개발
•
backend api 테스트
•
영상 편집
이인재
Frontend Backend Data Mart
•
MySQL, Hive ERD 설계
•
Spring boot 기반 회원, 프로젝트 도메인 API 작성
•
Hive 대용량 데이터 조회 쿼리 작성
•
Vue3 기반 대시보드 컴포넌트 개발
•
서버 대여 (3월 지출 비용 약 270,000원, 4월 현재(23/04/06) 70,000원)
정준호
Frontend Backend Data Workflow
•
데이터 플랫폼 아키텍쳐 설계
•
Data Workflow 자동화
•
배치 ETL 파이프라인 개발
•
Hive 데이터 조회 쿼리 작성
•
Vue3 기반 여정지도 컴포넌트 개발
•
Hive ERD 설계
프로젝트 산출물
포딩매뉴얼
ERD
API 명세서