Learning Typescript by making a Blockchain with it.
Typescript = Javascript + Types
Typescript๋ Type annotation์ ํตํด ํจ์๋ ๋ณ์์ ํ์ ์ ๋ช ์ํ ์ ์๋ค. ๋ณ์๋ ๋ฐฐ์ด์ ๊ฐ์ ๋ด๊ฑฐ๋ ํจ์๋ฅผ ํธ์ถํ ๋ ์๋๋์ง ์์ ๋ค๋ฅธ ๊ฐ์ด ๋ค์ด๊ฐ๋ ๊ฒ์ ๋ฐฉ์งํ๋ค.
์ธํฐํ์ด์ค๊ฐ ์ถ๊ฐ๋์๊ณ ํด๋์ค๋ฅผ ์ฌ์ฉํ ๋ public, private ๋ฑ์ ๋ช
์ํด์ OOP์ ์๋ฏธ๋ฅผ ๋์ฑ ๋ช
ํํ ํ ์ ์๋ค.
Typescript๊ฐ Javascript๋ก ๋ณํ๋ ๋์ ๊ท์น์ ์ ์ํ๋ค.
yarn start ๋ช
๋ น์ด๋ฅผ ํตํด ์ปดํ์ผํ๋ค.
๋ฐ์ดํฐ ๋ถ์ฐ ์ฒ๋ฆฌ ๊ธฐ์
๋ธ๋ก์ฒด์ธ์์ "๋ธ๋ก"์ ๊ฐ์ธ๊ณผ ๊ฐ์ธ์ ๊ฑฐ๋(P2P)์ ๋ฐ์ดํฐ๊ฐ ๊ธฐ๋ก๋๋ ์ฅ๋ถ๋ค. ์ด๋ฐ ๋ธ๋ก๋ค์ ํ์ฑ๋ ํ ์๊ฐ์ ํ๋ฆ์ ๋ฐ๋ผ ์์ฐจ์ ์ผ๋ก ์ฐ๊ฒฐ๋ "์ฌ์ฌ(Chain)"์ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
๊ธฐ์กด ๊ฑฐ๋ ๋ฐฉ์์ ์ํ์ด ๋ชจ๋ ๊ฑฐ๋ ๋ด์ญ์ ๊ฐ์ง๊ณ ์์๋ค. ํ์ง๋ง ๋ธ๋ก์ฒด์ธ์ ์ฌ๋ฌ ๋ช ์ด ๋๋ ์ ์ ์ฅํ๋ค. ํ ๋คํธ์ํฌ์ 10๋ช ์ด ์ฐธ์ฌํ๊ณ ์๋ค๋ฉด ๋ ์ฌ๋์ ๊ฑฐ๋ ๋ด์ญ์ผ๋ก 10๊ฐ์ ๋ธ๋ก์ ์์ฑํด 10๋ช ๋ชจ๋์๊ฒ ์ ์ก ๋ฐ ์ ์ฅํ๋ค. ๋์ค์ ๊ฑฐ๋ ๋ด์ญ์ ํ์ธํ ๋๋ ๋ธ๋ก์ ๋๋ ์ ์ฅํ ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฒฐํด ํ์ธํ๋ค.
๊ธฐ์กด ๊ฑฐ๋ ๋ฐฉ์์ ์ํ์ ์ค์ ์๋ฒ๋ฅผ ๊ณต๊ฒฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์/๋ณ์กฐํ ์ ์์๋ค. ๊ทธ๋ฌ๋ ๋ธ๋ก์ฒด์ธ์์๋ ์ฌ๋ฌ ๋ช ์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ์๊ธฐ ๋๋ฌธ์ ์/๋ณ์กฐ๊ฐ ์ฌ์ค์ ๋ถ๊ฐ๋ฅํ๋ค.
๋ธ๋ก์ฒด์ธ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์ค์๊ธฐ๊ด์ ์ญํ ์ด ํ์ ์์ด์ง๊ธฐ ๋๋ฌธ์ ์ค์์ํ์ด ์์ด๋ ํํ ๋ฐํ์ด ๊ฐ๋ฅํด์ง๋ค. ์ด๋ฅผ ํตํด ๋ฑ์ฅํ ๊ฒ์ด ๊ฐ์ํํ์ด๋ค. ๋ธ๋ก์ฒด์ธ์ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค์ด์ง ์จ๋ผ์ธ ์ํธํํ์ธ ๋นํธ์ฝ์ธ์ ๊ฒฝ์ฐ, ์ด๋ฅผ ๋ฐํํ๋ ๊ธฐ๊ด๋ ํต์ ํ๋ ๊ณณ๋ ์๋ค. ๋นํธ์ฝ์ธ์ ์ํ๋ ์ฌ๋๋ค์ด '์ฑ๊ตด'์ ํตํด '๋ฐํ'ํ ์ ์๋ค. ๋์ ์ ๋ขฐ์ฑ๊ณผ ๋ณด์์ฑ์ ์ง๋ ๋ธ๋ก์ฒด์ธ ๊ธฐ์ ์ ์ฐ์ ์ ๋ถ์ผ์ ํ์ฐ๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.