Skip to content

Latest commit

Β 

History

History
135 lines (87 loc) Β· 9.86 KB

README.md

File metadata and controls

135 lines (87 loc) Β· 9.86 KB

πŸ”— 2021 Hdac Technology Competition - NFTλ₯Ό ν™œμš©ν•œ μ„œλΉ„μŠ€ λͺ¨λΈ 개발

ν”„λ‘œμ νŠΈ κ°œμš”

  • ν”„λ‘œμ νŠΈ κ³Όμ • : 2021 ν˜μ‹ μ„±μž₯ μ²­λ…„μΈμž¬ 양성사업, 블둝체인을 ν™œμš©ν•œ λΉ„μ¦ˆλ‹ˆμŠ€ λͺ¨λΈ 개발
  • ν”„λ‘œμ νŠΈ λͺ… : NFT 기반 μ•„λ§ˆμΆ”μ–΄ μ•„ν‹°μŠ€νŠΈ 후원 ν”Œλž«νΌ, μ•„λ§ˆλ„(AMADO)
  • ν”„λ‘œμ νŠΈ κΈ°κ°„ : 21.08.25 ~ 21.09.27
  • κ΅¬ν˜„ λͺ©ν‘œ :
    1. μ•„λ§ˆμΆ”μ–΄ μ•„ν‹°μŠ€νŠΈλ“€μ˜ μž‘ν’ˆ 및 데이터 μ•± λ‚΄ 진열 ν›„ νŠΉμ • κΈ°λΆ€μžκ°€ μ•„ν‹°μŠ€μ•„λ§ˆμΆ”μ–΄ μ•„ν‹°μŠ€νŠΈλ“€μ˜ μž‘ν’ˆμ„ κ΅¬λ§€ν•˜μ—¬ NFT둜 λ―ΌνŒ…
    2. μ•„λ§ˆμΆ”μ–΄ μ•„ν‹°μŠ€λ“€μ˜ μž‘ν’ˆμ„ μ›Ή μƒμ—μ„œ μ „μ‹œν•  수 μžˆλŠ” 가러리 곡간 μ œμž‘

ν”„λ‘œμ νŠΈ μ„€λͺ…

1. μ„œλΉ„μŠ€ μ„€λͺ…
디지털 μΈμ¦μ„œλΌ λΆˆλ¦¬λŠ” 'NFT'λΌλŠ” 블둝체인 κΈ°μˆ μ„ ν™œμš©ν•˜μ—¬ 경제적인 어렀움을 κ²ͺλŠ” μ•„λ§ˆμΆ”μ–΄ μ˜ˆμˆ κ°€λ“€μ˜ μž‘ν’ˆν™œλ™μ„ μ§€μ§€ν•˜λŠ” κΈ°λΆ€ ν”Œλž«νΌμž…λ‹ˆλ‹€. 저희 ν”Œλž«νΌμ„ 톡해 μ•„λ§ˆμΆ”μ–΄ μ˜ˆμˆ κ°€λ“€μ˜ μž‘ν’ˆμ„ NFT둜 λ°œν–‰ν•˜κ³ , ν”Œλž«νΌ μƒμ˜ ν›„μ›μžλ“€μ„ λͺ¨μ§‘ν•΄ λ°œν–‰λœ NFTλ₯Ό ν›„μ›ν•˜λ„λ‘ ν•˜κ±°λ‚˜ ν”Œλž«νΌ 상에 ν›„μ›λœ κΈˆμ•‘μ„ ν”Œλž«νΌ λ‚΄ μ•„ν‹°μŠ€νŠΈλ“€μ—κ²Œ 적절히 λΆ„λ°°ν•˜μ—¬ ν›„μ›ν•©λ‹ˆλ‹€.

