OpenSea Project

Hongยท2022๋…„ 12์›” 30์ผ
0
post-thumbnail





๐Ÿช™ SDS - 721

๊ฐ ํŒ€์›๋“ค์˜ ์ด๋ฆ„์—์„œ ์•ŒํŒŒ๋ฒณ์„ ๊ฐ€์ ธ์™”๊ณ ,
ERC-721 NFT token์—์„œ ์˜๊ฐ์„ ๋ฐ›์•„ ํŒ€๋ช…์„ SDS-721๋กœ ๋งŒ๋“ค์—ˆ๋‹ค.



๐ŸงŸโ€โ™€๏ธ๐ŸงŸ๐ŸงŸโ€โ™‚๏ธ Role and Responsibility

๐Ÿ‘‘ S (ํŒ€์žฅ๋‹˜)

  • API ์„œ๋ฒ„ ๊ตฌํ˜„ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ
  • SmartContract ์ž‘์„ฑ ๋ฐ ๋ฐฐํฌ
  • Github Action์„ ํ†ตํ•œ CI/CD ๊ตฌ์ถ•
  • AWS ๋ฐฐํฌ

๐Ÿน D

  • ํ”„๋ก ํŠธ์—”๋“œ
  • ๋ฐฑ์—”๋“œ
  • DB ์Šคํ‚ค๋งˆ ์ž‘์„ฑ

๐Ÿ’ช S (Me)

  • Figma Wireframe prototype ๋””์ž์ธ
  • ํ”„๋ก ํŠธ์—”๋“œ UI/UX ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ํ”„๋กœ์ ํŠธ ๋ฌธ์„œํ™”

๐Ÿ™‡โ€โ™‚๏ธ
์•„์ง ๋ถ€์กฑํ•œ ์ ์ด ๋งŽ์€ ๋‚˜๋Š” ์ฒซ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์ •๋ง๋กœ ์ข‹์€ ํŒ€์›๋ถ„๋“ค์„ ๋งŒ๋‚˜ ์„ฑ๊ณต์ ์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ๋ฌด๋ฆฌ ํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
์ด ์ž๋ฆฌ๋ฅผ ๋นŒ์–ด ํ•จ๊ป˜ํ•ด์ฃผ์‹  ํŒ€์›๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌ์˜ ์ธ์‚ฌ๋ฅผ ๋“œ๋ฆฝ๋‹ˆ๋‹ค.



๐ŸŒŠ ABOUT PROJECT

NFT์˜ ๋งค์ถœ์€ 2021๋…„์— ํญ๋ฐœ์ ์œผ๋กœ ์„ฑ์žฅํ–ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ 2021๋…„ ๋งค์ถœ์€ 9,500๋งŒ ๋‹ฌ๋Ÿฌ์—์„œ 250์–ต ๋‹ฌ๋Ÿฌ๋กœ ์ฆ๊ฐ€ํ–ˆ๋‹ค. ๋Œ€์ฒด ๋ถˆ๊ฐ€๋Šฅ ํ† ํฐ(NFT)์ด ๋Œ€์œ ํ–‰์ด์—ˆ์œผ๋ฉฐ ์ด ํ˜„์ƒ์˜ ์ค‘์‹ฌ์— ์„ธ๊ณ„ ์ตœ๋Œ€์˜ NFT ์‹œ์žฅ์ธ ์˜คํ”ˆ์”จ(OpenSea)๊ฐ€ ์žˆ์—ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ˜„์ƒ ์†์—์„œ ์šฐ๋ฆฌ ํŒ€์›๋“ค์€ OpenSea ํด๋ก ์ฝ”๋”ฉ์„ ํ†ตํ•ด NFT๋งˆ์ผ“ ํ”Œ๋ ˆ์ด์Šค์˜ ์ „์ฒด์ ์ธ ์•„ํ‚คํ…์ฒ˜๋ฅผ ์ดํ•ดํ•˜๊ณ  Web3 ํ”Œ๋žซํผ ์†์—์„œ User์˜ ๋ฐ์ดํ„ฐ ์ฃผ๊ถŒ์ด ์–ด๋–ป๊ฒŒ ๋ณดํ˜ธ๋˜๋Š”์ง€ ์‚ดํŽด๋ณด๊ธฐ ์œ„ํ•ด ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ–ˆ๋‹ค.



