Metabase로 애널리틱스 대시보드 구축하기

2025. 5. 22. 22:11·프로젝트/빼곡

<빼곡> 서비스 운영에 있어 BI의 필요성을 크게 느꼈다. 일단 팀원들은 DB접근권한이 없다보니 실제 가입자수가 몇명인지, 회독 등 기능 이용이 잘 되고있는지 파악하고 싶어했는데 매번 내가 DB를 열어서 확인해주는건 너무 불편하다고 느꼈다ㅎㅎ

 

그래서 애널리틱스 시각화를 뭘로 만들까 고민을 많이 했다.

1. DataDog - APM분석과 함께있으면 편하지 않을까? 하고 조사해보니, 비즈니스 분석은 메트릭수집을 통해 만들게 되는데 아무래도 메트릭 누락 등의 이유로 비즈니스 분석에는 정합성에서 큰 문제가 있을것같았다.

2. Grafana - 대시보드를 만드는덴 특화되어 있으나, 시계열 모니터링과 알림이 주 목적이라 내 목적과는 차이가 있었다.

3. Tableau - 기업에서 많이 사용하는것 같긴 한데, 아무래도 유료구독이 필수적일것같아 제외했다.

 

결론적으로, Metabase라는 간단한 오픈소스SW를 통해서 애널리틱스를 만들기로 결정!

 

 

설치

현재 내 홈서버의 인프라 구조들은 docker를 통해 구현되어있기 때문에 metabase도 docker를 통해 간단하게 설치했다.

 

1. docker image로 받기위해 docker-compose에 선언하기

  metabase:
    image: metabase/metabase:v0.53.16
    platform: linux/arm64
    ports:
      - "3000:3000"
    restart: unless-stopped
    environment:
      - MB_JETTY_SSL=true
      - MB_DB_FILE=/metabase-data/metabase.db
      - MB_SITE_URL=${ANALYTICS_DOMAIN_NAME}
    depends_on:
      - db
    volumes:
      - metabase-data:/metabase-data
    networks:
      - prod-network
      - proxy-network

 

 2. 외부 접속을 위한 설정하기

- 홈서버기에 포트포워딩 및 DNS연결이 필요했다.

 

 

 

기본적인 대시보드 구성하기

 

위 작업을 통해 Metabase를 간단히 띄울 수 있었다. 이제 접속 후 대시보드를 구성하면 된다.

 

 

sql이 생소한 팀원들도 간단히 작업할 수 있도록 GUI기능을 제공하는게 좋았다. 다만 나는 SQL쿼리 짜는게 훨씬 빠르니까...ㅎㅎ 위와같이 new SQL query를 이용해 직접 작성해서 구성했다. 

 

 

Overview 및 분석컴포넌트 일부 발췌


나는 세가지 대시보드 페이지로 나누었다. Overview, 사용자분석, 독서분석이다.

이를 통해서 가입현황 그래프, 장르분석, 가입유형 분석 등 비즈니스 분석에 필요한 다양한 지표를 생성할 수 있었다.

이 시각 컴포넌트가 꽤 다양하게 제공되고 있어서 각 주제 특성에 맞게 선택할 수 있었다.

 

 

팀원과 공유하기

제일 중요한건 이런 내부 지표의 유출을 막기 위해 접근권한을 제어하는것이다. 구글링으로 잘 안나와서 좀 힘들었다...ㅋㅋㅋㅋ

일단 Metabse는 기본적으로 Admin과 All Users로 구분되어있다. 나는 팀원들의 DB 접근권한을 없애고, 대시보드 조회권한만 갖도록 구성하려고 했다.

 

그러기 위해선 설정에서 다음과 같은 순서를 따라야한다.

  1. Admin권한으로 Admin Settings를 선택 > People > Groups 탭을 선택한다.
  2. 그룹별로 접근권한 을 설정할 수 있다. 나는 team 권한을 만든 뒤 위 권한만 주려고 했다. 참고로 내가 만든 그룹이 낮은 권한이더라도, 만약 그 사용자가 또다른 더 높은 권한을 가지고 있다면 더 높은 권한으로 select 되기 때문에 모든 권한을 적절히 수정해야함!!
  3. 다시 People탭으로 돌아가서 팀원을 추가한다. Groups 칼럼의 권한도 방금 만든 그룹으로 적절히 수정해준다. Email(ID) 및 이름을 추가하면 초기비번이 자동생성 되므로, 이걸 팀원에게 알려준뒤 알아서 비번 바꾸세요~ 하면 된다.



 

이렇게 Metabase를 통해 애널리틱스 대시보드를 구현하고, 팀원들과 공유할 수 있었다. 직관적인 사용법, 그리고 보기 편한 시각화가 제공되는 BI 툴이기 때문에 빠르게 애널리틱스를 만들고 싶은분들께 적합한 기술이라고 느꼈다!

 

사실 대시보드 구축 전에는 사용자들이 이렇게 꾸준히 들어오고 있다는것을 몰랐었는데... 구축후에 시각적으로 확인 할 수 있게되니 더욱 뿌듯하고 내 서비스에 애정이 가게 되었다ㅎㅎ 동기부여의 역할까지 얻게된것같다...ㅋㅋㅋㅋ 굿!

 

 

 

'프로젝트 > 빼곡' 카테고리의 다른 글

crontab으로 DB 백업 자동화하기  (2) 2025.07.08
Nginx 리버스 프록시 구현을 통해 엔드포인트 분리하기  (0) 2025.06.04
Bean일까 Util일까, CookieUtil 리팩토링하기  (1) 2025.03.08
빼곡 스토어 출시! 그리고 개선방향(feat.코드리뷰)  (1) 2025.03.08
Spring 명시적 Null값으로 부분 업데이트(PATCH) 구현하기  (9) 2025.01.02
'프로젝트/빼곡' 카테고리의 다른 글
  • crontab으로 DB 백업 자동화하기
  • Nginx 리버스 프록시 구현을 통해 엔드포인트 분리하기
  • Bean일까 Util일까, CookieUtil 리팩토링하기
  • 빼곡 스토어 출시! 그리고 개선방향(feat.코드리뷰)
▹ 서현서현
▹ 서현서현
좋아하는걸 마음껏하는 백엔드 개발자😎
  • ▹ 서현서현
    Circus
    ▹ 서현서현
  • 전체
    오늘
    어제
    • 분류 전체보기 (35)
      • 회고 (2)
      • 프로젝트 (22)
        • 빼곡 (11)
        • SEMENTO (2)
        • FindDog (1)
        • 척척약사 (1)
        • 차곡차곡 (2)
        • 원더웨이 (3)
        • 트래블 캐리어 (2)
      • 알고리즘 (4)
      • 기타 (2)
      • CS (4)
        • Spring (2)
        • 대규모 시스템 설계 (2)
  • 링크

    • 👾 Github
    • 🧩 Algorithm
  • 공지사항

    • 블로그를 이전했습니다 💖
  • 인기 글

  • hELLO· Designed By정상우.v4.10.1
▹ 서현서현
Metabase로 애널리틱스 대시보드 구축하기
상단으로

티스토리툴바