2. ν˜„ν™©(문제점)
μš°λ¦¬λ‚˜λΌ λ―Έμˆ λΆ„μ•Όμ—μ„œλŠ” μ‹€μ œ μž‘κ°€λ‘œμ„œμ˜ μœ„μƒμ„ μ§€λ‹Œ κ²½μš°κ°€ 30%에 λΆˆκ³Όν•©λ‹ˆλ‹€. μ΄λŠ” 개인 μ „μ‹œλ₯Ό 톡해, μž‘κ°€λ‘œμ„œμ˜ μœ„μƒμ„ μŒ“κΈ°μ—λŠ” μ „μ‹œ μžμ²΄μ— λŒ€ν•œ λΉ„μš© 및 μ§„μž…μ˜ 문턱이 높은 ν˜„μ‹€(μž‘ν’ˆ ν™œλ™ λΉ„μš© 및 λŒ€κ΄€ λΉ„μš© 문제) λ•Œλ¬Έμž…λ‹ˆλ‹€. λ”°λΌμ„œ, ν˜„μž¬ μ•„λ§ˆμΆ”μ–΄ μ•„ν‹°μŠ€νŠΈλ“€μ€ 경제적 문제둜 지원을 λ°›μ•„μ•Όλ§Œ 개인 μ „μ‹œμžμ²΄λ₯Ό ν•  수 μžˆμ§€λ§Œ, κ·Έ 지원 규λͺ¨κ°€ μž‘μ•„ μ‹œλ„μ‘°μ°¨ λͺ»ν•˜λŠ” 것을 κ°œμ„ ν•˜κ³ μž ν–ˆμŠ΅λ‹ˆλ‹€.

3. 블둝체인 κΈ°μˆ μ„ 톡해 ν•΄κ²°ν•˜κ³ μž ν•˜λŠ” 과제
ν˜„μž¬μ˜ μš°λ¦¬λ‚˜λΌ μ•„λ§ˆμΆ”μ–΄ μ˜ˆμˆ κ°€λ“€μ΄ κ°€μž₯ 큰 λ¬Έμ œμ μ€ λ„ˆλ¬΄ μž‘μ€ μ‹œμž₯규λͺ¨μ— κ΅­ν•œλ˜μ–΄μžˆλ‹€λŠ” μ μž…λ‹ˆλ‹€. 블둝체인 μ„œλΉ„μŠ€λŠ” 기본적으둜 κΈ€λ‘œλ²Œν•˜κ²Œ μ΄λ€„μ§€λ―€λ‘œ μš°λ¦¬λ‚˜λΌ μ•„λ§ˆμΆ”μ–΄ μ˜ˆμˆ κ°€λ“€μ˜ 후원 및 수읡 μ‹œμž₯을 보닀 λ„“νžˆλŠ” 데 κ°€μž₯ 효과적인 뢄야라 μƒκ°ν–ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ, 블둝체인 κΈ°μˆ μ„ 톡해 ν›„μ›μžλ“€μ€ 투λͺ…μ„±μžˆλŠ” 후원을 ν•  수 있으며 NFTλ₯Ό 톡해 νŠΉμ • μ˜ˆμˆ κ°€μ—κ²Œ λ°”λ‘œ 후원할 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 저희 νŒ€μ€ 이런 μƒνƒœκ³„λ₯Ό μœ μ§€ν•˜μ—¬ μ•žμœΌλ‘œ 펼쳐질 λ‹€μ–‘ν•œ 디지털 세상에 ν•„μš”ν•œ ν¬λ¦¬μ—μ΄ν‹°λΈŒν•œ μ½˜ν…μΈ λ₯Ό μ°½μΆœν•˜λŠ” μ•„λ§ˆμΆ”μ–΄ μ•„ν‹°μŠ€νŠΈλ“€μ˜ μœ‘μ„±μ— κΈ°μ—¬ν•˜λŠ” ν”Œλž«νΌμ΄ 되고자 ν•©λ‹ˆλ‹€.