๐Ÿ… WHAT WE GOT FROM THE PROJECT

OpenSea์˜ ํ”„๋ก ํŠธ์—”๋“œ-๋ฐฑ์—”๋“œ ์•„ํ‚คํ…์ฒ˜์ดํ•ด
OpenSea์˜ API์˜ ๋™์ž‘์›๋ฆฌ๋ฅผ ์ดํ•ด
Git์„ ํ†ตํ•œ ํ˜‘์—…์˜ ์ค‘์š”์„ฑ์— ๋Œ€ํ•œ ์ดํ•ด ๋ฐ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋Šฅ๋ ฅ์˜ ํ–ฅ์ƒ



๐Ÿ‹ Project App

Main Page

Main Page์— ๋“ค์–ด๊ฐ€๋ฉด Contract์— ๋ฐœํ–‰๋œ ๋ชจ๋“  NFT๊ฐ€ ๋žœ๋ค์œผ๋กœ ๋ฆฌ์ŠคํŒ…๋œ๋‹ค.
์ฒ˜์Œ์— 8๊ฐœ์˜ NFT๊ฐ€ ๋จผ์ € ๋ณด์ด๋ฉฐ Load More๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด 4๊ฐœ๊ฐ€ ์ถ”๊ฐ€๋กœ ๋กœ๋“œ๋œ๋‹ค.

๋‚˜๋Š” Web Page์ „์ฒด์˜ ๋””์ž์ธ๊ณผ NFT card์˜ UI๋ฐฐ์น˜, UX๊ฐœ์„ ์„ ์œ„ํ•ด Load More ๋ฒ„ํŠผ๊ณผ, Top๋ฒ„ํŠผ(์Šคํฌ๋กค์„ ์•„๋ž˜๋กœ ๋‚ด๋ ธ์„ ๋•Œ ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์ œ์ผ ์œ„๋กœ ์˜ฌ๋ฆผ) ๊ทธ๋ฆฌ๊ณ  css์™€ tailwind๋ฅผ ์ด์šฉํ•ด ์‚ฌ์†Œํ•˜๊ฒŒ ์ผ์–ด๋‚˜๋Š” ์—๋Ÿฌ๋“ค์„ ๋‹ค๋“ฌ์—ˆ์œผ๋ฉฐ ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ Effect๋ฅผ ์ค„๋ ค๊ณ  ๋…ธ๋ ฅํ–ˆ๋‹ค.



Details Page, Explore Page (Categories)

๊ฐœ๋ณ„ NFT card๋ฅผ ํด๋ฆญํ•˜๋ฉด Details ํŽ˜์ด์ง€๋กœ ์—ฐ๊ฒฐ๋˜๋ฉฐ, ๊ฐ NFT๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์†์„ฑ์— ๋”ฐ๋ผ ํ•„ํ„ฐ๋ง ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ๋„ ์žˆ๋‹ค.

๋‚˜๋Š” Explore์™€ DetailsํŽ˜์ด์ง€์˜ ์ „์ฒด์ ์ธ ๋””์ž์ธ์„ ๋งก์•˜๊ณ  DetailํŽ˜์ด์ง€์— ๋“ค์–ด๊ฐ€๋ฉด ๋ณธ์ธ์ด ํ•ด๋‹น NFT card์˜ owner๊ฐ€ ์•„๋‹ ๊ฒฝ์šฐ Buyํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ„ํŠผ์„ ๋งŒ๋“ค์—ˆ๋‹ค(๋ณธ์ธ์ด NFT card์˜ owner๋ฉด Buy๋ฒ„ํŠผ์ด ์•ˆ๋ณด์ธ๋‹ค).

