스프링부트로 100명정도 사용할 예정인 규모의 백엔드 서비스 구현하고있습니다.
지금까지는 그냥 동아리에서 앱 기획한거 만들고 운영까지는 안해서 로그를 남길 필요가 없었는데, 이번에 실제로 운영해야해서 로그 관련해서 좀 찾아보고있습니다
근데 이게 생각을 하면 할수록 백엔드에서 로그수집용 API몇개 만드는걸로는 절대로 수집할 수 없는 구조더라고요
보통 이런 로그 데이터는 백엔드에서 enum값 정해주면 프론트에서 그거에 맞춰 헤더에 담든 바디에 담든 데이터를 보내주는게 맞을까요?
하루종일 고민해봐도 답이 안나와서 여기에 글 써봅니다
좋은 하루 되십시오
- dc official App
무슨로그? 프론트에서 먼가 로그를 남겨야 한다면 걍 구글애널리틱스/gtag 쓰면 안됨?
학습과 관련된건데 자료를 얼마나 읽었는지, 영상은 얼마나 봤는지, 무슨 탭에 오래있었는지, 문제는 얼마나 풀었는지와 같은 로그를 수집하고 관리자페이지에서 그걸 볼 수 있게 만들어야합니다. 구글 애널리틱스같은건 잘 모르겠지만 관리자 페이지에서 봐야하다보니 DB에 저장하는게 맞는거같아서요.. - dc App
@글쓴 백갤러(1.238) 단순 통계 목적이면 gtag 달아서 ㄱㄱ 너가 원하는 모든 기능을 구글이 다 구현해놨거나, 쉽게 조합해서 만들 수 있음. GA4 api로 가져와서 너 서비스에 표출하면 됨. 실시간성/정합성이 중요하다면(예를 들어 진도체크라던가) 직접 구현해서 디비에 ㄱㄱ
감사합니다 한번 찾아보겠습니다 - dc App
프론트에서 추적가능한 id 생성 후 포함해서 요청 로거 활용해거 파일로 로그 기록, 그라파나 같은것으로 필터링 해서 확인 뭐 모바일 앱의 그런것들이 필요한거라면 구글이 제공하는 서비스, 그런것들 활용해서 체크해야겠지
쉽게 말하면 프론트에서 요청 보낼때 요청에 대한 id 붙여주고 그 id 기반으로 백에서 알아서 처리하면됨. 로그 기록해주세요~ 하고 api를 만드는게 아니라
감사합니다 프론트에서 아이디 값 받아야겠네요 - dc App
윗댓에서 말한것처럼 상용 제품 쓸거면 ga쓰면 됨 직접 구현할거면 어떤 데이터가 필요할지 리스트업하고 로그 모델링한 다음 클라에서 로그 수집 서버로 쏴주고 파이프라인 태워서 저장소(hdfs, s3, 규모가 작으니 rdb에 쌓아도 ok)에 쌓으면 됨
요구사항 보니까 실시간성은 필요없을거 같고 일배치로 데이터 생산하면 충분할듯 화면에 얼마나 머물렀는지 < 이건 세션 데이터인데 하나의 세션 시간을 얼마로 잡을지가 사실 비즈니스 상으로 굉장히 중요함 영상을 얼마나 봤는지 < 이것도 위의 관점으로 어떻게 정의하면 될지 고민해봐
넵 감사합니다 영상 시청 시간이 파악하기가 좀 까다롭네요 - dc App