νŒ€μ› μ†Œκ°œ

  • νŒ€λͺ… : NFTeam(Non Fungible Team)

    1. νŒ€μž₯/Jeongseup, Son
    • λ‹΄λ‹Ήμ—­ν•  : 기획 총괄 및 슀마트 μ»¨νŠΈλž™νŠΈ 개발
    • μ—…λ¬΄λ‚΄μš© : νŒ€μ›λ“€μ΄ κ°œλ°œν•œ λ‚΄μš©μ΄ 잘 맞좰질 수 μžˆλ„λ‘ 개발 λ°©ν–₯성을 μ΄λŒμ–΄κ°
    • μ‚¬μš©νˆ΄ : VScode, AWS RDS, Remix IDE, Pinata IPFS provider
    1. νŒ€μ›/Do, Heekyung
    • λ‹΄λ‹Ήμ—­ν•  : μ„œλΉ„μŠ€ λ””μžμΈ 총괄
    • μ—…λ¬΄λ‚΄μš© : μ›Ή μ„œλΉ„μŠ€ μ „λ°˜μ μΈ λ””μžμΈ ν…œν”Œλ¦Ώμ„ μ œμž‘ν•˜κ³ , μ›Ή μ‚¬μ΄νŠΈ ν”„λ ˆμž„ 섀계
    • μ‚¬μš©νˆ΄ : VScode, CSS, Bootstrap
    1. νŒ€μ›/정은경
    • λ‹΄λ‹Ήμ—­ν•  : μΈν„°λž™ν‹°λΈŒ λ””μžμΈ
    • μ—…λ¬΄λ‚΄μš© : νŒ€μ›λ“€μ΄ κ°œλ°œν•œ λ‚΄μš©μ΄ 잘 맞좰질 수 μžˆλ„λ‘ 개발 λ°©ν–₯성을 μ΄λŒμ–΄κ°
    • μ‚¬μš©νˆ΄ : VScode, filepond lib, Bootstrap, Interactive web libs
    1. νŒ€μ›/μ„œμž₯μ—°
    • λ‹΄λ‹Ήμ—­ν•  : μ„œλ²„ 및 DB λ°±μ—”λ“œ λ‹΄λ‹Ή
    • μ—…λ¬΄λ‚΄μš© : μ„œλ²„μ‚¬μ΄λ“œ MVC 섀계 및 DB 아킀텍쳐 섀계
    • μ‚¬μš©νˆ΄ : VScode / Node.js(express) / MariaDB / ejs template engine

ν”„λ‘œμ νŠΈ μ„ΈλΆ€ μˆ˜ν–‰κ³Όμ •

ν”„λ‘œμ νŠΈ 기획(21.08.25 ~ 21.09.08)

1. AMADO ν”„λ‘œμ νŠΈ 기획
2. AMADO ν”„λ‘œμ νŠΈ 아킀텍쳐 섀계
3. AMADO ν”„λ‘œμ νŠΈ λ°œν‘œμžλ£Œ μ€€λΉ„(21.09.26)

κΈ°μˆ μŠ€νƒ μ •μ˜μ„œ

μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹€ν–‰ ν™˜κ²½

  • ν”„λ‘ νŠΈμ—”λ“œ : HTML5 + CSS
  • λ°±μ—”λ“œ : express framework + MVC ꡬ쑰
  • μ„œλ²„ ν…œν”Œλ¦Ώ : EJS
  • DB - AWS RDS 프리티어(MariaDB-10.4.13 / νŒŒλΌλ―Έν„° μ„ΈνŒ… : utf8 & utf_genernal_ci)
  • blockchain protocol : Ethereum Ropsten Testnet
  • blockchain provider : Metamask / PINATA IPFS

NFT둜 λ―ΌνŒ…λœ IPFS 데이터 μ—…λ‘œλ“œ μ˜ˆμ‹œ

μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ μ‹€ν–‰ 메뉴얼

  1. git clone이후, VScodeμ—μ„œ ν”„λ‘œμ νŠΈ 폴더 λ‚΄ app ν΄λ”λ‘œ μ—΄μ–΄μ€λ‹ˆλ‹€.
  2. terminal에 npm install 둜 ν•„μš”ν•œ js libraryλ₯Ό μ„€μΉ˜ν•©λ‹ˆλ‹€.
  3. app 폴더 내에 .env νŒŒμΌμ„ μƒμ„±ν•˜κ³ , μ—°κ²°ν•  DB 정보λ₯Ό μž…λ ₯ν•©λ‹ˆλ‹€.(ex: DATABASE_HOST = "test...")
  4. μ„€μΉ˜ 이후, terminal μ°½μ—μ„œ npm startλ₯Ό μž…λ ₯ν•˜μ—¬ μ‹€ν–‰ν•©λ‹ˆλ‹€.