CSS Frame์„ ์งœ๋Š” ๊ฒƒ๋„ ๊ทธ๋ ‡๊ณ  ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋‹ค๊ฐ€ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ์—๋Ÿฌ๋ฅผ ๋งŒ๋‚ฌ๋Š”๋ฐ Details ํŽ˜์ด์ง€๋ฅผ ์ž‘์—…ํ•˜๋‹ค๊ฐ€ buy button์„ ๋ˆ„๋ฅด๋ฉด ๊ณ„์† ์ƒˆ๋กœ๊ณ ์นจ๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์ผ์–ด๋‚ฌ๋‹ค.
์•Œ๊ณ ๋ณด๋‹ˆ form tag์•ˆ์— button tag๋ฅผ ๋ˆ„๋ฅด๋ฉด ํŽ˜์ด์ง€๊ฐ€ reload๋˜๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ preventDefault๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ์ง€๋งŒ ๊ทธ๋ƒฅ form tag ์ž์ฒด๋ฅผ ๋ฐ”๊ฟ”์„œ ํ•ด๊ฒฐํ–ˆ๋‹ค.

๊ทธ ๋ฐ–์— React ๋žœ๋”๋ง ๋“ฑ์˜ ๋ฌธ์ œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ CSS๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ์›ํ•˜๋Š” ์œ„์น˜์— ๋ฐฐ์น˜๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ, ์š”์†Œ๊ฐ€ overflow๋˜๋Š” ๋ฌธ์ œ ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฌธ์ œ๋“ค์ด ๋งŽ์•˜์ง€๋งŒ ๊ฐ€์žฅ ํ•ด๊ฒฐํ•˜๊ธฐ ๊ฐ„๋‹จํ–ˆ๋˜ ๋ฌธ์ œ๋งŒ ๋“ค๊ณ ์™”๋‹ค.

ํ•ด์•ผํ•  Task์— ์ง‘์ค‘ํ•˜๋Š๋ผ ์‹œ๊ฐ„์— ์ซ“๊ฒจ ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ๋งŒ๋‚ฌ๊ณ  ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ํ•ด๊ฒฐํ–ˆ๋Š”์ง€ ๊ธฐ๋ก์œผ๋กœ ๋‚จ๊ธฐ์ง€ ๋ชปํ•œ๊ฒŒ ๋„ˆ๋ฌด ์•„์‰ฝ๋‹ค.

...(์ƒ๋žต)

      <div className="sidebar ml-[7rem] w-[400px] shrink-0 flex-col">
        <div className="m-[50px]">
          <NftCard
            nft_img={nft.image}
            nft_name={nft.name}
            artist_name={nft.owner}
            artist_profile={profile_sample}
            price={nft.price}
          />
        </div>
        <div> //was <form>
          {owner ? (
            <button
              className="mx-[50px] h-[45px] w-[300px] rounded-2xl border-2 bg-blue font-semibold text-white shadow-black transition-all hover:scale-105 hover:cursor-pointer"
              onClick={buyClick}
            >
              Buy This NFT !
            </button>
          ) : (
            <button className="hidden font-semibold text-black">
              You are not owner!!!!!!!!!!!!!
            </button>
          )}
        </div> //was </form>
      </div>

...(์ƒ๋žต)


Mint Page

mint ํŽ˜์ด์ง€์—์„œ๋Š” ์›ํ•˜๋Š” ์ด๋ฏธ์ง€๋ฅผ ์‚ฝ์ž…ํ•˜๋ฉด ipfs์— ์ด๋ฏธ์ง€๊ฐ€ ์—…๋กœ๋“œ๋œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  User๊ฐ€ Name, Description, Price, Category๋ฅผ ์„ค์ •ํ•˜๊ณ  Creat NFT๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด

NFT์— ๋“ค์–ด๊ฐˆ meta data๊ฐ€ ์ƒ์„ฑ๋˜์–ด ipfs์— meta data๊ฐ€ ์ €์žฅ๋œ๋‹ค
๊ทธ๋ฆฌ๊ณ  web3.js library๋ฅผ ํ”„๋ก ํŠธ์—์„œ ์‹คํ–‰ํ•˜์—ฌ ๋ฏธ๋ฆฌ ๋ฐฐํฌํ•œ smart contract์˜ mintNFTํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค.

