1. 블록체인 기반 펫시팅 P2P거래 플랫폼 개발하기 – 개발동기
2. 블록체인 기반 펫시팅 P2P거래 플랫폼 개발하기 – Bluemix 환경 구축
3. 블록체인 기반 펫시팅 P2P거래 플랫폼 개발하기 – 웹 어플리케이션

이제 최종적으로 펫시팅 서비스를 하기 위해선 웹 어플리케이션 구현이 필요합니다.
우선 웹과 블록체인이 어떻게 통신하는지 살펴보도록 하겠습니다.

2편에서 시작한 Blockchain 서비스를 토대로 피어선택과 네트워크의 등록 ID와 시크릿(비밀번호)를 전역변수로 선언을 해주었습니다.
deploy 하는 데 필요한 체인코드 주소도 선언해줍니다.

위의 코드는 체인코드 함수들을 실행하는 데에 필요한 chaincodeID의 name을 한번에 얻기위한 함수입니다.
체인코드를 사용하기 위해 꼭 실행해야 할 login과 deploy를 한번에 실행하는 것입니다.
체인코드 함수 중 invoke와 query에서 한 가지씩 보겠습니다.

invoke 함수 안에 있는 save_petsitter 함수 실행 코드를 보겠습니다.
체인코드의 save_petsitter 함수는 웹으로부터 총 14개의 인자 값을 받아 petsitter 정보를 저장합니다.

read_petsitter 함수는 petsitter 정보를 가져오는 query 안의 함수입니다.
사용자의 ID만을 인자로 받아 사용자의 정보를 출력해줍니다.
위와 같은 형식으로 여러 함수로 invoke와 query를 이용해 웹과 블록체인이 서로 통신하는 것입니다.

웹 어플리케이션은 크게 보자면 기본적으로 회원정보, 펫시터정보, 자산(집, 펫)정보는 필수적으로 등록을 할 수 있는 환경이어야 합니다.
그렇다면 귀중한 정보들을 어디에 저장하는 것이 좋을까 생각하는 것이 필요합니다. 또한 어떤 기능들이 웹으로 구현이 되어야 할지 생각해봐야 합니다.

저장 매체

  • 데이터베이스
  • 블록체인

구현 되어야 할 기능

  • 회원 등록
  • 검색
  • 집 등록
  • 펫시터 등록
  • 펫 등록
  • 거래

앞에서 알아봤듯이 블록체인은 신뢰성을 보장해주는 역할을 합니다.
그리고 저희가 생각해낸 펫시팅은 펫시터와 집에 대한 신뢰도가 높아야 사용자가 안심하고 이용을 할 수 있다는 의견이 나왔습니다.
그래서 회원관리에 대한 정보는 데이터베이스에, 펫시터와 집에 대한 정보는 블록체인에 넣기로 결정을 하게 된 것 입니다.
그렇다면 먼저 회원정보를 등록하는 과정에 대해서 알아보도록 하겠습니다.

1. 회원 등록

아래 사진을 보면 회원 정보의 기본이 되는 이메일과 비밀번호를 받게 됩니다.

회원등록 이외에 모든 정보는 이메일을 기본으로 이루어지기 때문입니다.
그 뒤 로그인을 한 사용자는 펫시터 검색, 집 등록, 펫시터 등록, 펫 등록이라는 기능을 추가로 이용할 수 있게 됩니다.


2. 펫시터 검색

이제 회원이 등록된 사용자가 펫시터를 찾기를 원합니다.
그렇다면 검색할 수 있는 폼이 필요합니다.
해당 폼을 이용해 검색한 바탕으로 블록체인에 저장되어 있던 조건이 맞는 모든 펫시터에 대한 리스트를 받아 보여주게 됩니다.


3. 집 등록

그렇다면 이런 펫시터들의 정보는 어떻게 저장하고 있는지 알아볼까요?

먼저 집이 등록되어 있어야 합니다. 실제로 본인의 집이 등록되어 있어야 펫시팅을 할 수 있기 때문입니다.
해당 집 정보는 블록체인에 등록되어 세계 어느 국적을 가진 사람이라도 등록된 집 정보를 알 수 있게 됩니다.


하지만 처음 이용하는 사람은 이런 의문이 생길 수 있습니다.
해당 펫시터가 거짓으로 집을 등록한 것이면 어쩌지?

하지만 그런 의문점을 해결하기 위해 블록체인을 기반으로 한다고 이야기하면 앞의 블록체인에 대해 읽어보신 분들은 이해하게 되실 겁니다.
바로 블록체인의 신뢰성을 이용했기 때문입니다.
물론 현재 저희가 만든 펫시터 웹은 완벽하게 해당 펫시터의 신원을 보장할 수는 없습니다.
하지만 인증서와 같은 본인 인증 절차를 거친다면 블록체인의 취지와 더 맞아 떨어지겠죠!

4. 펫시터 등록

그 다음으로 펫시터 자신에 대한 내용을 등록해야 합니다.


그렇게 저장을 모두 마치고 나면 사용자들은 조건만 맞는다면 검색했을 때 확인할 수 있게 됩니다.
현재는 매우 간단한 형태로 저장하고 있지만 여기서 더 나아가 자세한 조건, 세부적인 내용들을 담을 수도 있습니다.

5. 펫 등록

이제 사용자입장에서 저장해야할 내용입니다.
서비스를 이용하기 위해선 자신의 펫 정보가 저장되어 있어야 합니다.
해당 정보는 현재 이용하고 있는 웹 프레임에서만 중요한 정보이기 때문에
굳이 블록체인에 저장하지 않고 데이터베이스를 이용하여 저장해 둡니다.


6. 거래

마지막으로 사용자가 원하는 펫시터를 찾고 거래를 원하는 경우에 필요한 과정입니다.
이 때 거래목록 또한 거래가 된 펫시터는 해당 사이트에서 검색 목록에 더이상 보여지지 않거나
다른 플랫폼을 이용하여 거래를 하는 경우 현재 펫시터의 거래상태가 적용되어야 합니다.
때문에 거래 목록이 블록체인에 저장되어야 합니다.



7. 주의할 점

블록체인은 데이터베이스와 완전히 동일하지 않기 때문에 블록을 넣는 데 시간이 소요됩니다.
때문에 펫시터 정보, 집 정보를 저장하거나 거래목록을 저장하는 경우
저장하자마자 데이터를 바로 읽어오는 것이 불가능 합니다 .
따라서 위와 같은 경우 사용자에게 블록체인에 아직 등록중인 메세지를 보여주는 것이 필요하게 됩니다.

이렇게 큰 흐름의 펫시터 서비스를 위한 웹 어플리케이션 구현에 대한 설명을 마칩니다.

2 개의 댓글"3편 블록체인 기반 펫시팅 P2P거래 플랫폼 개발하기 – 웹 어플리케이션"

  1. 이종기 6월 16, 2017

    Hyperledger Fabric에서 p2p거래 플랫폼 개발하기도 가능한가요?

  2. 이준희 8월 21, 2017

    안녕하세요. 프로젝트와 관련해서 이야기를 여쭙고자합니다. 혹시 연락가능하신가요?
    nomadblock@gmail.com으로 연락주시면 감사드리겠습니다.

토론 참가

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.