νŒ€μ›λ³„ 개발 λ””μžμΈ μ†Œκ°œ

  • 기획 및 μ»¨νŠΈλž™νŠΈ 개발 / Jeonsgseup, Son

λ³Έ κΈ°νšμ€ 이전 개인 Art Acamedy λΌλŠ” ν”„λ‘œμ νŠΈλ₯Ό λ°œμ „μ‹œν‚¨ ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€. λ³Έ 기획의 λͺ©ν‘œλŠ” 상기 ν‘œκΈ°λ˜μ–΄ μžˆλ“―μ΄, μž‘μ€ μ‹œμž₯규λͺ¨λ‘œ 인해 잠재λ ₯μžˆλŠ” young & freshν•œ μš°λ¦¬λ‚˜λΌ μ•„ν‹°μŠ€νŠΈλ“€μ—κ²Œ 경제적인 지원 및 μ‹œμž₯을 ν™•μž₯ν•˜κ³ μž λ³Έ ν”„λ‘œμ νŠΈλ₯Ό κΈ°νšν•˜μ˜€μŠ΅λ‹ˆλ‹€. λ˜ν•œ, 초기 κ²½μ œμ„±μ΄ λΆ€μ‘±ν•œ 상황을 μΈμ§€ν•˜κ³  NFT λ§ˆμΌ“ν”Œλ ˆμ΄μŠ€λ³΄λ‹€λŠ” ν›„μ›ν”Œλž«νΌμ„ κΈ°μ€€μœΌλ‘œ ν”„λ‘œμ νŠΈλ₯Ό λ””μžμΈν–ˆμœΌλ©°, κΈ°μ‘΄ GivethλΌλŠ” 후원 ν”Œλž«νΌμ˜ UX ν”„λ‘œμ„ΈμŠ€λ₯Ό λ°”νƒ•μœΌλ‘œ 전체적인 ν”„λ‘œμ„ΈμŠ€λ₯Ό λ””μžμΈμ„ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

λ³Έ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜ 내에 슀마트 μ»¨νŠΈλž™νŠΈλŠ” 이더리움 ν…ŒμŠ€νŠΈλ„· μƒμ—μ„œ 이뀄지며, μš°μ„  규λͺ¨μžˆλŠ” μ‹œμž₯μ„±μ—μ„œ λ§Žμ€ 경제적인 기회λ₯Ό ν¬μ°©ν•˜κΈ° κ°€μž₯ μš©μ΄ν•˜λ‹€λΌκ³  μƒκ°ν–ˆκΈ° λ•Œλ¬Έμ— 이더리움 ν…ŒμŠ€νŠΈλ„·μ—μ„œ κ°œλ°œμ„ μ§„ν–‰ν•˜μ˜€μŠ΅λ‹ˆλ‹€. ν”„λ‘œμ νŠΈ λ‚΄ 이더리움 토큰은 ERC-721λ₯Ό κΈ°μ€€μœΌλ‘œ κ°œλ°œν•˜μ˜€μœΌλ©°, μ»¨νŠΈλž™νŠΈ μ˜€λ”§μ‚¬μΈ openzeppelin의 IERCλ₯Ό κΈ°μ€€μœΌλ‘œ κ°œλ°œν•˜μ˜€μŠ΅λ‹ˆλ‹€.

  • μ›Ή UI/UX λ””μžμΈ 총괄 / Do, Heekyung

UI – κΈ°λΆ€ ν”Œλž«νΌμ— 맞좰 전체적인 색상을 λ…Έλž€μƒ‰μœΌλ‘œ μ„ νƒν–ˆμŠ΅λ‹ˆλ‹€. λ…Έλž€μƒ‰μ€ λ”°λœ»ν•˜κ³ , λͺ…λž‘ν•˜κ³  밝은 λŠλ‚Œμ΄ μžˆμŠ΅λ‹ˆλ‹€. κΈ°λΆ€λΌλŠ” ν–‰μœ„μ˜ λ”°λœ»ν•¨κ³Ό, 기뢀받은 μ•„ν‹°μŠ€νŠΈμ˜ λ―Έλž˜λŠ” λͺ…λž‘ν•˜κ³  밝을 것이기에 이 두가지 츑면을 κ³ λ €ν•˜μ—¬ λ…Έλž€μƒ‰μ„ νƒν•˜μ˜€μŠ΅λ‹ˆλ‹€.

