본문 바로가기

전체 글

[Android] preprocessor(전처리기) 흉내내기 디버깅과 릴리즈시 변수의 값을 다르게 가져가고 싶을때 C/C++ preprocessor로 처리하면 편한데, java는 기본적으로 preprocessor를 지원하지 않는다. 하지만 비슷하게 gradle의 build type에 따라 변수의 값을 바꿔줄 수 있는 기능이 있어 소개한다. gradle은 android studio용 빌드 툴키이라고 설명되어 있는데, 뭐 그냥 android studio용 makefile이라고 보면 될 것 같다. 자세한 내용은 Android developer를 참고할 것. build.gradle에 buildConfigField를 추가했다. buildTypes { release { ...... buildConfigField "String", "SOME_KEY", '"xxxxxx"' } .. 더보기
라즈베리파이에 pyenv 설치 라즈베리파이에 pyenv 설치 후 python 인스톨까지 정리해 본다. 필요 패키지 설치 $ sudo apt update $ sudo apt upgrade $ sudo apt install -y git openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev pyenv 설치 $ git clone https://github.com/pyenv/pyenv.git ~/.pyenv Shell 환경 구성 $ sudo vi ~/.bashrc vi로 .bashrc을 열고 .bashrc 제일 마지막에 아래 내용을 추가한다. # the sed invocation inserts the lines at the start of the file # after.. 더보기
부팅시 flask 웹서버 구동 소개 요즘 flask 해보다가 집에도 웹서버를 하나 만들어 둘까 했다. flask로 웹페이지를 만들고 라즈베리파이가 부팅시 웹서버가 동작하도록 하려고 했다. systemd에 service 등록을 해봐도 안되고 rc.local에 등록을 해도 안되고... ㅠㅠ 헛짓을 하다가 결국은 supervisor를 이용해서 성공했다. supervisor는 UNIX 같은 os에서 프로세스를 모니터링 하거나 그 수를 컨트롤 하도록 해 주는 client/server system이라고 소개 되어 있다. 설치 Pip를 이용한 설치 $ pip install supervisor Apt를 이용한 설치 $ sudo apt-get install supervisor 프로그램 등록 실행시킬 프로그램을 등록을 해야 한다. supervisord.. 더보기
pyenv로 python 3.10.0 설치시 필요한 추가 라이브러리 소스를 받아서 빌드를 하기 때문에 설치해야 할 게 참 많다. $ sudo apt install -y git openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev libffi-dev 더보기
pyenv로 python 설치시 fatal error: ffi.h: No such file or directory 파이썬 3.10.0을 설치하는데 빌드 에러가 발생했다. ffi 정확히 뭔지는 모르지만 개발용 library가 없는 거겠지. $ sudo apt-get install libffi-dev 문제 해결. 더보기
생로병사 고통은 어쩔 수 없는 것들을 어쩌려고 할 때 생기는 것이다. 더보기
라즈베리파이 한글 키보드 설정 1. 폰트 설치 $ sudo apt-get install fonts-unfonts-core 2. 한글 입력시 설치 $ sudo apt-get install ibus-hangul 3. IBus 설정 Menu --> Preferences --> IBus Preferences 실행 Input Method에서 Add 누르고 Korean 추가 4. TaskBar에서 태극아이콘 선택 후 Setup 입력방식 및 한영전환키 확인 후 재 부팅 이제 한글 입출력 가능해짐. 더보기
미밴드6 NFC에 암호화된 출입 카드 등록 및 사용 방법 중국 내수용 미밴드 NFC는 국내에서도 도어락 카드를 추가해서 사용할 수 있다는 것을 확인했다. 스마트 카드 업계에 일하는 입장이라 테스트를 해보고 싶었다. 확인해 보니 mifare classic 1K 카드만 등록이 가능한 것으로 확인 되었고 카드 등록도 상당히 쉬운 편이었다. 미밴드가 다수의 카드 복제를 지원한다는 것은 mifare를 에뮬레이션 한다고 볼 수 있다. 카드를 몇 개 등록해 보니 mifare A, B key가 전부 'FF...FF'인 카드는 바로 읽어서 미밴드에 복제를 해 버린다. 그리고 당연히 하나의 sector에라도 A, B key가 'FF...FF'가 아닌 카드는 "the original card has been encrypted."라고 표시되면서 복제를 하지 못한다. 즉, 미밴드는 .. 더보기