giphy에서 아이디어를 얻어, 쉽게 meme을 찾고 첨부할 수 있는 사이트를 만들어보고자 했습니다.
클릭하면 경로가 복사되며, 로그인 후 원하는 밈을 업로드할 수 있습니다.
이 과정에서 작성할 포스트를 정리해볼까 합니다.
1. Masony layout
우선 사양한 meme을 한 눈에 볼 수 있도록 Masony layout을 구현했습니다.
아쉬운 점은 Grid를 이용한 것이 아니라 column-count를 이용했다는 것입니다.
brunch 웹 사이트에서 아주 멋진 Grid를 발견했는데, 저도 이후에 이 서비스를 정식 서비스로 만든다면 Grid로 바꿔보고 싶습니다.
2. resizing + AWS 업로드
또한, 이미지 업로드 시 resizing을 하기 위해 sharp를 사용했습니다.
3. swipe to load를 위한 infinite scroll
이미지가 많아질 경우 pagination을 구현해야 하는데 페이지 이동 버튼을 누르기보다 모바일 어플리케이션에서 하듯 swipe to load를 구현하고 싶었습니다. 이를 위해 infinite scroll을 구현하였습니다.
4. jwt 인증 기반 로그인
유저 개개인이 meme을 업로드할 수 있도록 로그인을 구현해야 했습니다.
5. Clipboard API
유저가 meme을 클릭하면 자동복사가 되게끔 하기 위해 Clipboard API를 이용한 react-copy-to-clipboard 패키지를 사용했습니다.
6. DOM 조작을 통한 파일 업로드
솔직히 삽질을 많이 했습니다. 특히 2번째 게시글인 input[type=file]의 스타일링은 그냥 input/label을 모조리 숨기고 input DOM을 js로 생성해서 가상 클릭을 하는 게 가장 깔끔하고 레이아웃 잡기도 쉬웠음에도...
'📑 Project > 📑 프로젝트 후기' 카테고리의 다른 글
snu-mud-webgame (0) | 2021.12.22 |
---|---|
snu-coin 거래소 (0) | 2021.06.13 |
Fuze) Next.ts + node.ts 배포 과정 (0) | 2021.02.26 |
youtube-clone (Node+Pug+freenom+Cloudflare) (0) | 2020.10.27 |
turnchat-form 과제 전형 후기 (0) | 2020.10.13 |