UX – κΈ°λΆ€μžμ™€ μ•„ν‹°μŠ€νŠΈκ°€ μ„œλΉ„μŠ€λ₯Ό μ‚¬μš©ν•˜λŠ”λ°, 어렀움이 없도둝 각 μ‚¬μš©μžμ— 맞좰 λ””μžμΈν–ˆμŠ΅λ‹ˆλ‹€. κΈ°λΆ€μž μΈ‘λ©΄μ—μ„œ λ‹€μ–‘ν•œ NFT와 κ·Έ NFTλ₯Ό λ°œν–‰ν•œ μ•„ν‹°μŠ€νŠΈμ˜ 정보λ₯Ό ν•¨κ»˜ μ œκ³΅λ°›μ„ 수 μžˆλ„λ‘ ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 우리 μ„œλΉ„μŠ€μ—μ„œ λ°œν–‰λœ λͺ¨λ“  NFTλ₯Ό λ³Ό 수 μžˆλŠ” νŽ˜μ΄μ§€μ™€ κΈ°λΆ€μžκ°€ ν΄λ¦­ν•œ ν•˜λ‚˜μ˜ NFT와 ν•΄λ‹Ή NFTλ₯Ό λ°œν–‰ν•œ μ•„ν‹°μŠ€νŠΈ 정보λ₯Ό ν•œ λˆˆμ— λ³Ό 수 μžˆλŠ” νŽ˜μ΄μ§€λ₯Ό κ΅¬μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

μ•„ν‹°μŠ€νŠΈ μΈ‘λ©΄μ—μ„œλŠ” NFTλΌλŠ” μ–΄λ ΅κ³  λ‚―μ„  것을 μ‰½κ²Œ λ°œν–‰ν•  수 μžˆλ„λ‘ ν•˜μ˜€μŠ΅λ‹ˆλ‹€. κ΅¬λ§€μžκ°€ λ―Έμˆ μž‘ν’ˆμ„ ꡬ맀할 λ•Œ μ•„ν‹°μŠ€νŠΈμ˜ 이λ ₯을 λ³΄λŠ” 것 같이, μ•„ν‹°μŠ€νŠΈμ˜ 정보λ₯Ό λ³Ό 수 μžˆλŠ” νŽ˜μ΄μ§€μ—μ„œλŠ” μ•„ν‹°μŠ€νŠΈμ˜ NFT 뿐 μ•„λ‹ˆλΌ μžμ‹ λ§Œμ˜ 쒌우λͺ… λ˜λŠ” μŠ¬λ‘œκ±΄μ„ 보여쀄 수 μžˆλ„λ‘ ν•˜μ˜€μŠ΅λ‹ˆλ‹€. μ„ΈλΆ€ λ””μžμΈμ€ κΈ°λΆ€ 문화와 μ•„ν‹°μŠ€νŠΈλ“€μ˜ 밝은 미래λ₯Ό κ°•μ‘°ν•˜κΈ° μœ„ν•΄ κ·€μ—½κ³ , λ°œλž„ν•œ λŠλ‚Œμ΄ λ‚˜λ„λ‘ 동적이고, κ·€μ—½κ²Œ κ΅¬μ„±ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

  • Server & Database Backend 개발 / μ„œμž₯μ—°