์ด๋ฅผ ์ง€์ผœ๋ณด๊ณ  ์žˆ๋˜ ๋ฐฑ์—”๋“œ ์„œ๋ฒ„๋Š” mintNFT์˜ event๋ฅผ blockChain ์„œ๋ฒ„์—์„œ ์ง€์ผœ๋ณด๋‹ค๊ฐ€ event๊ฐ€ ๊ฐ์ง€๋˜๋ฉด ํ•ด๋‹น mintNFT์˜ ์ •๋ณด๋ฅผ Database์— ์ €์žฅํ•˜๊ณ  ํ”„๋ก ํŠธ์—”๋“œ์— API์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์ค€๋‹ค.



MyPage

mint๋œ NFT๋Š” ๋ฉ”ํƒ€๋งˆ์Šคํฌ์™€ ์—ฐ๊ฒฐ๋˜์–ดmypage์—์„œ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
์†Œ์œ ํ•œ NFT์™€(collected) ๋‚ด๊ฐ€ ๋ฐœํ–‰ํ•œ NFT(created)๋ฅผ ๊ตฌ๋ถ„ํ•ด์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.
(๋ˆ„๊ตฐ๊ฐ€๊ฐ€ Buyํ•˜๋ฉด collected list์—์„œ ์ œ์™ธ๋œ๋‹ค)



๐ŸŽจ ๋‚ด๊ฐ€ ๋งŒ๋“ค์—ˆ๋˜ Wireframe Prototype







๐Ÿ™โ€โ™‚๏ธUser Flow






๐Ÿ‘พ DB Schema



๐Ÿ“ ToDoList

