전체 글 538

안드로이드 Unity 플러그인 만들기

회사에서 GoogleAnalaytics나 AppsFlyer처럼 게임 중 발생하는 이벤트들을 캐치해서 보내는 SDK를 개발할 일이 생겼는데, Native를 왠만하면 이용하지 않는 편으로 구현하려했으나 최종 코드 가독성이라던가 파일 관리, 추상화 등의 이유로 Native를 사용하기로 했다. 오늘은 그때를 돌아보며 귀찮지만...처음 연결했던 방법을 적어보려한다. 1. classes.jar 추출하기 이번이 나의 처음 SDK 개발이었으며, Unity조차도 잘 몰랐다. 처음엔 Unity와 Android가 어떻게 소통한다는거지? 부터 이해가 필요했다. 둘 사이의 소통을 위해, Unity 라이브러리가 존재한다. 일반적으로는 아래 경로들에 위치하며, 이름은 classes.jar다. 이 파일을 복사하여 어딘가에 저장해두자..

kotlin dsl 적용중 versionNeededToExtract 오류 해결방법

java.lang.IllegalArgumentException: Unexpected versionNeededToExtract (0) at androidx/viewbinding/R.class at org.jetbrains.kotlin.cli.jvm.compiler.jarfs.ZipImplementationKt.parseCentralDirectory(ZipImplementation.kt:110) at org.jetbrains.kotlin.cli.jvm.compiler.jarfs.FastJarHandler.(FastJarHandler.kt:25) at org.jetbrains.kotlin.cli.jvm.compiler.jarfs.FastJarFileSystem$myHandlers$1.fun(FastJarFil..

Falcon req.get_param()으로 모든 파라미터를 받아보자

일반적으로 Falcon에서는 Query parameter에 있는 값을 req.get_param('name')으로 읽어올 수 있다. 하지만 폼데이터 역시 동일한 방법으로 얻어오면 구분은 안가긴 하지만 편할 것이다. 간단한 세팅으로 이를 실현시킬 수 있다. application/x-www-form-urlencoded application/x-www-form-urlencoded로 들어오는 값들도 req.get_param()을 통해 얻고 싶다면 아래 라인을 추가하면 된다. app.req_options.auto_parse_form_urlencoded = True multipart/form-data 추가로 falcon-multipart라는 모듈 설치가 필요하다. pip install falcon-multipart ..

해싱, 암호화에 대한 정리

# 단방향 암호화 (One-way Encryption) *단방향 알고리즘? 암호화했을때 다시 평문으로 복호화할 수 없는 암호화 알고리즘이다. 해시함수 (Hash Function) / 해시 알고리즘 (Hash algorithm) 임의 길이의 메세지를 고정 길이의 해시 값으로 변환시켜주는 단방향성 함수, 알고리즘 아주 작은 확률로 입력값이 다름에도 출력값이 같은 경우가 발생하는데, 이를 해시 충돌이라고 한다. 이 충돌 확률이 낮을 수록 좋은 함수로 평가된다. 해시값, Fingerprint, Message Digest 모두 같은 말이다. 단방향성 해시 함수의 출력값이다. 대표적인 단방향 알고리즘 MD5 임의 길이의 메세지를 512bit 단위로 처리해 128bit로 암호화 한다. 애국가 가사 4절 전부를 MD5..

Unity 생명주기에 관해 알아보자

위 그림은 유니티에서 제공하는 생명주기 도식인데, 나같은 입문자들이 보기에는 너무 세세한 정보를 담고 있으므로...중요한것만 뽑아서 정리를 해보려한다. Awake() Scene이 시작되고, 모든 Monobehavior의 Start()전에 호출된다. Prefab이 초기화되고난 직후다. | Start() 첫번째 프레임이 업데이트 되기전에 호출된다. 단, Script의 인스턴스가 활성화 되어있을때만 호출된다. 게임 플레이 중에 Object를 생성한다고해서 Start()가 호출되지 않는다. | OnApplicationPause() 게임이 중단되고, 프레임과 프레임 사이에 호출된다. 게임이 중단된 상태를 핸들링하기 위해서 OnApplicationPause이후에 하나의 프레임이 더 있다. | FixedUpdate(..

[영상] 레이 달리오, 변화하는 세계질서

투자원칙 1 중앙은행이 위기 극복을 위해 화폐를 찍어내면 주식, 금, 원자재를 매수하라. 정부가 세금 수입보다 더 많은 지출을 했을 경우 재정 상태는 악화되어 돈이 바닥난다. 그를 극복하기 위해 화폐를 많이 찍어내면 화폐가치가 하락하며, 주식, 금, 원자재를 포함한 대부분의 자산 가격을 상승시킨다. 투자원칙 2 다가올 미래를 전망하기 위해서는 과거의 역사를 알아야 한다. 한 국가의 경제가 흥하다가 투자가 활발히 일어나고, 결국 대출을 하면서 까지 투자, 버블은 부의 격차를 가져오고, 버블이 터지면서 돈을 찍어내고...빈부갈등이 심해지며 부를 재분배하기 위한 혁명이 일어난다. 이런 일이 벌어질동안 다른 신흥 강국이 등장한다. 세계 패권의 역사는 이러한 부상과 쇠락 싸이클의 반복이었다. 영상 번역 https..

나/독후감 2022.03.15