9주차. 이젠 무얼할까 하다가 다시 돌아온 크립토 좀비.
마침 내가 인프런 강의를 들었던 진도와 딱 맞았다.
하지만 여전히 내가 모르는 단어들이 나온다.(무시하고 그냥 나아갔기에..)
그래서 이번엔 하나하나 알아보면서 나아가보자.
나는 무엇을 만들고 있는 것일까 부터 확실히 잡자!
DAPP이 탈중앙화된 앱임은 알고있을것이다.
...그렇다면 일반 애플리케이션과 DApp의 차이가 뭐야? 라는 의문이 드실텐데요. 완벽히 탈중앙화된 애플리케이션은 다음과 같은 특성을 가지고 있습니다 :
1. 오픈 소스 기반이며 자율적으로 운영됨 (블록체인으로 운영하는 서비스는 서비스가 중단되거나 사라진다고 하더라도, 한 번 배포하면 영원하기 때문에 계속해서 사용이 가능)
2. 퍼블릭 블록체인 위에 데이터를 저장 (한번 블록체인 위에 올라가면 데이터를 다시 되돌리거나 변형 불가능)
3. 암호화폐에 가치를 부여함
4. 알고리즘 기반에 의한 토큰 생성 및 보상출처 :
초보자들을 위한 이더리움 DAPP 만들기 (정리가 잘 되어있음)
DAPP의 종류에 관하여
-이더리움 재단에서 만든 자바스크립트 라이브러리
이것들을 노드에 보내는데, 노드들은 JSON-RPC라는 복잡한 언어로만 소통하기에 좀더 사용자환경 친화적인 web3.js를 만든 것이다.
...HTML (Hypertext Markup Language,하이퍼텍스트 마크업 언어)는 프로그래밍 언어는 아니고, 우리가 보는 웹페이지가 어떻게 구조화되어 있는지 브라우저로 하여금 알 수 있도록 하는 마크업 언어입니다...(https://developer.mozilla.org/ko/docs/Learn/HTML/Introduction_to_HTML/Getting_started)
마크다운 언어는 지금 이 블로그를 쓰고있는 언어인데, 마크업 언어는 무엇인가?
마크업 언어는 "마크(Mark)"로 둘러싸인 언어입니다. "태크(Tag)"로 둘러싸였다고도 표현합니다. HTML, XML 등의 마크업 언어들은 문서의 구조를 정의합니다. 쉽게 말하면 문서의 골격에 해당하는 부분을 작성하는데 사용합니다.( https://blog.cordelia273.space/15 [세상의 모든 지식])
“마크다운은 마크업 언어의 일종으로, 존 그루버(John Gruber)와 아론 스워츠(Aaron Swartz)가 만들었다. 온갖 태그(
<div> </div>
과 같은 구조)로 범벅된 HTML 문서 등과 달리, 읽기도 쓰기도 쉬운 문서 양식을 지향한다. …”(https://samsara-ku.dev/common_sense/difference-between-markup-and-markdown/)
그리고 마크다운은 마크업 언어의 일종이다.
자그럼 다시와서, HTML이 무엇인가 정리해보자면
'웹페이지를 구조화하는(이쁘게 만드는) 마크업 언어'라고 하면 되겠다. ..맞나?
우리가 처음 필요로 하는 것은 Web3 프로바이더(Provider)이네...
(중략)...자네는 자네만의 이더리움 노드를 프로바이더로 운영할 수도 있네. 하지만 자네가 편리하게 쓸 수 있는 제3자 서비스가 있네. 자네 DApp의 사용자들을 위해 자네만의 이더리움 노드를 운영할 필요가 없도록 하기 위해 사용할 수 있는 서비스 말이네 - Infura라는 게 있지.
좋다! 우리가 DAPP을 테스트 하기위해서 노드가 되야하는 불편함을 줄여주고자 infura라는 프로바이더가 있고 우리는 제품/서비스에 집중할수 있다!
그런데 infura는 API를 무료로 사용할수 있다고 한다. API는 또 뭘까
API, 애플리케이션 프로그래밍 인터페이스(Application Programming Interface)는 응용 프로그램에서 사용할 수 있도록, 운영체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.
UI가 사용자와 사용자가 다룰 대상(하드웨어 혹은 소프트웨어)을 연결한다면,
API는 프로그램과 또 다른 프로그램을 연결해주는 일종의 다리라고 볼 수 있습니다.
만약 자신이 맛집찾기와 같은 어플리케이션을 만들고 싶을때 지도에 대한 정보및 어플리케이션을 공용API를 통해 얻을 수 있다. https://developers.kakao.com/product/kakaoNav <- 요기를 통해
https://dydrlaks.medium.com/api-%EB%9E%80-c0fd6222d34c 여기서 더 친절한 설명을 들을 수 있다.
https://medium.com/@sungjoon.yoon/infura-%EC%82%AC%EC%9A%A9%ED%95%B4%EB%B3%B4%EA%B8%B0-24af9bf12c4c
https://winddesign.co.kr/blog/?no=245 직접 API를 통해 앱을 만들어 보는 예제
"클래스로 부터 오브젝트를 생성하는 것을 '인스턴스화'라고 한다. 그리고 인스턴스화를 통해 생성된 것이 인스턴스(오브젝트)인 것이다."
출처: https://kusson.tistory.com/144 [꾸숑의 ICT 월드]
혹시라도 인스턴스와 오브젝트의 뜻까지 알고싶은 변태들을 위하여 -오브젝트와 인스턴스의 차이
Application Binary Interface: 컨트랙트의 함수와 매개변수들을 JSON 형식으로 나타낸 리스트다.
...우리가 지금 보고 있는 클라이언트단에서는 솔리디티로 만들어진 코드가 어떤 형태인지를 알 수가 없기 때문에, ‘너가 지금 통신할 대상은 이러이러한 구조를 가지고 있고, 이런 함수가 있어’ 이런 내용을 자바스크립트에서 알 수 있도록 제공하는 것입니다...초보자들을 위한 이더리움 DAPP 만들기
ex) "얘는 view함수이니깐 돈지불 안해도 된다굿!!"
이더리움 스마트 컨트랙트 동작방식의 이해
출처: https://kimkyunghwan-jinjinghuan.tistory.com/174 [친절한 사람]