Node.js 의 Express ν”„λ ˆμž„μ›Œν¬λ₯Ό μ‚¬μš©ν•˜μ—¬ μ„œλ²„λ₯Ό κ΅¬μΆ•ν•˜μ˜€μŠ΅λ‹ˆλ‹€. mySQL, MariaDB λ“±μ˜ RDBMS(κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ 관리 μ‹œμŠ€ν…œ)둜 DBλ₯Ό κ΅¬μΆ•ν•˜μ˜€μŠ΅λ‹ˆλ‹€. MVC ꡬ쑰λ₯Ό 기본으둜 Views ~ Routes ~ Models κ°„μ˜ Data μš”μ²­ 응닡 처리 ν”„λ‘œμ„ΈμŠ€λ₯Ό κ΅¬μ‘°ν™”ν•˜μ˜€μŠ΅λ‹ˆλ‹€. νšŒμ›κ°€μž…μ‹œ λΉ„λ°€λ²ˆν˜Έκ°€ μ•”ν˜Έν™”(bcrypt) μ²˜λ¦¬λ˜μ–΄ DB 에 λ³΄μ•ˆ μ €μž₯될 수 μžˆλ„λ‘ ν•˜μ˜€μŠ΅λ‹ˆλ‹€. λ˜ν•œ 둜그인 처리 ν›„ μœ μ§€λ₯Ό μœ„ν•΄ Jsonwebtoken κΈ°λŠ₯을 ν™œμš©ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

  • μΈν„°λž™ν‹°λΈŒ μ›Ή UX/UI섀계 및 λ””μžμΈ / EunKyung Jung

μΈν„°λž™ν‹°λΈŒμ›Ή pageλ₯Ό κ΅¬ν˜„ν•œ Gallery pageλŠ” Opensea와 같은, λΉ„μŠ·ν•˜μ§€λ§Œ λ‹€λ₯Έ μ„±κ²©μ˜ 타 ν”Œλž«νΌκ³ΌλŠ” λ‹€λ₯΄κ²Œ μ €ν¬λ§Œμ˜ μ™„μ „ν•œ 차별화λ₯Ό λ‘κΈ°μœ„ν•˜μ—¬ Iamnotartμ‚¬μ΄νŠΈ 및 1뢄코딩을 μ°Έκ³ ν•˜μ—¬ Gallery pageκΈ°νšμ„ ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

λ³Έ μ–΄ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 메인 색상은 λ…Έλž€μƒ‰μœΌλ‘œ κΈ°λΆ€λΌλŠ” ν–‰μœ„μ˜ λ”°λœ»ν•¨κ³Ό, 기뢀받은 μ•„ν‹°μŠ€νŠΈμ˜ λ―Έλž˜λŠ” λͺ…λž‘ν•˜κ³  밝음 이 두가지 츑면을 κ³ λ €ν•˜μ—¬ μ§€μ •λœ 만큼 Gallery pageλ˜ν•œ 전체적인 색상을 λ…Έλž€μƒ‰μœΌλ‘œ κΈ°νšν•˜μ˜€μŠ΅λ‹ˆλ‹€.

Gallery pageμ—μ„œλŠ” z좕을 μ‚¬μš©ν•œ perspective 3d둜 μž…μ²΄κ°μ„ μ£Όμ—ˆμŠ΅λ‹ˆλ‹€. μ•‘μžμ•ˆμ˜ NFTκ΄€λ ¨ 이미지포함 데이터듀은 dbμ—μ„œ λ°›μ•„μ˜¨ 데이터듀이며, NFTκ°€ μΆ”κ°€λ˜λ©΄ μžλ™μ μœΌλ‘œ μƒμ„±λ©λ‹ˆλ‹€. λ˜ν•œ μ‹œκ°μ μΈ μš”μ†Œμ™€ UX적인 μš”μ†Œλ₯Ό 재미둜 μ£ΌκΈ° μœ„ν•΄μ„œ μ™Όμͺ½ 상단에 home으둜 λ‚˜κ°€ν‹‘ λ²„νŠΌμ„ λ™κ·Έλž€ λ²„νŠΌμœΌλ‘œ λ§Œλ“€μ—ˆμœΌλ©°, λ§ˆμ§€λ§‰μœΌλ‘œ 3번째(λ§ˆμ§€λ§‰) 벽의 video에 μ˜μƒμ„ μΆ”κ°€ν•΄μ—¬, 더 생동감 있게 κ΅¬ν˜„ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

ν”„λ‘œμ νŠΈ κ°œλ°œμ‹œμ—° μ˜μƒ

https://www.youtube.com/watch?v=XvaYc2APpUk

참고자료