<aside> 💡
서버 콘솔 → 데이터 휘발됨
DB 또는 외부 저장소 → 데이터 유지됨
FS (통신을 거치지 않아서 빠르다)RDB (다중 사용자 허용을 통한 로그 집중화)분석 전용 서비스에 바로 전달 → 데이터 유지될 뿐더러 즉시 본격적 분석 가능
기존 프레임워크가 제공하는 에러 및 경고 로그 등으로 디폴트 설정 활용
콘솔에 출력될 때 확인하거나 파일로 출력한 뒤 일정기간 보관
Sentry - 서비스 에러리포트, 성능리포트 전문 로그 수집 시스템 활용
Application Performance Monitoring & Error Tracking Software

감사 로그를 통한 Admin 동작 추적 등)기본 로그 출력으로는 커버할 수 없는(에러 또는 경고가 아닌) 사용자 시나리오상의 이상을 분석
⇒ 내용 분석을 위해서 간단한 스키마 설계가 필요
// 컬럼 1. 언제 호출된 연산인가
// 컬럼 2. 누가 수행했는가
// 컬럼 3. CRUD 중 무슨 연산인가
// 컬럼 4. 해당 연산을 수행한 메서드명(엔드포인트명)은 무엇인가
// 컬럼 5. 메서드 수행 시 파라미터 및 페이로드 데이터는 무엇인가 (JSON 으로 한방에 처리)
// 컬럼 6. 수행 결과 응답 데이터는 무엇인가 (JSON 으로 한방에 처리)
행위 추적 시 개발자의 로그 분석 작업 예제
ex) 서비스 관리자의 데이터 부정 삭제 의심 사건 발생 시 → 해당 기간 로그 파일 또는 로그 테이블에 대해서 검색
데이터베이스의 감사로그 전용 테이블에서 삭제 동작 검색
select *
from admin_log
where operation_type="delete"
ex) 서비스 관리 작업 중 에러가 발생해서 추적할 때
데이터베이스의 에러로그 전용 테이블 조회
select * from error_log where err_msg=""
운영 중인 시스템에 대해서 기본적인 통계 인사이트 확보
⇒ 전체 서버 호출 패턴을 기반으로 어떤 기능을 어떻게 개선해야 운영상/서버자원상 개선도가 높은지를 알아보는 무차별 전면 로깅 수행 가능
백엔드 API 호출 시, 중요한 시스템 자원/행위를 요청할 경우 수량 집계용 로그 생성 필요
과금 자원 (종량제형 및 성과급형 서비스 제공 시)
→ 특정 API 엔드포인트가 호출된 횟수 1회에 대해서 1회 로그를 남겨 과금 기초 자료로 활용
희소 자원 (제공 가능한 상품 및 서비스 에 월간 or 연간 제한이 있는 경우)
→ 시스템에서 사용된 총량을 감지하고, 장기적 운영 방침에 따라 일정 수량이 초과되지 않도록 하는 용도
[설계 및 가이드] 분석계로 전달하고 데이터 분석 기본자료로 사용하기 위한 가이드 제공
데이터 분석을 위한 별도 인프라로 로그 전달
통계 및 시각화 차트 기초 데이터로 사용
데이터 마이닝을 위해 분석계 전달
⇒ BI 추출, CRM 수행, 서비스 고도화, 신규 BM 개발
[집계 및 분석 자체를 구현] 서비스와 사업적인 관점에서 필요로 하는 지표의 기반이 되는 로그 생성 후 집계 프로세스까지 구현
ex1) 콘텐츠 노출에 따른 클릭 및 구매 전환율 (광고 CTR, 상품 구매율 등)
접속 및 콘텐츠 노출에 따라 발생하는 API 호출을 로깅 후 시간대별 집계
클릭 및 구매에 따라 발생하는 API 호출을 로깅 후 시간대별 집계
3) 전환율 계산을 통해 지표 데이터를 생성하고 로그 집계 테이블에 저장하는 BI 프로세스 구현
ex2) 게시물 콘텐츠에 대한 Unique user view 등
→ 유저 신규 유입에 유리한 콘텐츠 / 재방문에 유리한 콘텐츠 등으로 분석 기초가 되는 지표 정의
ex1 과 같이 집계 플랜을 수립하고 지표화 및 데이터 생성까지 수행하는 프로세스 구현
Next.js on Vercel
├─ Sentry
│ └─ 에러, 예외, API 실패, 성능 문제, 알림
│
├─ Supabase
│ ├─ app_events
│ │ └─ 핵심 비즈니스 이벤트
│ └─ audit_events
│ └─ 권한 변경, 데이터 삭제, 관리자 액션
│
└─ GoogleAnalytics4
└─ 방문자 분석, 유입 분석, 페이지뷰, 기본 전환
Google Analytics | Google for Developers