본문 바로가기

분류 전체보기

Electron + React 데스크탑 앱 개발 (1) Electron은 HTML, CSS, Javscript를 사용해 크로스 플랫폼 데스크탑 애플리케이션을 만들기 위해 Github에서 개발한 오픈 소스 라이브러리입니다. Electron은 크로스 플랫폼을 지원하기 위해 Chromium과 Node.js를 1개의 런타임으로 통합했고, Electron을 이용해 작성한 앱은 Mac, Windows, Linux 용으로 패키징할 수 있습니다. 앞서 설명하였듯이 웹 개발자라면 충분히 개발을 시작할 수 있기 때문에 개발에 들어가기 위한 진입장벽이 낮지만, 결과물은 플랫폼과 상관없이 사용이 가능하기 때문에 크로스 플랫폼을 지향하는 많은 데스크탑 어플리케이션이 Electron을 사용하여 앱을 개발하고 있습니다. 대표적인 Electron 앱으로는 Atom, Visual Stud..
Elemental Battles로 시작하는 EOS dApp 개발 (2) LESSON 1. Smart Contract and Frontend Setup https://battles.eos.io/tutorial/lesson1/chapter1 LESSON1부터 본격적으로 개발이 시작됩니다. Elemental Battles는 앞서 언급한 것 같이 C++로 작성되는 스마트 컨트랙트와 Javascript 라이브러리인 React를 이용한 프론트 엔드 프로그램으로 구성되어 있습니다. 프론트 엔드 프로그램에는 state를 효율적으로 관리하기 위해 Redux가 적용되어 있습니다. 스마트 컨트랙트 세팅 Elemental Battles의 스마트 컨트랙트는 기본적으로 3개 파일로 구성됩니다. 첫번째는 cardgame.hpp입니다. cardgame.hpp는 스마트 컨트랙트를 정의하기 위한 헤더 파일..
Elemental Battles로 시작하는 EOS dApp 개발 (1) LESSON 0. Before You Start https://battles.eos.io/tutorial/lesson0/chapter1 튜토리얼에서는 각 단계별로 Elemental Battles라는 EOSIO game dApp을 개발하기 위한 설명과 코드가 제공됩니다. 튜토리얼에서 소개되는 코드는 크게 두 종류인데 한 가지는 블록체인에서 작동하는 스마트 컨트랙트에서 사용되는 것이며, 다른 한 가지는 JavaScript에 기반한 eosjs를 이용하여 블록체인과 통신하는 프론트 엔드 코드입니다. 모든 코드들은 아래의 링크의 Github을 통하여 다운로드 받을 수 있으며, 최종 버전을 다운로드 받았다면 코드를 빌드하여 Elemental Battels가 실제로 작동하게 할 수 있습니다. EOSIO/eosio-c..
Elemental Battles로 시작하는 EOS dApp 개발 (0) Elemental Battles는 2018년 10월 경에 Block.one에서 EOS dApp 개발자들을 위해 제공한 tutorial입니다. CPU와 대전하는 방식의 카드 게임으로 EOS dApp 개발 뿐만 아니라 개발된 dApp을 EOS에 배포하고 배포된 dApp을 React.js로 개발된 클라이언트에서 실행하는 방법까지 포함하고 있습니다. 완벽히 실행되는 하나의 프로그램 단위로서 EOS dApp을 경험할 수 있습니다. 앞으로 게시될 포스팅에서는 Elemental Battles에서 제공되는 설명과 코드를 이용하여 직접 EOS dApp을 개발해보고 배포해보도록 하겠습니다. 먼저 Elemental Battles에 접속해보도록 하겠습니다. Elemental Battles Powered by EOSIO htt..
Lombok 시작하기 Lombok에 대해 소개하고 있는 Project Lombok 공식 페이지에 접속하면 아래와 같은 Lombok에 대한 소개가 나와있다. Project Lombok is a java library that automatically plugs into your editor and build tools, spicing up your java.Never write another getter or equals method again, with one annotation your class has a fully featured builder, Automate your logging variables, and much more. 간단히 의미를 살펴보자면 Lombok은 에디터와 빌드 도구들에 자동으로 연결되는 Java ..
19. 투 포인터, 슬라이딩 윈도우 (2) 앞서 투 포인터의 개념에 대해 설명을 하였습니다. 이번에는 슬라이딩 윈도우에 대해 설명해보도록 하겠습니다. 때에 따라서 투 포인터와 슬라이딩 윈도우를 구분없이 이야기하거나 개념이 혼동되는 경우가 꽤 있을 정도로 둘은 유사한 접근 방식을 갖고 있는 알고리즘입니다. 투 포인터는 앞에서 언급한 대로 연속적인 데이터가 주어졌을 때 두 개의 포인터를 이용하여 범위를 정해주고 그 범위에 포함된 데이터의 합 등 연산을 한뒤 그것이 원하는 값인지 검증을 하고 조건에 맞지 않는다면 조건에 맞출 수 있도록 end pointer나 start pointer를 적절하게 이동시켜주면서 모든 데이터를 확인하는 방식의 알고리즘이었습니다. 슬라이딩 윈도우는 투 포인터와 유사하게 접근하되 투 포인터처럼 범위의 크기가 줄었다 늘었다 하는..
Java Reflection 사용하기 (7) 이 문서는 Oracle Technology Network에 포스팅되었던 Using Java Reflection을 참고하여 작성되었습니다. 원문은 아래의 링크에서 확인하실 수 있습니다. Using Java Reflectionhttps://www.oracle.com/technetwork/articles/java/javareflection-1536171.html 배열의 사용reflection의 마지막 단계는 배열을 만들고 조작하는 것입니다. Java에서의 배열은 특수한 형태의 class이며, 배열 참조는 객체 참조로 할당할 수 있습니다. 배열이 작동하는 방식을 확인하기 위해 아래의 예시를 생각해보겠습니다. import java.lang.reflect.*; public class array1 { public s..
graphql-yoga로 GraphQL 시작하기 이번 포스팅은 GraphQL에 대한 심도있는 이야기보다 GraphQL을 이용한 back-end setup에 대한 부분을 다루고 있습니다. GraphQL과 graphql-yoga에 대해 좀더 자세히 알고 싶으신 분은 하단의 GraphQL 공식 웹사이트와 graphql-yoga github를 참고하시기 바랍니다. GraphQLhttps://graphql.org/ graphql-yoga githubhttps://github.com/prisma/graphql-yoga graphql-yoga로 GraphQL을 시작하고자 한다면 Node.js가 필요합니다. Node.js를 설치하도록 합니다. Node.js Installationhttps://nodejs.org/ko/download/ 설치가 완료되었다면, packa..