You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _posts/2025-04-06-recent-products.md
+4-3Lines changed: 4 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -28,7 +28,8 @@ tags:
28
28
- 현재는 로그인 사용자에게만 최근 본 상품이 제공된다.
29
29
- 약 5분에 3만건의 최근 본 상품이 저장된다.
30
30
- 약 5분에 5만건의 상품 상세 진입 API가 호출된다.
31
-
- 다른 모듈에서 비회원 식별자로 google analytics에서 제공되는 `_ga` 값을 사용하고 있다.
31
+
- 서비스에서는 이미 비회원 식별자를 사용하고 있다. 쿠키에 있는 `non-login-id`를 사용한다.
32
+
-`non-login-id` 길이는 회원번호보다 길다.
32
33
33
34
이제 비회원 최근 본 상품 기능을 위한 조건을 확인해보자.
34
35
@@ -49,7 +50,7 @@ tags:
49
50
50
51
### 식별자
51
52
52
-
우선 비회원을 식별할 수 있는 값이 필요하다. 서비스 내에 비회원 식별자가 없다면 UUID나 ULID 등으로 사용할 수 있지만, `_ga` 값을 비회원 식별자로 사용하고 있으므로 비회원 식별자는 쿠키에 `_ga` 값을 사용한다.
53
+
우선 비회원을 식별할 수 있는 값이 필요하다. 서비스 내에 비회원 식별자가 없다면 UUID나 ULID 등으로 사용할 수 있지만, `non-login-id` 값을 비회원 식별자로 사용하고 있으므로 비회원 식별자는 쿠키에 `non-login-id` 값을 사용한다.
53
54
54
55
### 최근 본 상품 저장 방식
55
56
@@ -74,7 +75,7 @@ Cookie를 사용한다면 저장 공간이 4KB이기 때문에 최대 개수인
74
75
75
76
데이터베이스에 저장하는 방식은 기존의 최근 본 상품 테이블과 동일한 속성을 가지고 식별자의 길이에만 차이가 있다.
76
77
77
-
`_ga` 값의 길이가 20자인 점을 고려하면 기존 테이블의 회원 번호 속성 길이를 늘려 사용하거나 비회원 최근 본 상품용 테이블을 별도로 생성해서 사용할 수 있다. 비회원 최근 본 상품은 로그인을 하지 않으면 garbage data가 되기 때문에 주기적으로 지워주는 것이 좋다.
78
+
`non-login-id` 값의 길이는 회원번호보다 길다는 점을 점을 고려하면 기존 테이블의 회원 번호 속성 길이를 늘려 사용하거나 비회원 최근 본 상품용 테이블을 별도로 생성해서 사용할 수 있다. 비회원 최근 본 상품은 로그인을 하지 않으면 garbage data가 되기 때문에 주기적으로 지워주는 것이 좋다.
78
79
79
80
최근 본 상품의 저장 방식에 대해 정리해본 결과 RDB에 데이터를 저장하는 것이 적합해 보인다.
0 commit comments