Skip to content

feat: 공유 링크 미리보기 노출을 위한 Open Graph 메타 설정 추가 (#168)#169

Merged
wkdtnqls0506 merged 3 commits intomainfrom
feature/#168
Oct 18, 2025
Merged

feat: 공유 링크 미리보기 노출을 위한 Open Graph 메타 설정 추가 (#168)#169
wkdtnqls0506 merged 3 commits intomainfrom
feature/#168

Conversation

@wkdtnqls0506
Copy link
Contributor

@wkdtnqls0506 wkdtnqls0506 commented Oct 18, 2025

✅ 이슈 번호

close #168


🪄 작업 내용 (변경 사항)

  • 공유 링크 미리보기 노출을 위한 Open Graph 메타 설정 추가
  • README 수정

📸 스크린샷

스크린샷 2025-10-18 오후 6 35 52

💡 설명

수정전
스크린샷 2025-10-16 오후 2 43 58

  • 링크 공유 시 사진과 같이 표시되던 문제를 오픈그래프 메타 태그를 추가하여 수정하였습니다~!

🗣️ 리뷰어에게 전달 사항


📍 트러블 슈팅

Summary by CodeRabbit

릴리스 노트

  • 문서

    • README가 이미지 중심의 시각적 콘텐츠로 대체되어 안내 문구가 이미지로 표현됩니다.
    • README에 한국어 헤더(잇다의 기술스택)가 추가되었습니다.
  • 개선사항

    • 페이지 메타데이터가 확장되어 Open Graph 정보(제목·설명·이미지 등)가 추가되었습니다.
    • 사이트 설명과 키워드가 업데이트되어 검색 관련 노출이 강화되었습니다.

@wkdtnqls0506 wkdtnqls0506 self-assigned this Oct 18, 2025
@wkdtnqls0506 wkdtnqls0506 added the ✨ feature 새로운 기능 추가 label Oct 18, 2025
@vercel
Copy link
Contributor

vercel bot commented Oct 18, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
26th-web-team-1-fe Ready Ready Preview Comment Oct 18, 2025 9:48am

💡 Enable Vercel Agent with $100 free credit for automated AI reviews

@github-actions github-actions bot requested a review from Seojunhwan October 18, 2025 09:40
@coderabbitai
Copy link

coderabbitai bot commented Oct 18, 2025

워크스루

README의 주요 텍스트 섹션을 모두 이미지 임베드로 교체하고, 앱 레이아웃의 metadata를 확장해 Open Graph 필드와 키워드 배열을 추가했습니다.

변경 사항

Cohort / File(s) 변경 요약
문서: README 이미지 전환
README.md
기존 설명·설치·가이드 텍스트 섹션들을 제거하고 외부 이미지 임베드 태그들로 교체. 한국어 헤더 '잇다의 기술스택' 추가. 기존 배포/문서 링크 및 명령어 안내 삭제.
레이아웃 메타데이터 확장
src/app/layout.tsx
metadata 상수에 description 내용 변경 및 openGraph 객체(title, description, images, type, siteName, url) 추가. keywords 배열 추가. (공개 API/심볼 선언 변경 없음)

예상 코드 리뷰 노력

🎯 3 (Moderate) | ⏱️ ~20 minutes

레이아웃 메타데이터 확장과 문서 대체가 주된 변경으로, 서로 다른 파일에 걸친 논리 추가가 있어 중간 수준 검토가 필요합니다.

🐰 깃 속 당근 하나 톡,
README엔 그림만 쏙쏙! 🥕
메타태그엔 빛나는 OG,
링크 미리보기 살포시 웃고,
키워드로 숲길도 반짝반짝 ✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Out of Scope Changes Check ⚠️ Warning README.md의 변경 사항(텍스트 섹션을 이미지로 대체, 한국어 헤더 추가, 배포/문서 링크 제거)은 연결된 이슈 #168에서 요구하는 "Open Graph 메타 설정 추가" 목표와 직접적인 관련이 없습니다. PR 설명에서 의도적으로 포함한 것으로 보이지만, 이슈 범위에 명시되지 않은 변경 사항입니다. 이러한 README 수정은 별도의 이슈로 분리하거나 현재 PR에서 제거하는 것이 좋겠습니다.
✅ Passed checks (4 passed)
Check name Status Explanation
Title Check ✅ Passed PR 제목은 "공유 링크 미리보기 노출을 위한 Open Graph 메타 설정 추가"로 변경 사항의 핵심을 명확하게 전달합니다. src/app/layout.tsx에서 openGraph 메타데이터 필드가 추가된 것과 정확히 일치하며, 연결된 이슈 #168의 주요 목표와도 부합합니다. 제목은 간결하고 명확하며, README 수정과 같은 보조적 변경 사항을 포함하지 않아도 무방합니다.
Linked Issues Check ✅ Passed 연결된 이슈 #168의 목표는 "공유 링크 미리보기 노출을 위한 Open Graph 메타 설정 추가"이며, PR의 src/app/layout.tsx에서 openGraph 객체에 title, description, images, type, siteName, url 필드를 추가하여 이를 충족합니다. 메타데이터 확장을 통해 링크 공유 시 미리보기가 제대로 표시될 수 있도록 구현했으며, 이슈의 체크리스트 항목인 "Open Graph 메타 설정"이 완료되었습니다.
Description Check ✅ Passed PR 설명은 필수 섹션 대부분을 포함합니다. 이슈 번호(#168), 작업 내용(Open Graph 메타 설정 및 README 수정), 스크린샷(수정 전후 비교), 그리고 설명 섹션이 모두 작성되어 있습니다. 리뷰어에게 전달 사항과 트러블 슈팅 섹션이 비어있으나, 이들은 비필수 항목으로 판단되며 핵심 정보는 충분히 포함되어 있습니다.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/#168

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link

github-actions bot commented Oct 18, 2025

🎨 Storybook Preview: https://685a32a1c0bbd269fdb67af4-ymtzhmntio.chromatic.com/
🔗 Chromatic Build: https://www.chromatic.com/build?appId=685a32a1c0bbd269fdb67af4&number=303
🕖 Updated at: 2025년 10월 18일 18시 47분 45초

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/app/layout.tsx (1)

76-76: 중복된 GoogleAnalytics 컴포넌트 제거 필요

GoogleAnalytics 컴포넌트가 두 번 선언되어 있습니다:

  • Line 76: <html> 태그 내부 (올바른 위치)
  • Line 113: </body> 태그 이후 (중복 및 잘못된 위치)

이는 다음과 같은 문제를 발생시킵니다:

  1. 중복 추적: 모든 이벤트가 두 번 기록되어 분석 데이터가 부정확해집니다.
  2. 잘못된 HTML 구조: </body> 태그 이후에 콘텐츠가 오는 것은 유효하지 않은 HTML입니다.

Line 113의 중복 선언을 제거해주세요.

다음 diff를 적용하여 중복을 제거하세요:

       </div>
     </body>
-    <GoogleAnalytics gaId='G-H7HEQSEBC7' />
   </html>

Also applies to: 113-113

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f459418 and d76b3e5.

⛔ Files ignored due to path filters (1)
  • public/images/opengraph-image.png is excluded by !**/*.png
📒 Files selected for processing (2)
  • README.md (1 hunks)
  • src/app/layout.tsx (2 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
src/**/*.{ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/nextjs-folder-structure.mdc)

All files must use TypeScript.

Files:

  • src/app/layout.tsx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: test
🔇 Additional comments (1)
src/app/layout.tsx (1)

32-51: SEO 키워드 구성이 잘 되어 있습니다

한국어 검색을 위한 키워드가 포괄적으로 잘 구성되어 있습니다. 브랜드명, 플랫폼 특성, 주요 기능이 모두 포함되어 있어 검색 엔진 최적화에 도움이 될 것입니다.

Comment on lines +1 to +11
<img width="1200" height="1675" alt="Image" src="https://github.com/user-attachments/assets/8b8aa8bc-e6b4-4132-897e-dd0a307b8fde" />

## Getting Started
<img width="1200" height="1372" alt="Image" src="https://github.com/user-attachments/assets/9c6d198a-4f53-42d5-9f32-7e516dcb5d7d" />

First, run the development server:
<img width="1200" height="1606" alt="Image" src="https://github.com/user-attachments/assets/cfc0c6a3-da24-4c51-b5af-dcb0a7da4208" />

```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```
<img width="1200" height="1333" alt="Image" src="https://github.com/user-attachments/assets/a44c8994-c540-4d39-8cc7-91cf71007447" />

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
### 잇다의 기술스택

You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.

This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.

## Learn More

To learn more about Next.js, take a look at the following resources:

- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!

## Deploy on Vercel

The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
<img width="2193" height="279" alt="Image" src="https://github.com/user-attachments/assets/4583e623-af60-4961-bc37-e844162a2442" />
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

접근성 및 유지보수성 문제: 이미지 기반 README의 한계

README를 완전히 이미지로만 구성한 것은 다음과 같은 문제가 있습니다:

  1. 접근성 문제: 스크린 리더 사용자나 텍스트 기반 브라우저 사용자가 내용을 읽을 수 없습니다.
  2. 검색 불가: 텍스트 콘텐츠가 없어 검색 엔진이나 GitHub 검색에서 발견되기 어렵습니다.
  3. 대체 텍스트 부족: 모든 이미지의 alt 속성이 단순히 "Image"로만 되어 있어 의미를 전달하지 못합니다.
  4. 번역 불가: 다국어 지원이나 자동 번역이 불가능합니다.
  5. 유지보수성: 내용 수정 시 매번 이미지를 재생성해야 합니다.

이미지와 함께 핵심 정보를 텍스트로도 제공하는 것을 권장합니다.

다음과 같이 개선을 제안합니다:

-<img width="1200" height="1675" alt="Image" src="https://github.com/user-attachments/assets/8b8aa8bc-e6b4-4132-897e-dd0a307b8fde" />
+# 잇다 (EATDA)
+
+> 우리 동네 사라지면 안 되는 가게를 기록하고, 모두가 함께 응원하는 플랫폼
+
+<img width="1200" height="1675" alt="잇다 플랫폼 소개 및 주요 기능" src="https://github.com/user-attachments/assets/8b8aa8bc-e6b4-4132-897e-dd0a307b8fde" />

-<img width="1200" height="1372" alt="Image" src="https://github.com/user-attachments/assets/9c6d198a-4f53-42d5-9f32-7e516dcb5d7d" />
+## 시작하기
+
+<img width="1200" height="1372" alt="프로젝트 설치 및 실행 가이드" src="https://github.com/user-attachments/assets/9c6d198a-4f53-42d5-9f32-7e516dcb5d7d" />
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<img width="1200" height="1675" alt="Image" src="https://github.com/user-attachments/assets/8b8aa8bc-e6b4-4132-897e-dd0a307b8fde" />
## Getting Started
<img width="1200" height="1372" alt="Image" src="https://github.com/user-attachments/assets/9c6d198a-4f53-42d5-9f32-7e516dcb5d7d" />
First, run the development server:
<img width="1200" height="1606" alt="Image" src="https://github.com/user-attachments/assets/cfc0c6a3-da24-4c51-b5af-dcb0a7da4208" />
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```
<img width="1200" height="1333" alt="Image" src="https://github.com/user-attachments/assets/a44c8994-c540-4d39-8cc7-91cf71007447" />
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.
### 잇다의 기술스택
You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.
This project uses [`next/font`](https://nextjs.org/docs/app/building-your-application/optimizing/fonts) to automatically optimize and load [Geist](https://vercel.com/font), a new font family for Vercel.
## Learn More
To learn more about Next.js, take a look at the following resources:
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js) - your feedback and contributions are welcome!
## Deploy on Vercel
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.
Check out our [Next.js deployment documentation](https://nextjs.org/docs/app/building-your-application/deploying) for more details.
<img width="2193" height="279" alt="Image" src="https://github.com/user-attachments/assets/4583e623-af60-4961-bc37-e844162a2442" />
# 잇다 (EATDA)
> 우리 동네 사라지면 안 되는 가게를 기록하고, 모두가 함께 응원하는 플랫폼
<img width="1200" height="1675" alt="잇다 플랫폼 소개 및 주요 기능" src="https://github.com/user-attachments/assets/8b8aa8bc-e6b4-4132-897e-dd0a307b8fde" />
## 시작하기
<img width="1200" height="1372" alt="프로젝트 설치 및 실행 가이드" src="https://github.com/user-attachments/assets/9c6d198a-4f53-42d5-9f32-7e516dcb5d7d" />
<img width="1200" height="1606" alt="Image" src="https://github.com/user-attachments/assets/cfc0c6a3-da24-4c51-b5af-dcb0a7da4208" />
<img width="1200" height="1333" alt="Image" src="https://github.com/user-attachments/assets/a44c8994-c540-4d39-8cc7-91cf71007447" />
### 잇다의 기술스택
<img width="2193" height="279" alt="Image" src="https://github.com/user-attachments/assets/4583e623-af60-4961-bc37-e844162a2442" />
🤖 Prompt for AI Agents
README.md around lines 1-11: the file currently uses only images (alt="Image")
which breaks accessibility, searchability, translation and maintainability;
replace or augment the images with real markdown text: add proper headings and
plain-text summaries for each image, provide meaningful alt text and short
captions, extract any textual content from images into markdown sections
(overview, tech stack, features, usage, contribution), ensure section headings
are in English/Korean or provide language tags for translations, and keep images
as supplementary assets referenced from the appropriate sections so future
updates can edit text without re-exporting images.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between d76b3e5 and 763fa12.

📒 Files selected for processing (1)
  • src/app/layout.tsx (1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
src/**/*.{ts,tsx}

📄 CodeRabbit inference engine (.cursor/rules/nextjs-folder-structure.mdc)

All files must use TypeScript.

Files:

  • src/app/layout.tsx
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: test
🔇 Additional comments (3)
src/app/layout.tsx (3)

21-22: 설명(description) 필드가 잘 구성되었습니다.

플랫폼의 목적을 명확하게 전달하는 한국어 설명으로 SEO에 적합합니다.


32-51: 키워드 배열이 잘 구성되었습니다.

플랫폼의 핵심 기능과 타겟 사용자를 포괄하는 관련성 높은 키워드들로 SEO에 효과적입니다.


76-76: 이전 리뷰에서 제기된 GoogleAnalytics 중복 문제가 해결되었습니다.

현재 코드에서는 GoogleAnalytics 컴포넌트가 한 번만 렌더링되고 있어 중복 문제가 없습니다.

Comment on lines +23 to +31
openGraph: {
title: "잇다",
description:
"우리 동네 사라지면 안 되는 가게를 기록하고, 모두가 함께 응원하는 플랫폼 잇다",
images: "/images/opengraph-image.png",
type: "website",
siteName: "잇다",
url: "https://eatda.net/",
},
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Open Graph 이미지 경로는 절대 URL을 사용해야 합니다.

현재 images 필드가 상대 경로("/images/opengraph-image.png")를 사용하고 있어 소셜 미디어 플랫폼(카카오톡, 페이스북, 링크드인 등)에서 이미지가 제대로 표시되지 않을 수 있습니다. Open Graph 프로토콜은 절대 URL을 요구합니다.

다음과 같이 수정하세요:

   openGraph: {
     title: "잇다",
     description:
       "우리 동네 사라지면 안 되는 가게를 기록하고, 모두가 함께 응원하는 플랫폼 잇다",
-    images: "/images/opengraph-image.png",
+    images: [
+      {
+        url: "https://eatda.net/images/opengraph-image.png",
+        width: 1200,
+        height: 630,
+        alt: "잇다 - 우리 동네 가게 응원 플랫폼",
+      },
+    ],
     type: "website",
     siteName: "잇다",
     url: "https://eatda.net/",
   },

추가 권장사항: Twitter/X 공유를 위한 twitter 메타데이터도 고려해보세요:

twitter: {
  card: "summary_large_image",
  title: "잇다",
  description: "우리 동네 사라지면 안 되는 가게를 기록하고, 모두가 함께 응원하는 플랫폼 잇다",
  images: ["https://eatda.net/images/opengraph-image.png"],
},
🤖 Prompt for AI Agents
In src/app/layout.tsx around lines 23 to 31, the openGraph.images value uses a
relative path which can prevent social platforms from fetching the image; update
images to an absolute URL (https://eatda.net/images/opengraph-image.png) and
ensure the openGraph.url matches your production domain, and optionally add a
twitter metadata block (card, title, description, images as absolute URL(s)) to
support Twitter/X sharing.

@wkdtnqls0506 wkdtnqls0506 merged commit 43b51d7 into main Oct 18, 2025
8 checks passed
@wkdtnqls0506 wkdtnqls0506 deleted the feature/#168 branch October 18, 2025 09:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨ feature 새로운 기능 추가

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feat] 공유 링크 미리보기 노출을 위한 Open Graph 메타 설정 추가

1 participant