fullstack

[Solidity] 접근 제어자 (public, private, internal, external)

Web3/Solidity

접근 제어자는 함수가 언제, 어디서 호출될 수 있는지 제어합니다

Solidity에서 접근 제어자의 종류는 다음과 같습니다

 

public

이 함수는 contract의 내외부 모두에서, 어디서든지 호출될 수 있습니다

 

private

이 함수는 contract의 내부의 다른 함수들에 의해서만 호출될 수 있습니다

 

internal

이 함수는 contract의 내부 혹은, 해당 contract를 상속하는 다른 contract에서도 호출될 수 있습니다

 

external

이 함수는 오직 contract 외부에서만 호출될 수 있습니다

 

[Python] Mac OS 에서 .DS_Store 파일 제거하기

Language/Python

이미지 프로세싱을 위해  다음과 같은 코드로 특정 폴더의 이미지들을 불러와 리스트화 하였다

 

dir = "color"
imagePaths = [os.path.join(dir,file_name) for file_name in os.listdir(dir)]

 

그래서 imagePaths 에 불러온 파일들을 프로세싱하려고 보니 다음과 같은 오류가 발생하였다

PIL.UnidentifiedImageError: cannot identify image file 'color/.DS_Store'

 

imagePaths 안에 .jpg나 .png같은 이미지 파일이 아닌 .DS_Store 파일이 들어가서 문제가 된 것인데,

.DS_Store 파일은 mac os 에서 자동으로 생성하는 메타데이터 파일이다

 

위 코드에 다음과 같은 코드를 추가하여 .DS_Store 파일은 지워주어 해결하였다

 

if dir + '/.DS_Store' in imagePaths:
    imagePaths.remove(dir + '/.DS_Store')

 

 

[Unity] Json 파일 간단하게 Class 변환하기 (Json.NET)

Unity

Json.NET을 이용하여 Json 파일을 간단하게 Class 로 변환할 수 있다

Json.NET 에셋스토어에서 받을 수 있다

 

우선 간단한 Json 파일을 만들어 보았다

{
    "level" : 0,
    "coin" : 0
}

 

그 다음에는 이 정보를 파싱할 Class도 만들어 보자

[Serializable]
class Data
{
    int level;
    int coin;
}

 

주의할 점은 Class 에 [Serializable] 를 붙여 직렬화 해 주어야 하고, 변수명을 서로 맞춰 주어야 한다

 

TextAsset jsonData = Resources.Load("Json/Data") as TextAsset;
_data = JsonUtility.FromJson<GameData>(jsonData.ToString());

 

Json 파일은 Resources 경로에 Json/Data.json 으로 저장하여 간단하게 Resources.Load 를 이용하여 불러와 보았다

이렇게 사용하면 Json Object를 생성하여 일일히 파싱하는 번거로움을 줄일 수 있다

 

Class를 다시 Json으로 변환할때는 JsonUtility.ToJson(_data) 이런식으로 사용할 수 있다