ToDo List

  • task 1) ํ—ค๋” ์ƒ์„ฑ
    • ์›นํŽ˜์ด์ง€ ๋กœ๊ณ ๋ฅผ ๋ˆ„๋ฅด๋ฉด ๋ฉ”์ธ ํŽ˜์ด์ง€๋กœ ๋Œ์•„๊ฐ
    • ์ง€๊ฐ‘ ์—ฐ๊ฒฐ ๋ฒ„ํŠผ
      • ์ง€๊ฐ‘ ์—ฐ๊ฒฐ์„ ํ–ˆ์„ ๋•Œ ) ์ง€๊ฐ‘ ์—ฐ๊ฒฐ์ด ๋˜์–ด ์žˆ๋Š” ์ƒํƒœ๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๋กœ๊ณ 
      • ์ง€๊ฐ‘ ์—ฐ๊ฒฐ์„ ํ•˜์ง€ ์•Š์•˜์„ ๋•Œ) ์ง€๊ฐ‘ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š๋Š” ์ƒํƒœ๋ฅผ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ๋Š” ๋กœ๊ณ 
    • ๋งˆ์ผ“, NFT๋ฏผํŒ…, ๋งˆ์ดํŽ˜์ด์ง€ ๋‚ด๋น„๊ฒŒ์ด์…˜
  • task 2) ๋ฉ”์ธ ํŽ˜์ด์ง€ (๋žœ๋”ฉ ํŽ˜์ด์ง€)
    • NFT ๋ฆฌ์ŠคํŠธ
      • 10ํŽ˜์ด์ง€ ๋‹จ์œ„์”ฉ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก ํŽ˜์ด์ง€๋„ค์ด์…˜์œผ๋กœ ๊ฐœ๋ฐœ
      • ๊ฒŒ์‹œ๊ธ€ ์ œ๋ชฉ์— ์ปค์„œ๋ฅผ ๋Œ€๋ฉด ์ปค์„œ๊ฐ€ ๋ˆ„๋ฅด๋Š” ๋ชจ์–‘์œผ๋กœ ๋ฐ”๋€Œ์–ด์•ผ ํ•จ
      • ์„œ๋ฒ„์—์„œ NFT ๋ฆฌ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์™€์•ผ ํ•จ
  • task 3) NFT ๋ฏผํŒ… ํŽ˜์ด์ง€
    • ๋ฆฌ์•กํŠธ์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ ํผ์œผ๋กœ NFT ๋ฏผํŒ… ํŽ˜์ด์ง€๋ฅผ ๊ฐœ๋ฐœ
    • ์ด๋ฏธ์ง€, ์ด๋ฆ„, ์ƒ์„ธ๋‚ด์šฉ ์นธ ์žˆ์–ด์•ผ ํ•จ
    • ๋ฏผํŒ… ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด, ์ง€๊ฐ‘ ์„œ๋ช… ํ†ตํ•ด ํŠธ๋žœ์žญ์…˜ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•จ
  • task 4) ํ…Œ๋งˆ๋ณ„ NFT ๋ฆฌ์ŠคํŠธ ํŽ˜์ด์ง€
    • ํƒญ ๊ธฐ๋Šฅ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ๋งˆ๋ณ„ NFT ๋ฆฌ์ŠคํŠธ ์กฐํšŒ ๊ฐ€๋Šฅํ•ด์•ผ ํ•จ
    • NFT ์ด๋ฏธ์ง€์™€ ์ž‘๊ฐ€ ์ด๋ฆ„ ์กด์žฌํ•ด์•ผ ํ•จ
    • ๋ชฉ๋ก ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๊ฒŒ์‹œ๊ธ€ ๋ฆฌ์ŠคํŠธ์˜ ํด๋ฆญํ–ˆ๋˜ ๋ชฉ๋ก์œผ๋กœ ๋Œ์•„๊ฐ
  • task 5) NFT ์ƒ์„ธ ํŽ˜์ด์ง€
    • ์ด๋ฏธ์ง€๋ฅผ ํฌํ•จํ•œ NFT ์ƒ์„ธ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
    • ๊ฑฐ๋ž˜๋˜๋Š” ๊ฐ€๊ฒฉ์„ ๋ณด์—ฌ์ค„ ์ˆ˜ ์žˆ์–ด์•ผํ•จ
    • ๊ตฌ์ž…๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ง€๊ฐ‘์„ ํ†ตํ•ด ํŠธ๋žœ์žญ์…˜์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
  • task 6) ๋งˆ์ด ํŽ˜์ด์ง€
    • ํ”„๋กœํ•„, ๋ณด์œ ํ•œ NFT, ๋ฐœํ–‰ํ•œ NFT ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์–ด์•ผ ํ•จ
    • ์ง€๊ฐ‘ ์—ฐ๊ฒฐ์„ ํ•ด์ œํ•  ์ˆ˜ ์žˆ์–ด์•ผํ•จ


๐Ÿ˜ผ Git Work Flow and Rule

  • Feature Branch(๊ทธ๋•Œ๊ทธ๋•Œ ์ด๋ฆ„์ด ๋‹ฌ๋ผ์ง ex. feat/details)๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ถฉ๋Œ ์•ˆ๋‚˜๊ฒŒ ๊ด€๋ฆฌ
  • Local์—์„œ ์ž‘์—…ํ•˜๊ธฐ ์ „์— ์›๋ณธ dev brnach์—์„œ pull๋ฐ›์•„์™€์„œ ์ตœ์‹ ์ƒํƒœ ์œ ์ง€ํ•˜๊ธฐ
  • ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ๋ณธ์ธ repo๋กœ pushํ•˜๊ณ  ์›๋ณธ repo dev ๋ธŒ๋žœ์น˜์— pull request(PR)


๐Ÿ’ช ๋Š๋ผ๊ณ  ๋ฐฐ์šด์ 

๋‚ด๊ฐ€ ํ•  ์ˆ˜ ์—†๋Š” ๊ฑธ๋กœ ์ž์ฑ…ํ•˜๋ฉฐ ๋จธ๋ฌผ๋Ÿฌ์žˆ๊ธฐ๋ณด๋‹ค ํŒ€ ์•ˆ์—์„œ ์‚ฌ์†Œํ•œ ๊ฑฐ๋ผ๋„ ๋‚ด๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฑธ ์ฐพ์•„ ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ–ˆ๋‹ค.

