LinkTree를 직접 만들게 된 배경
링크를 모아서 보여 줄 수 있는 서비스는 Linktree(https://linktr.ee) 가 가장 유명하다. 국산 서비스로 리틀리(https://litt.ly) 를 알게 되어, 이를 사용하려고 했었다. 결제하지 않으면, 무조건 링크 하단에 리틀리 광고가 붙게 된다는 점과 커스터마이징하고 싶으나 불가능한 부분들도 존재해서, 직접 구현하는 게 낫다고 판단했다.
처음에는 Next.js
와 TyepeScript
, TailwindCSS
로 구현하고, Vecel
을 통해 배포했었다.
하지만, 하나의 페이지만 필요하고 SSR도 요구되지 않느 상황이라 Next.js
를 사용하기 보단, Vite
로 구현하는 것이 맞다고 생각해서 Vite
로 마이그레이션을 진행했고, 배포는 GitHub Pages
를 사용했다.
LinkTree 구현 과정
- 아래 3단계로 간단하게 구현할 수 있었다.
-
Vite 프로젝트 생성
-
페이지에 들어갈 컴포넌트들 구현
-
전체 프로젝트 완성
LinkTree 구현 결과
구현한 App.tsx의 코드는 아래와 같다.
사용자 정보를 제공해주는 UserInfo 와, SNS 아이콘 모음인 SocialLinkList, 각 링크 버튼 모음인 LinkList 세 개의 컴포넌트로 나눠 구현했다.
각 컴포넌트의 구성은 아래와 같다.
- UserInfo.tsx
-
사용자의 기본 정보를 보여주기 위한 UserInfo 부분이다.
- SocialLinkList
-
SNS 링크들을 Map 함수를 이용해서 icon으로 나타냈다.
-
LinkList
구현 결과
구현한 결과물은 여기에서 확인할 수 있다.
프로젝트의 전체 소스 코드가 궁금하다면, 여기에서 확인할 수 있다.