App과 DApp
IT에 대한 소식을 접하다보면 DApp이란 단어를 들어보았을 것이다. 탈중앙화 애플리케이션(Decentralized Application)
의 줄임말인 DApp은 우리가 일상에서 사용하는 App과 크게 차이가 있을까 싶을 수 있지만, 개발자 입장에서 나는 DApp과 App은 개발부터 실행까지 큰 차이가 있다고 말하고 싶다.
일반적으로 App은 사용자측에서 요청이 들어왔을 때, 웹 서버(정확히는 웹 서버와 웹 에플리케이션 서버)를 통해 해당 요청에 맞는 응답을 전해주는 원리로 동작한다. 소스에 저장되어 있는 정적 데이터를 전달하기도 하지만, 데이터베이스 서버를 경유한 동적인 데이터 처리가 많다. 간단히 말해 App은 사용자 -> 서버 -> 데이터베이스
의 흐름으로 동작한다고 할 수 있다.
반면, DApp은 데이터베이스가 아니라 블록체인 네트워크에 접근한다. App 개발자가 구축한 데이터베이스가 아니라 전 세계적으로 구축된 블록체인 네트워크망에 접속해 App 동작에 필요한 데이터 처리를 실행한다. 사용자 -> 서버 -> 블록체인 네트워크
의 구성이다.
App과 DApp 구조 차이
이더리움 프로그래밍
이더리움 프로그래밍이란 이더리움 블록체인 위에 DApp을 구축 하는 걸 의미한다. 다른 표현으로 이더리움 블록체인 네트워크에 스마트 컨트렉트(Smart Contract)를 구현한다 고 얘기할 수 있다.
내가 처음 이더리움 프로그래밍이라는 단어를 접했을 때, "오픈 소스 프로젝트처럼 이더리움이란 소스를 직접 수정해서 필요한 기능을 구현하는건가?", "이더리움이란 비슷한 암호화폐를 만드는 건가?"라고 생각했었다. 하지만, 이와 관련해서 공부를 해나가면서 솔리디티(Solidity), 리믹스(Remix), 스마트 컨트렉트(Smart Contrat), 트렌젝션(Transaction) 등과 같은 개념을 알게되니 처음 했던 생각과 많이 다르다는 걸 깨닫게 되었다.
이더리움 프로그래밍은 개발자가 솔리디티라는 개발 언어를 사용해서 스마트 컨트렉트 로직을 구현한 뒤, 이것을 이더리움 블록체인 위에 배포 및 상용화까지의 단계를 의미한다. 솔리디티 언어는 Java와 C++ 언어와 유사한 개발 언어고, 리믹스(Remix)라는 코드 에디터에서 작성할 수 있다. 작성한 코드는 실제로 이더리움 블록체인 네트워크에 연결해 네트워크에 접근 가능한 모든 사람이 볼 수 있게 배포할 수 있고 사용할 수 있다. 그리고 이렇게 배포된 코드를 스마트 컨트렉트라고 한다.
'Blockchain > Ethereum' 카테고리의 다른 글
[Ethereum] ERC-20 (0) | 2022.03.23 |
---|---|
[Ethereum] ERC란? (0) | 2022.03.22 |
[Ethereum] Web3.js 라이브러리 (0) | 2022.03.17 |
[Ethereum] 트렌젝션(Transaction)과 콜(Call) (0) | 2022.03.17 |
[Ethereum] 이더리움 프로그래밍 참고 사이트 (0) | 2022.03.06 |
댓글