๋‹คํ–‰ํžˆ S(ํŒ€์žฅ) ๋‹˜์ด ๋ฐฑ์—”๋“œ ํฌ์ง€์…˜์„ ์›ํ•˜์…จ๊ธฐ ๋•Œ๋ฌธ์— ๋‚˜๋Š” ๊ณต๋ชจ์ „์—์„œ ์ˆ˜์ƒํ•œ ๊ฒฝํ—˜๋„ ์žˆ๊ณ  ๋””์ž์ธ ๊ฐ๊ฐ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ด์„œ ํ”„๋ก ํŠธ ์—”๋“œ์—์„œ UI/UX๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ์ชฝ์— ํž˜์„ ๋งŽ์ด ์Ÿ์•˜๋‹ค.
ํŒ€์›๋ถ„๋“ค์ด ๋‚˜์˜ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„์„ ์ž˜ ์ฑ„์›Œ์ฃผ์‹ค ์ˆ˜ ์žˆ์–ด์„œ ์ •๋ง ๊ฐ์‚ฌํ–ˆ๋‹ค.
ํ•˜์ง€๋งŒ ํ•ญ์ƒ ๋‚˜์˜ ๋ถ€์กฑํ•œ ์ ์„ ์ฑ„์›Œ์ฃผ๋Š” ํŒ€์›๋“ค์„ ๋งŒ๋‚˜๋Š” ์„ธ์ƒ์ด ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‹น์žฅ ๋‹ค์Œ ํ”„๋กœ์ ํŠธ๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ ํ›—๋‚  ๋ฐฑ์—”๋“œ ๋ถ„์•ผ์˜ ์ง€์‹๋„ ์Šต๋“ํ•˜์—ฌ ํŒ€์— ์–ด๋–ค ๊ตฌ์„ฑ์›์ด ๋“ค์–ด์˜ค๋”๋ผ๋„ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์ด ๋˜์–ด์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์„ ํ–ˆ๋‹ค.

์ฝ”๋“œ๋ฅผ ๋‘๋“œ๋ฆฐ์ง€ ์–ผ๋งˆ ๋˜์ง€ ์•Š์•˜๋‹ค๋Š” ํ•‘๊ณ„๋ฅผ ๋นŒ๋ ค ์–ด๋ ค์›€์„ ๋‚˜์—ดํ•ด๋ณด์ž๋ฉด, ๋‚˜๋Š” ์ด์ „์— ๋ฐฐ์› ๋˜ React๋„ ์ต์ˆ™ํ•˜์ง€ ์•Š์•˜๊ณ , Figma, CSS, Tailwind, Git Branch Work Flow, Smart Contract, Web3.js ๋“ฑ ๋ชจ๋‘ ์ฒ˜์Œ ์‹œ๋„ํ•ด ๋ณด๋Š” ๊ฒƒ๋“ค์ด๋ผ ์ฒ˜์Œ์— ์ ์‘ํ•˜๋Š”๋ฐ ๊ฝค๋‚˜ ์• ๋ฅผ ๋จน์—ˆ๋‹ค.

