inflearn logo
강의

Course

Instructor

Practical System Design for Juniors in the AI Era: We’ll Fill in the Experience Gap for You

[Hands-on] Build a "money-making logger" with MDC·UTM·Session ID

강의 내용 질문 `[실습] MDC·UTM·세션ID로 "돈 버는 로거" 만들기`

16

ohjh2769

1 asked

0

강의: [실습] MDC·UTM·세션ID로 "돈 버는 로거" 만들기

시간: 6:00


영상 속 로그에 utm 정보는 없습니다.

이어지는 설명

"

이 한 줄만 보면 이 유저가 페이스북 광고를 보고 들어와서 상품을 보다가 카카오톡 공유 링크로 다시 들어와서 결제를 시도한다, 뭐 이런 부분들이 잘 남게 되겠죠.

그래서 이렇게 유저 여정을 전체를 재구성할 수 있습니다. 로그 한 줄이 마케팅 데이터가 되는 순간입니다.

"


위 설명이

RequestLoggingFilter.java 89L 에 주석처리된 로그(아래)에 대한 설명이 맞을까요?

logRequest(request, wrappedRequest, wrappedResponse, durationMs);

kotlin spring-boot kubernetes 아키텍처 kafka redis prometheus

Answer 1

0

newnormal

안녕하세요, 정확하게 보셨습니다.

말씀하신 89~90번째 줄의 logRequest(...) 호출이 그 설명의 대상이 맞습니다.


UTM 이 찍히는 건 컨트롤러 로그가 아니라 RequestLoggingFilter 가 요청이 끝날 때 남기는 "요청 로그" 한 줄입니다. 이 줄은 logRequest() 가 호출돼야 나오는데, 스타터에서는 90번째 줄 호출이 주석으로 막혀 있습니다. Step 4 에서 logRequest() 본문을 채운 뒤 이 주석도 풀어야 합니다.


그런데 제가 영상에서 이 주석을 풀지 않고 진행했습니다. 6:00 즈음 화면을 보시면 에디터의 logRequest() 옆에 "0개의 사용 위치" 라고 떠 있습니다. 그래서 콘솔에는 ProductController 로그만 찍혔습니다. 이 로그에 붙은 traceId, SID, VER 은 Step 1 의 MDC 덕분이지만, UTM 이 담긴 요청 로그 줄은 아예 나오지 않았습니다. 내레이션과 화면이 맞지 않았던 이유가 이것입니다. 혼란을 드려 죄송합니다.


주석을 풀고 다시 실행하면 이런 줄이 추가로 찍힙니다. 슬라이드의 curl 경로 대신 실제 컨트롤러 경로인 /v1/products/recent 로 보내 주세요.


실행:

curl "http://localhost:8080/v1/products/recent?utm_source=facebook&utm_medium=cpc" -H "X-App-Version: 1.4.2"


출력:

INFO  c.l.l.c.logging.RequestLoggingFilter [e7a0...] [SID:039c...] [VER:1.4.2] - [e7a0...] SID=039c... VER=1.4.2 [HAS_UTM]=true GET /v1/products/recent?utm_source=facebook&utm_medium=cpc -> 200 (53ms) ip=... ua=curl/8.7.1 [UTM]={utm_source=facebook, utm_medium=cpc} req= res=...



영상에서 "이 한 줄만 보면 유저 여정 전체를 재구성할 수 있다" 고 했는데, 한 줄로 알 수 있는 건 "이 요청이 페이스북 광고에서 왔다" 까지입니다.

페이스북 광고 → 상품 조회 → 카카오톡 공유로 재유입 → 결제 실패 같은 여정은, 같은 SID 가 찍힌 여러 줄을 모아야 보입니다. 세션ID 를 쿠키로 유지하는 이유가 이것이고, SID 로 여정을 읽는 장면은 2-5 에서 이어집니다.


좋은질문감사합니다.

Fanout on Read 의 학습 코드에서 질문 있어요

0

8

0

장바구니 질문

0

19

1

트러블슈팅 케이스 스터디 - P 대형 커머스

0

15

2

26년 11월 기준 쿠버네티스 설치 가이드 요청

0

16

1

vagrant 가 잘안됩니다.

0

25

1

화면이 안나와요

0

25

2

kubeinstall.sh 오류 확인 요청드립니다.

0

23

1

강의와 상관 없지만 여쭤봅니다.

0

37

1

[github fork]tz-argocd-repo

0

39

1

강의 소스코드는 어디서 다운받을 수 있나요?

1

55

2

팔로워수,팔로잉수 조회 설계

1

41

1

화질 문의

0

70

1

JpaPagingItemReader는 좋은게 없는거야..??

0

59

1

현재 배포 아키텍처에서 Kafka 테스트 배치 및 구성 방향 질문드립니다.

0

42

1

nginx 질문드려도될까요?

0

49

1

실습용 VM 시간 불일치로 인한 Calico CNI 인증(Unauthorized) 에러 조치 문의

0

64

2

리프레시토큰

0

53

1

안녕하세요.

0

123

3

DB 연결 후 회원가입 시 생성되는 id 번호 질문

0

57

2

안녕하세요aks에대한 문의드립니다.

0

39

1

파킹 페이지와 대기열 큐 질문입니다.

1

58

1

구현 방법에 대한 문의

0

104

2

MSA 통신방식에 대해서 질문 있습니다.

0

69

1

안녕하세요 질문있습니다.!

0

96

2