From fbc26b6c63304d8d6de408877e51d6dde576e267 Mon Sep 17 00:00:00 2001 From: Minhyung Cho Date: Mon, 23 Feb 2026 22:29:22 +0900 Subject: [PATCH 1/5] =?UTF-8?q?fix=20:=20=EA=B2=B0=EC=A0=9C=20=EA=B8=B0?= =?UTF-8?q?=EB=B0=98=20=ED=86=A0=EC=8A=A4=ED=8E=98=EC=9D=B4=EB=A8=BC?= =?UTF-8?q?=EC=B8=A0=20=ED=82=A4=20=EA=B4=80=EB=A6=AC=20=EB=B0=A9=EC=8B=9D?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/deploy-dev.yml | 1 + .github/workflows/deploy.yml | 1 + apps/client/Dockerfile | 1 + apps/client/env.d.ts | 1 + apps/client/src/domains/purchase/components/PurchaseSection.tsx | 2 +- 5 files changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy-dev.yml b/.github/workflows/deploy-dev.yml index dd70de77..1b31c2e9 100644 --- a/.github/workflows/deploy-dev.yml +++ b/.github/workflows/deploy-dev.yml @@ -78,6 +78,7 @@ jobs: echo "SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }}" >> .env echo "NEXT_PUBLIC_CDN_BASE_URL=${{ secrets.DEV_CDN_BASE_URL }}" >> .env echo "NEXT_PUBLIC_GOOGLE_CLIENT_ID=${{ secrets.GOOGLE_CLIENT_ID_DEV }}" >> .env + echo "NEXT_PUBLIC_TOSS_PAYMENTS_CLIENT_KEY=${{ secrets.TOSS_PAYMENTS_CLIENT_KEY_DEV }}" >> .env echo "NODE_ENV=production" >> .env echo "NEXT_PUBLIC_BASE_URL=https://dev.kokomen.kr" >> .env echo "NEXT_PUBLIC_API_BASE_URL=https://api-dev.kokomen.kr/api/v1" >> .env diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index a4d14916..15f33d6c 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -78,6 +78,7 @@ jobs: echo "SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }}" >> .env echo "NEXT_PUBLIC_CDN_BASE_URL=${{ secrets.PROD_CDN_BASE_URL }}" >> .env echo "NEXT_PUBLIC_GOOGLE_CLIENT_ID=${{ secrets.GOOGLE_CLIENT_ID_PROD }}" >> .env + echo "NEXT_PUBLIC_TOSS_PAYMENTS_CLIENT_KEY=${{ secrets.TOSS_PAYMENTS_CLIENT_KEY_PROD }}" >> .env echo "NODE_ENV=production" >> .env echo "NEXT_PUBLIC_BASE_URL=https://kokomen.kr" >> .env echo "NEXT_PUBLIC_API_BASE_URL=https://api.kokomen.kr/api/v1" >> .env diff --git a/apps/client/Dockerfile b/apps/client/Dockerfile index fcc27c89..991f84db 100644 --- a/apps/client/Dockerfile +++ b/apps/client/Dockerfile @@ -25,6 +25,7 @@ ARG NEXT_PUBLIC_POSTHOG_KEY ARG NEXT_PUBLIC_POSTHOG_HOST ARG NEXT_PUBLIC_CDN_BASE_URL ARG NEXT_PUBLIC_GOOGLE_CLIENT_ID +ARG NEXT_PUBLIC_TOSS_PAYMENTS_CLIENT_KEY ARG SENTRY_AUTH_TOKEN ARG NODE_ENV diff --git a/apps/client/env.d.ts b/apps/client/env.d.ts index 10a6aad1..cd269f67 100644 --- a/apps/client/env.d.ts +++ b/apps/client/env.d.ts @@ -13,5 +13,6 @@ declare const process: { NEXT_PUBLIC_V3_API_BASE_URL: string; NEXT_PUBLIC_CDN_BASE_URL: string; NEXT_PUBLIC_GOOGLE_CLIENT_ID: string; + NEXT_PUBLIC_TOSS_PAYMENTS_CLIENT_KEY: string; }; }; diff --git a/apps/client/src/domains/purchase/components/PurchaseSection.tsx b/apps/client/src/domains/purchase/components/PurchaseSection.tsx index 66fe7c99..72dd998b 100644 --- a/apps/client/src/domains/purchase/components/PurchaseSection.tsx +++ b/apps/client/src/domains/purchase/components/PurchaseSection.tsx @@ -123,7 +123,7 @@ function PurchaseMode({ useEffect(() => { const fetchTossPayments = async () => { const tossPayments = await loadTossPayments( - "test_gck_docs_Ovk5rk1EwkEbP0W43n07xlzm" + (process.env.NEXT_PUBLIC_TOSS_PAYMENTS_CLIENT_KEY as string) || "" ); const widgets = tossPayments.widgets({ customerKey: ANONYMOUS From 84d135044d1e93cc352a262ee6d7d25384d2de27 Mon Sep 17 00:00:00 2001 From: Minhyung Cho Date: Tue, 24 Feb 2026 19:40:33 +0900 Subject: [PATCH 2/5] chore : add log for test --- apps/client/src/domains/purchase/components/PurchaseSection.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/client/src/domains/purchase/components/PurchaseSection.tsx b/apps/client/src/domains/purchase/components/PurchaseSection.tsx index 72dd998b..72859ebf 100644 --- a/apps/client/src/domains/purchase/components/PurchaseSection.tsx +++ b/apps/client/src/domains/purchase/components/PurchaseSection.tsx @@ -122,6 +122,7 @@ function PurchaseMode({ const tossPaymentsWidgets = useRef(null); useEffect(() => { const fetchTossPayments = async () => { + console.log(process.env.NEXT_PUBLIC_TOSS_PAYMENTS_CLIENT_KEY); const tossPayments = await loadTossPayments( (process.env.NEXT_PUBLIC_TOSS_PAYMENTS_CLIENT_KEY as string) || "" ); From f40f4b28eb19fe6c901674bb100d46f09f8f2848 Mon Sep 17 00:00:00 2001 From: Minhyung Cho Date: Tue, 24 Feb 2026 19:55:51 +0900 Subject: [PATCH 3/5] fix: add Toss Payments client key to environment variables for dev and prod deployments --- .github/workflows/deploy-dev.yml | 1 + .github/workflows/deploy.yml | 1 + apps/client/src/domains/purchase/components/PurchaseSection.tsx | 1 - 3 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/deploy-dev.yml b/.github/workflows/deploy-dev.yml index 1b31c2e9..aed3c0ff 100644 --- a/.github/workflows/deploy-dev.yml +++ b/.github/workflows/deploy-dev.yml @@ -43,6 +43,7 @@ jobs: SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} NEXT_PUBLIC_CDN_BASE_URL=${{ secrets.DEV_CDN_BASE_URL }} NEXT_PUBLIC_GOOGLE_CLIENT_ID=${{ secrets.GOOGLE_CLIENT_ID_DEV }} + NEXT_PUBLIC_TOSS_PAYMENTS_CLIENT_KEY=${{ secrets.TOSS_PAYMENTS_CLIENT_KEY_DEV }} NODE_ENV=production NEXT_PUBLIC_BASE_URL=https://dev.kokomen.kr NEXT_PUBLIC_API_BASE_URL=https://api-dev.kokomen.kr/api/v1 diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 15f33d6c..97f1c2c7 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -43,6 +43,7 @@ jobs: SENTRY_AUTH_TOKEN=${{ secrets.SENTRY_AUTH_TOKEN }} NEXT_PUBLIC_CDN_BASE_URL=${{ secrets.PROD_CDN_BASE_URL }} NEXT_PUBLIC_GOOGLE_CLIENT_ID=${{ secrets.GOOGLE_CLIENT_ID_PROD }} + NEXT_PUBLIC_TOSS_PAYMENTS_CLIENT_KEY=${{ secrets.TOSS_PAYMENTS_CLIENT_KEY_PROD }} NODE_ENV=production NEXT_PUBLIC_BASE_URL=https://kokomen.kr NEXT_PUBLIC_API_BASE_URL=https://api.kokomen.kr/api/v1 diff --git a/apps/client/src/domains/purchase/components/PurchaseSection.tsx b/apps/client/src/domains/purchase/components/PurchaseSection.tsx index 72859ebf..72dd998b 100644 --- a/apps/client/src/domains/purchase/components/PurchaseSection.tsx +++ b/apps/client/src/domains/purchase/components/PurchaseSection.tsx @@ -122,7 +122,6 @@ function PurchaseMode({ const tossPaymentsWidgets = useRef(null); useEffect(() => { const fetchTossPayments = async () => { - console.log(process.env.NEXT_PUBLIC_TOSS_PAYMENTS_CLIENT_KEY); const tossPayments = await loadTossPayments( (process.env.NEXT_PUBLIC_TOSS_PAYMENTS_CLIENT_KEY as string) || "" ); From 2e9fdba98332d8be76b9301340dbc7c8d3a1712f Mon Sep 17 00:00:00 2001 From: Minhyung Cho Date: Sun, 8 Mar 2026 23:24:11 +0900 Subject: [PATCH 4/5] fix : sitemap SEO improvement --- .../src/pages/server-sitemap.xml/index.tsx | 16 ++++++++++++++-- apps/client/src/pages/sitemap/members.xml.tsx | 19 ------------------- 2 files changed, 14 insertions(+), 21 deletions(-) delete mode 100644 apps/client/src/pages/sitemap/members.xml.tsx diff --git a/apps/client/src/pages/server-sitemap.xml/index.tsx b/apps/client/src/pages/server-sitemap.xml/index.tsx index 29124e41..cfba079e 100644 --- a/apps/client/src/pages/server-sitemap.xml/index.tsx +++ b/apps/client/src/pages/server-sitemap.xml/index.tsx @@ -1,10 +1,22 @@ import { getServerSideSitemapIndexLegacy } from "next-sitemap"; import { GetServerSideProps } from "next"; +import { getPaginatedRankList } from "@/domains/members/api"; + +const MAX_RANK_COUNT = 100000; export const getServerSideProps: GetServerSideProps = async (ctx) => { + const rankList = await getPaginatedRankList(0, MAX_RANK_COUNT).then( + (res) => res.data + ); + + const memberSitemaps = rankList.map( + (rank) => + `${process.env.NEXT_PUBLIC_BASE_URL}/members/${rank.id}/sitemap.xml` + ); + return getServerSideSitemapIndexLegacy(ctx, [ - `${process.env.NEXT_PUBLIC_BASE_URL}/sitemap/members.xml`, - `${process.env.NEXT_PUBLIC_BASE_URL}/sitemap/rank.xml` + `${process.env.NEXT_PUBLIC_BASE_URL}/sitemap/rank.xml`, + ...memberSitemaps ]); }; diff --git a/apps/client/src/pages/sitemap/members.xml.tsx b/apps/client/src/pages/sitemap/members.xml.tsx deleted file mode 100644 index a6af1588..00000000 --- a/apps/client/src/pages/sitemap/members.xml.tsx +++ /dev/null @@ -1,19 +0,0 @@ -import { getServerSideSitemapIndexLegacy } from "next-sitemap"; -import { GetServerSideProps } from "next"; -import { getPaginatedRankList } from "@/domains/members/api"; - -const MAX_RANK_COUNT = 100000; -export const getServerSideProps: GetServerSideProps = async (ctx) => { - const rankList = await getPaginatedRankList(0, MAX_RANK_COUNT).then( - (res) => res.data - ); - return getServerSideSitemapIndexLegacy( - ctx, - rankList.map((rank) => { - return `${process.env.NEXT_PUBLIC_BASE_URL}/members/${rank.id}/sitemap.xml`; - }) - ); -}; - -// Default export to prevent next.js errors -export default function Sitemap() {} From 3d7d8eaeec274919775219c869925232ad8a7b22 Mon Sep 17 00:00:00 2001 From: Minhyung Cho Date: Sun, 8 Mar 2026 23:24:46 +0900 Subject: [PATCH 5/5] fix : token history display partial fix --- packages/ui/src/components/domains/purchase/tokenHistory.tsx | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/packages/ui/src/components/domains/purchase/tokenHistory.tsx b/packages/ui/src/components/domains/purchase/tokenHistory.tsx index 93f886c0..d945f2c6 100644 --- a/packages/ui/src/components/domains/purchase/tokenHistory.tsx +++ b/packages/ui/src/components/domains/purchase/tokenHistory.tsx @@ -21,9 +21,7 @@ export default function TokenHistory({
{orderName}
- - {remainingCount ? `${remainingCount}개 사용가능` : "사용완료"} - + {state}