๋™๊ธฐ ๋ถ„๋“ค ์ค‘์— ๋‚˜์ฒ˜๋Ÿผ ์ด๋ฒˆ ๊ธฐํšŒ๋ฅผ ํ†ตํ•ด ์ฝ”๋”ฉ์„ ์ฒ˜์Œ ์ ‘ํ•œ ๋ถ„๋“ค์€ ํ”„๋กœ์ ํŠธ ๊ณผ์ •์—์„œ ์‹ค๋ ฅ์ด ์ข‹์€ ๋ถ„๋“ค๊ณผ ๋ณธ์ธ์„ ๋น„๊ตํ•˜๋ฉฐ ์ •์ž‘ ๋ณธ์ธ์˜ ๋Šฅ๋ ฅ์„ ๋‹ค ๋ฐœํœ˜ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ถ„๋“ค์ด ์ข…์ข… ๊ณ„์‹ ๊ฒƒ ๊ฐ™์•˜๋‹ค.
ํ•˜์ง€๋งŒ ๋‚˜๋Š” 3๊ฐœ์›” ์ „, 4๊ฐœ์›” ์ „์˜ ๋‚˜๋ณด๋‹ค ์ง€๊ธˆ์˜ ๋‚ด๊ฐ€ ํ›จ์”ฌ ๋” ๋‚˜์€ ์‚ฌ๋žŒ์ด ๋˜์–ด์žˆ๋‹ค๋Š” ์‚ฌ์‹ค์— ์ง‘์ค‘ํ–ˆ๋‹ค. ๋‚˜๋Š” ์•„์ง ์ž„๊ณ„์ ์„ ๋„˜์ง€ ๋ชปํ–ˆ์„ ๋ฟ ์ถฉ๋ถ„ํ•œ ํ•™์Šต๋Šฅ๋ ฅ์ด ์žˆ๋Š” ์‚ฌ๋žŒ์ด๋ผ๋Š” ์ž์‹ ๊ฐ์ด ์žˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ์–ด๋ ค์šด ๋ฌธ์ œ์— ๊ธˆ๋ฐฉ ์ ์‘ํ•ด ๋‚˜๊ฐ”๋‹ค.

๋•Œ๋ฌธ์— '๋ถ€์กฑํ•œ ํŒ€์› + ์งง์€ ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„' ์ž„์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋‚ด๊ฐ€ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ๋ถ„๋ช… ์žˆ์—ˆ๋‹ค.

๋ฐฐ์› ๋˜ ๊ฒฝ์ œํ•™์„ ์ž ๊น ์ œ์ณ๋‘๊ณ  ์ƒˆ๋กœ์šด ๋ถ„์•ผ๋ฅผ ์ตํžˆ๋Š” ๊ณผ์ • ์ž์ฒด๊ฐ€ ๋„์ „์ด์—ˆ๋Š”๋ฐ ๊ทธ ์•ˆ์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ๋ฉ‹์ง„ ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“ค์–ด ๋‚ด๋Š” ๊ฒƒ์€ ์–ด๋ ต๊ฒŒ ๋”›์€ ๋ฐœ์„ ๋‹ค์‹œ ๋“ค์–ด์˜ฌ๋ ค ํ•œ ๋ฐœ์ž๊ตญ ๋” ๋‚˜์•„๊ฐ€๋Š” ์ผ์ด์—ˆ๋‹ค.

์‚ฌํšŒ ์ดˆ๋…„์ƒ์œผ๋กœ์„œ ์ง€๊ธˆ ๋ฐฐ์šฐ๊ณ  ์žˆ๋Š” ๋ถ„์•ผ์˜ ์ง€์‹์ด ํ›—๋‚  ๋’ค ๋Œ์•„๋ดค์„ ๋•Œ ์–ด๋–ค Connecting Dots๋กœ ์ฐํ˜€์žˆ์„์ง€ ์—ฌ์ „ํžˆ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค.
ํ•˜์ง€๋งŒ ๊ทธ์ € ํ•จ๊ป˜ ๋ฐค์„ ์ƒˆ์›Œ๊ฐ€๋ฉฐ ์˜ค๋žœ ์‹œ๊ฐ„์„ ์Ÿ์•„ ๋ฌด์—‡์ธ๊ฐ€๋ฅผ ๋งŒ๋“ค๊ณ  ์„ฑ์ทจ๊ฐ์„ ๋Š๋‚„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝํ—˜์„ ํ•  ์ˆ˜ ์žˆ์–ด ๊ฐ์‚ฌํ–ˆ๋‹ค.





๐Ÿ”ง Stack

Frontend

  • react
  • tailwindcss
  • fetch api

Blockchain

  • solidity
  • goerli
  • remix
  • ipfs

Backend

  • node.js
  • express.js
  • mongoose
  • infura websocket api

Team Collaboration Tool

  • notion / discord
  • github
  • figma
  • hackolade
  • gitbook
  • eslint / prettier

Deployment

  • github action
  • client : AWS S3
  • server : AWS EC2, pm2
  • db: mongodb atlas
profile
Notorious

0๊ฐœ์˜ ๋Œ“๊ธ€