디렉터리 구조
|-- contracts|-- migrations|-- truffle.js|-- static|-- src    |-- klaytn      |-- caver.js      |-- KlaystagramContract.js    |-- redux    |-- pages      |-- AuthPage.js      |-- FeedPage.js    |-- components      |-- UploadPhoto.js      |-- Feed.js      |-- TransferOwnership.js      |-- ...    |-- styles    |-- utils    |-- index.js    |-- App.js
contracts/: Solidity 컨트랙트 파일을 포함합니다.
migrations/: 스마트 컨트랙트 배포를 처리하는 JavaScript 파일을 포함합니다.
truffle.js: Truffle 구성을 포함합니다.
static/: 이미지 및 글꼴과 같은 정적 파일을 포함합니다.
src/index.js: 앱의 인덱스 파일. ReactDOM.render 로직이 여기에 있습니다.
src/App.js: 앱의 루트 컴포넌트 파일.
src/styles: 스타일시트와 관련된 전반적인 스타일 정의입니다.
src/redux: 컨트랙트와 상호작용하고 결과 데이터를 추적하는 API 함수를 생성합니다.
src/klaytn: 클레이튼과의 상호작용을 지원하는 파일들이 들어 있습니다.
- 
src/klaytn/caver.js: 설정된 설정 내에서 caver-js를 인스턴스화합니다.(참조) caver-js는 클레이튼 노드에 연결하고, 클레이튼에 배포된 노드 및 스마트 컨트랙트와 상호작용하는 RPC 호출 라이브러리입니다.
 - 
src/klaytn/Klaystagram.js: caver-js API를 사용하여 컨트랙트 인스턴스를 생성합니다. 인스턴스를 통해 컨트랙트와 상호작용할 수 있습니다. 
src/pages: Klaystagram 앱을 구성하는 두 개의 페이지 파일을 포함합니다.
- 
src/pages/AuthPage.js: 가입 및 로그인 양식을 포함합니다. 가입 양식에서 개인키를 생성하여 앱에서 로그인할 때 사용할 수 있습니다. - 
src/pages/FeedPage.js: 컨트랙트에서 사진 데이터를 읽어와 사용자에게 보여줍니다. 또한 사용자는 FeedPage에서 자신의 사진을 업로드할 수 있습니다. 
src/components: 페이지를 구성하는 컴포넌트 파일을 포함합니다.
- 
src/components/Feed.js: 컨트랙트에서 데이터를 읽고 사진을 표시합니다. - 
src/components/UploadPhoto.js: 컨트랙트에 트랜잭션을 전송하여 사진을 업로드합니다. - 
src/components/TransferOwnership.js: 트랜잭션을 전송하여 사진의 소유권을 이전합니다.