목록Categories (1099)
KoreanFoodie's Study
크립토 좀비에서 제공하는 튜토리얼을 통해 배우는 Solidity 문법을 정리하고 있습니다! Lesseon 5 에서는 ERC721 의 적용과 SafeMath 에 대한 간단한 예제를 다루고 있다. 기존 코드에 zombieownership.sol 을 추가했다. 1. ERC721 우리가 흔히 NFT 라고 부르는 토큰은, 각 토큰이 'unique' 하다는 특징을 가진다. 예를 들어, "Steve" 라는 이름의 좀비가 있고, 이것을 토큰으로 만들면, 다른 이름을 가진 토큰들과는 구별되어야(distinguishable) 한다. 또한 ERC721 토큰은 쪼갤 수 없다. "Steve" 라는 좀비가 있다고 했을 때, 0.237 만큼의 "Steve" 로 쪼개어 보낼 수 없다는 뜻이다(물론 최근에는 NFT 도 쪼개는 논의가 ..
크립토 좀비에서 제공하는 튜토리얼을 통해 배우는 Solidity 문법을 정리하고 있습니다! Lesseon 4 에서는 payable 개념에 대해서 조금 더 다룬다. 이전 게시글에서 zombieattack.sol 을 추가해, 좀비가 공격할 수 있도록 만들었다! 이번 장을 정리한 내용은 다음과 같다. 1. payable Modifier 이더리움에는 Ether 를 주고 받을 수 있는, payable 함수라는 녀석이 존재한다. contract OnlineStore { function buySomething() external payable { // Check to make sure 0.001 ether was sent to the function call: require(msg.value == 0.001 ethe..
크립토 좀비에서 제공하는 튜토리얼을 통해 배우는 Solidity 문법을 정리하고 있습니다! Lesseon 3 에서는 가스 소모와 코드 효율성 등에 대해 공부할 수 있었다. 기존에 zombiefactory.sol 과 zombiefeeding.sol 로 나누어진 코드에 zombiehelper.sol 과 ownable.sol 을 추가했다. 이번 장을 정리한 내용은 다음과 같다. 1. Immutability of Contracts 이더리움에 컨트랙트를 배포하면, 해당 컨트랙트는 불변(immutable) 이 된다. 따라서, contract 에 문제가 생기면 이를 수정하는 것이 아니라 다른 smart contract 의 주소를 유저에게 제공하는 식으로 패치를 해야 한다. 2. Ownable Contracts 만약 ..
크립토 좀비에서 제공하는 튜토리얼을 통해 배우는 Solidity 문법을 정리하고 있습니다! 이전 게시글에서 작성했던 코드를 조금 확장해서, 좀비를 생성하는 것 말고도 다른 여러 가지 기능을 추가적으로 구현했다. 다른 개체를 먹고 다른 개체의 dna 와 섞인 새로운 좀비를 생성하거나, cryptokitty 의 dna 를 불러와서 좀비를 만들어보는 등의 함수가 구현되어 있다. 편의를 위해, 코드를 zombiefactory.sol 과 zombiefeeding.sol 로 나누었다. 이번 장을 정리한 내용은 다음과 같다. 1. Ethereum blockchaing 은 accounts 로 이루어져 있고, 각 accounts 에는 address 가 있다. 2. mapping 을 통해 C++ 에서의 map 같은 기능을..
먼저, Solidity 는 코드가 contract 단 아래에서 작성되어야 한다. 이게 가장 기초적인 항목으로, 아래 예제 코드에서는 ZombieFactory 라는 contract 내부에서 코드를 작성했다. // 어떤 버전을 쓸 것인지 명시. 0.5.0 이상, 0.6.0 미만 pragma solidity >=0.5.0
MoveTo 와 애니메이션 비헤이비어 트리 로직을 짜면서 MoveTo 를 테스트했는데, 해당 지점으로 이동할 때 걷는 애니메이션이 재생되는 것이 아니라 캐릭터 메시 자체가 미끄러지듯이 슬라이딩하는 현상이 생겼다. 애니메이션을 어떻게 하면 재생할 수 있지? 라고 생각하며 AnimBP 를 잘 연결해줬는데도 동작이 제대로 안되는 상황이 있었다. 언리얼 포럼에서는 다양한 해결책을 제시한다. 1. 애니메이션 블루프린트 연결 확인하기 2. CharacterMovement -> NashMovement 에서 Use Acceleration for Paths 체크하기 근데 나는 이 두가지 전부 아니였다. 나의 경우, 아래와 같이 Speed 값에 따라 애니메이션을 변경하는 블렌드 스페이스를 만들었는데, 알고보니 Speed ..
객체지향의 본질 사실 대부분의 사람들이 객체지향이라는 말을 들었을 때 떠올리는 문장은 다음과 같을 것이다. 객체지향이란 시스템을 상호작용하는 자율적인 객체들의 공동체로 바라본다 자율적인 객체는 상태와 행위를 함께 지니며, 스스로 자기 자신을 책임진다 객체는 시스템의 행위를 구현하기 위해 다른 객체와 협력한다. 각 객체는 협력 내에서 정해진 역할을 수행하며 역할은 관련된 책임의 집합이다. 객체는 다른 객체와 협력하기 위해 메시지를 전송하고, 메시지를 수신한 객체는 메시지를 처리하는 데 적합한 메서드를 자율적으로 선택한다 (캡슐화라는 것은, 메시지를 전송한 객체는 수신한 객체가 어떻게 동작할지를 모르고, 수신한 객체가 요청 사항을 메시지로 받은 후 알아서 처리한다는 것을 의미한다. 따라서 메시지를 전송하는 ..
[언리얼] 어떤 개념 : 어떻게 하기 맨 처음 언리얼을 설치하고 프로젝트를 열려고 하면, 다음과 같이 연결이 되어 있지 않다. 이 문제는 속성에서 연결 프로그램을 다음과 같이 해 주면 된다 : "C:\Program Files (x86)\Epic Games\Launcher\Engine\Binaries\Win64\UnrealVersionSelector.exe" 만약 위의 방법이 안 되면, 위의 UnrealVersionSelector.exe 를, 다음 경로에 복붙한다 : "C:\Program Files\Epic Games\UE_4.27\Engine\Binaries\Win64" 그래도 안 될 경우 : 해당 UnrealVersionSelector.exe 파일을 관리자 권한으로 한 번 실행시켜, 레지스트리에 등록 ..
싱글턴 패턴과 정적 변수? 싱글턴 패턴을 공부하던 중, 게으른 초기화 성질을 이용해 싱글턴을 상속하는 방법에 대해 배웠다. 부모 클래스의 virtual 메소드를 부를 때, 자식 클래스의 instance 를 부모 클래스의 instance 타입으로 타입 캐스팅하는 방식이 가능할까? 정적 변수는 상속이 되지 않는다. 엄밀히 말하면, 정적 변수는 '상속' 되는 것이 아니라 '공유'되는 것이다. 또한 싱글턴 특성 상, instance 라는 이름으로 자식 클래스에서 똑같이 받으면, 부모 클래스의 instance 를 hide 하게 되므로, 부모 클래스의 virtual 메소드를 호출할 수 없다. 아래에 간단한 테스트 코드를 넣어 놓았다. using System; public class Parent { public st..
Udemy 관련 개념 정리 및 Dev Log 를 기록하고 있습니다! Monobehaviour 유니티에는 Monobehaviour 라는 클래스가 있다. 씬에서 GameObject 로 사용하는 클래스는 Monobehaviour 를 상속하게 되는데, Monobehaviour 에는 다양한 내장 메소드들이 있다. Awake, Start 처럼 초기화에 쓰이는 녀석도 있고, OnEnable 이나 OnDisable 처럼 해당 게임 오브젝트를 껐다 킬때 ( SetActive( ) 함수 호출 혹은 .enabled 값 변경 ) 호출되는 함수들도 있다. 중요한 것은, 어떤 함수가 어떤 순서로 호출되는지를 알아야 한다는 것이다! 이 링크에 정리된 사진을 가져온 것이다. 특히 주의해야 할 사항으로는, Spawner 클래스에서 생..