Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,13 +107,13 @@ sing-code/
### 해결하고자 했던 문제

- 기존 유사한 서비스에서 하나의 곡을 검색할 때 TJ, 금영 API로 따로따로 가져온다는 문제를 데이터를 크롤링하여 자체 DB(Supabase)를 만드는 것으로 해결했습니다.
- (쉽게 일본 곡 검색한다는 목적 강조??)
- Next.js의 API Route를 활용하여 서버리스 API를 구축하고 외부 API의 URL을 감추고자 하였습니다.
- react query를 활용하여 서버, 즉 DB와의 동기화를 구축하고자 하였습니다.
- OPEN API로는 금영 노래방의 곡을 DB에 저장하기에 한계가 있었기에 puppeteer로 금영 노래방 유튜브 채널을 렌더링하여 곡을 검색하고 cheerio로 결과를 파싱하여 크롤링 프로세스를 설계하였습니다.

### 무엇을 얻었는지

- Turborepo를 활용하면서 모노레포의 이해를 높이고 프로젝트에 어떻게 적용하고 확장해야 하는지에 대해 익혔습니다.
- DMS인 Supabase를 통해 DB를 직접 구축하면서 DB Table 구조에 대한 개념을 익혔습니다.
- react query를 도입하며 쿼리 키를 활용한 낙관적 업데이트, 데이터 캐싱에 대한 이해를 높였습니다.

Expand Down
10 changes: 8 additions & 2 deletions apps/web/src/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,14 @@ import '@/globals.css';
import QueryProvider from '@/query';

export const metadata: Metadata = {
title: 'Singcode',
description: 'Singcode',
title: 'Singcode - 간편하게 노래를 저장하세요!',
description: '노래방만 가면 뭐 부를지 고민한다면?',
openGraph: {
title: 'Singcode - 간편하게 노래를 저장하세요!',
description: '노래방만 가면 뭐 부를지 고민한다면?',
url: 'https://singcode.vercel.app/',
siteName: 'Singcode',
},
};

export default function RootLayout({
Expand Down