URL 단축 및 QR코드 생성 및 저장 서비스
![Screenshot 2023-08-25 at 11 35 12 PM](https://private-user-images.githubusercontent.com/68728192/263300495-afa67fe0-5ad2-43f3-b9c6-af395ec6ad8b.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxODE4ODIsIm5iZiI6MTczOTE4MTU4MiwicGF0aCI6Ii82ODcyODE5Mi8yNjMzMDA0OTUtYWZhNjdmZTAtNWFkMi00M2YzLWI5YzYtYWYzOTVlYzZhZDhiLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA5NTk0MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTlmNjIwMzI1NzYxOGFmNzI1MmRiZGZhNGRlNzhmNDI3NDU2ZTE1ZGNmM2VkNzJjZTZjNGZlMjIyNTFhOWNkZjcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.ae5QMvO1mI-yTAj5XSC_HiG07X_1Fi3KzK2tAFDTWoc)
https://drk-shortit.vercel.app/
Next.js
, Mongo DB
, Axios
, react-qr-codes
![Screenshot 2023-08-25 at 11 35 04 PM](https://private-user-images.githubusercontent.com/68728192/263302919-09558297-2cec-469b-8070-edff3b0b6e47.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxODE4ODIsIm5iZiI6MTczOTE4MTU4MiwicGF0aCI6Ii82ODcyODE5Mi8yNjMzMDI5MTktMDk1NTgyOTctMmNlYy00NjliLTgwNzAtZWRmZjNiMGI2ZTQ3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA5NTk0MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWU3MGEzZjQ2ZGRhOGYzNmViM2YwMGJlODk4ZjdmYjEzOTAyYTdjODQyNGU1ZjE4MDFjMDU3NjRjYWY2MGU0MGEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.XL4VsA77tr1dq277-XrlXJi223f__1x4piXypOy0Dy0)
![Screenshot 2023-08-25 at 11 34 52 PM](https://private-user-images.githubusercontent.com/68728192/263302902-5c757ccf-290c-4631-8777-78b162dcc164.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkxODE4ODIsIm5iZiI6MTczOTE4MTU4MiwicGF0aCI6Ii82ODcyODE5Mi8yNjMzMDI5MDItNWM3NTdjY2YtMjkwYy00NjMxLTg3NzctNzhiMTYyZGNjMTY0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTAlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEwVDA5NTk0MlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWNlZmIxMmM2ZTY3OGNiOTA0OGU0MTA2MjJlYmUwOGIzMmE1ZTkyNTIzNDYwYTFlOGQ0NDU0ZTVhNTg4Y2UwMTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.M0XbeVJcxmBzebwnHkN5deSowNdW3S1sCKYXv4ZYdDg)
저장했던 사이트 리스트를 서버사이드렌더링으로 구현하였으며, 삭제나 수정 이후에도 바로 목록이 바뀔 수 있도록 하였습니다.
Mongo DB의 컬렉션에 URL 내용을 저장하기 위해 요청 시 body 양식과 보내야하는 주소에 대해서 구상하고 구현하였습니다. 해당 기능을 위한 인터페이스는 'pages/api/'폴더에 있는 각 엔드포인트별 index 및 동적 라우팅 파일을 확인해주시기 바랍니다.
📂components
┃ ┣ 📜Button.js
┃ ┣ 📜Button.module.css
┃ ┣ 📜Card.js
┃ ┣ 📜Card.module.css
┃ ┣ 📜Input.js
┃ ┣ 📜Input.module.css
┃ ┣ 📜Link.js
┃ ┣ 📜Link.module.css
┃ ┣ 📜QRCode.js
┃ ┣ 📜QRCodeForm.js
┃ ┣ 📜QRCodeForm.module.css
┃ ┣ 📜QRCodeList.js
┃ ┣ 📜QRCodeList.module.css
┃ ┣ 📜ShortLinkForm.js
┃ ┣ 📜ShortLinkForm.module.css
┃ ┣ 📜ShortLinkList.js
┃ ┗ 📜ShortLinkList.module.css
┣ 📂db
┃ ┣ 📂models
┃ ┃ ┣ 📜QRCode.js
┃ ┃ ┗ 📜ShortLink.js
┃ ┗ 📜dbConnect.js
┣ 📂lib
┃ ┣ 📜axios.js
┃ ┣ 📜copyToClipboard.js
┃ ┣ 📜createShortURL.js
┃ ┗ 📜formatDate.js
┣ 📂pages
┃ ┣ 📂api
┃ ┃ ┣ 📂qrcodes
┃ ┃ ┃ ┣ 📜[id].js
┃ ┃ ┃ ┗ 📜index.js
┃ ┃ ┗ 📂short-links
┃ ┃ ┃ ┣ 📜[id].js
┃ ┃ ┃ ┗ 📜index.js
┃ ┣ 📂qrcodes
┃ ┃ ┣ 📜[id].js
┃ ┃ ┣ 📜index.js
┃ ┃ ┗ 📜new.js
┃ ┣ 📂short-links
┃ ┃ ┣ 📜[id].js
┃ ┃ ┣ 📜index.js
┃ ┃ ┗ 📜new.js
┃ ┣ 📜[shortUrl].js
┃ ┣ 📜_app.js
┃ ┣ 📜_document.js
┃ ┗ 📜index.js
┣ 📂public
┃ ┣ 📜calendar.svg
┃ ┣ 📜cut-url.svg
┃ ┣ 📜favicon.ico
┃ ┣ 📜link.svg
┃ ┣ 📜logo.svg
┃ ┗ 📜reply.svg
┣ 📂styles
┃ ┣ 📜App.module.css
┃ ┣ 📜Home.module.css
┃ ┣ 📜QRCodeCreatePage.module.css
┃ ┣ 📜QRCodeEditPage.module.css
┃ ┣ 📜QRCodeListPage.module.css
┃ ┣ 📜ShortLinkCreatePage.module.css
┃ ┣ 📜ShortLinkEditPage.module.css
┃ ┣ 📜ShortLinkListPage.module.css
┃ ┗ 📜global.css
┣ 📜.env.local
┣ 📜.eslintrc.json
┣ 📜.gitignore
┣ 📜README.md
┣ 📜jsconfig.json
┣ 📜next.config.js
┣ 📜package-lock.json
┣ 📜package.json
┗ 📜request.http