πŸ““ μ‹œμž‘ν•˜λ©°

2019λ…„ κ΅­λ―ΌλŒ€ν•™κ΅ SWκ²¨μšΈμΊ ν”„μ— μ°Έκ°€ν•˜λ©΄μ„œ 블둝체인에 λŒ€ν•΄ μ•Œκ²Œ 되고 solidityλΌλŠ” μ–Έμ–΄λ₯Ό κ³΅λΆ€ν•˜μ˜€μŠ΅λ‹ˆλ‹€.
κ·Έ 이전에도 SCTF의 λ¬Έμ œμ—μ„œλ„ λ³Έ 적이 μžˆμ§€λ§Œ κ·Έ λ•ŒλŠ” 잘 μ•Œμ§€ λͺ» ν–ˆμ—ˆμŠ΅λ‹ˆλ‹€.
μ΄λ²ˆμ— 개인적으둜 크립토쒀비λ₯Ό 톡해 문법을 읡히던 도쀑 상속에 λŒ€ν•œ ν‚€μ›Œλ“œλ‘œ
isλ₯Ό μ‚¬μš©ν•˜κ³  μžˆλŠ” 것을 λ°œκ²¬ν•˜κ³ μ„  μ €λŠ” 생각에 λΉ μ‘ŒμŠ΅λ‹ˆλ‹€.
일반적으둜 μ‚¬λžŒλ“€μ΄ μ΄ν•΄ν•˜κΈ°μ— isκ°€ μƒμ†μœΌλ‘œ 이해될 수 μžˆλŠ”κ°€λ₯Ό μƒκ°ν•˜λ©° κ·Έ λ³Έ λœ»μ„ μ•Œμ•„λ³΄κ³ μž ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

πŸ€” 솔리디티?

μ†”λ¦¬λ””ν‹°λŠ” κ°„λž΅νžˆ λ§ν•˜λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€

Ethereum Virtual Machine (EVM)μ—μ„œ μ‚¬μš©ν•˜κΈ° μœ„ν•΄ μ„€κ³„λœ μ •μ νƒ€μž… 계약 지ν–₯ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄
블둝체인 ν”Œλž«νΌ μƒμ—μ„œ μŠ€λ§ˆνŠΈκ³„μ•½(Smart Contract)λ₯Ό μž‘μ„±ν•˜κΈ° μœ„ν•΄ μ‚¬μš©λœλ‹€.

ν˜„μž¬λŠ” μ΄λ”λ¦¬μ›€μ˜ μ£Όμš” μ–Έμ–΄λ‘œ μ‚¬μš©λ˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
μ•„λž˜λŠ” κ°„λ‹¨ν•œ 솔리디티 μ½”λ“œμž…λ‹ˆλ‹€.

pragma solidity ^0.4.24;

contract Main {
    function getHelloWorld() public pure returns(string) {
        return "Hello World!!";
    }
}

😡 λ„μ™€μ€˜μš” SOF

μ‹œκ°„μ΄ 흘러 κ²°κ΅­μ—λŠ” Stack Overflow에 도움을 μš”μ²­ν–ˆμŠ΅λ‹ˆλ‹€!

κ·Έλž˜μ„œ λ‹€μŒκ³Ό 같은 닡변을 듀을 수 μžˆμ—ˆμŠ΅λ‹ˆλ‹€.

Because in proper object oriented designs, inheritance really should be an "is a" relationship, so why not? - ShadowRanger

객체지ν–₯ ν”„λ‘œκ·Έλž˜λ°μ–Έμ–΄μ˜ μž₯점은 μ½”λ“œμ˜ μž¬ν™œμš©μž…λ‹ˆλ‹€. 그에 λŒ€ν•œ λ°©λ²•μœΌλ‘œ 크게 상속과 μ»΄ν¬μ§€μ…˜(μ‘°ν•©)이 μžˆμŠ΅λ‹ˆλ‹€. 상속을 기반으둜 ν•œ 것을 IS-A 관계라 ν•˜κ³  쑰합을 HAS-A 관계라 ν•©λ‹ˆλ‹€.

πŸ•Ά κ²°λ‘ 

Solidityμ—μ„œμ˜ isκ°€ 상속을 μ˜λ―Έν•˜λŠ” μ΄μœ λŠ” IS-A Relationshipμ—μ„œμ˜ ISλ₯Ό μ˜λ―Έν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€.
고둜 isλŠ” 정상적인 의미λ₯Ό 가진 ν‚€μ›Œλ“œμ˜€μŠ΅λ‹ˆλ‹€!

// κ°œμΈμ μœΌλ‘œλŠ” extendsκ°€ 더 λ§ˆμŒμ— λ“­λ‹ˆλ‹€.. :(

πŸ“” 참고자료