REA(Reverse Engineer Anything) 사용법 — 코딩 에이전트로 바이너리와 Electron 앱 분석하기

다른 앱에서 본 기능을 내 프로젝트에도 넣고 싶을 때가 있다. 소스가 없으면 디스어셈블러를 열어 함수를 따라가야 하는데, 이 작업은 도구도 많고 시간도 오래 걸린다. REA(Reverse Engineer Anything)는 이 작업을 코딩…

Continue ReadingREA(Reverse Engineer Anything) 사용법 — 코딩 에이전트로 바이너리와 Electron 앱 분석하기

Handy 소개

메신저 답장, 커밋 메시지, 이슈 코멘트처럼 짧은 글을 하루에도 수십 번 타이핑한다. 말로 하면 빠른데, OS 내장 받아쓰기는 플랫폼마다 다르고 리눅스에는 아예 없다. 클라우드 음성 인식 서비스는 음성을 외부로 보내야…

Continue ReadingHandy 소개

Bash에서 구분자로 문자열 나누기 — IFS read, readarray, 파라미터 확장 실측 비교

CSV 한 줄, PATH 같은 콜론 목록, 설정 파일의 key=v1;v2;v3처럼 구분자로 이어진 문자열을 배열로 나누는 일은 셸 스크립트에서 매일 나온다. 그런데 흔히 쓰는 방법들은 공백이 든 필드, * 같은 glob…

Continue ReadingBash에서 구분자로 문자열 나누기 — IFS read, readarray, 파라미터 확장 실측 비교

Python 중첩 리스트 평탄화(flatten) — 6가지 방법 성능 실측과 함정

API 응답을 페이지별로 모은 리스트, 파일마다 읽은 줄 목록처럼 리스트의 리스트를 한 줄로 펴야 하는 경우는 흔하다. 방법은 list comprehension, itertools.chain, sum(xss, []) 등 여럿인데, 어느 것이 빠른지에 대한 통념과…

Continue ReadingPython 중첩 리스트 평탄화(flatten) — 6가지 방법 성능 실측과 함정

C/C++ 비트 set·clear·toggle 정리 — 시프트 UB와 타입 폭 함정 실측

레지스터 플래그, 권한 비트, 상태 마스크처럼 정수 하나의 특정 비트만 켜고 끄는 코드는 드라이버부터 일반 애플리케이션까지 어디에나 있다. 연산 자체는 |, &, ^ 한 줄이지만, 시프트할 리터럴의 타입을 잘못 고르면…

Continue ReadingC/C++ 비트 set·clear·toggle 정리 — 시프트 UB와 타입 폭 함정 실측

Git에서 이미 추적 중인 파일을 .gitignore에 반영하기 — rm –cached, skip-worktree, assume-unchanged 실측

빌드 산출물이나 .env 같은 파일을 실수로 커밋한 뒤 뒤늦게 .gitignore에 추가해도, git은 그 파일을 계속 추적하고 변경을 M으로 보여준다. .gitignore는 아직 추적하지 않는(untracked) 파일에만 적용되기 때문이다. 흔히 쓰는 git rm…

Continue ReadingGit에서 이미 추적 중인 파일을 .gitignore에 반영하기 — rm –cached, skip-worktree, assume-unchanged 실측

Bash 스크립트가 있는 디렉터리 경로 구하기 — dirname, BASH_SOURCE, readlink -f 실측 비교

설정 파일이나 같은 저장소의 다른 스크립트를 읽으려면 스크립트 자신이 있는 디렉터리를 알아야 한다. pwd는 호출한 쪽의 작업 디렉터리일 뿐이라 쓸 수 없고, dirname $0은 실행 방식에 따라 결과가 달라진다. 흔히…

Continue ReadingBash 스크립트가 있는 디렉터리 경로 구하기 — dirname, BASH_SOURCE, readlink -f 실측 비교

Git 사용법 기초 — 커밋, 되돌리기, 브랜치, 원격 저장소

작업하던 파일을 main_final.py, main_final2.py로 복사해 두다 보면 어느 것이 최신인지 금방 헷갈린다. 며칠 전 동작하던 코드로 돌아가고 싶은데 그 시점의 사본이 없기도 하다. Git은 이 문제를 파일 사본이 아니라 "변경…

Continue ReadingGit 사용법 기초 — 커밋, 되돌리기, 브랜치, 원격 저장소

Yocto 빌드에서 특정 패키지를 포함/제외하는 방법

Yocto로 이미지를 만들다 보면 패키지 하나를 넣거나 빼야 할 일이 계속 생긴다. 그런데 local.conf에 IMAGE_INSTALL += "strace"라고 적어도 이미지에 strace가 들어가지 않는다. 이미지 레시피가 IMAGE_INSTALL을 다시 할당해버리기 때문인데, 이처럼 변수마다…

Continue ReadingYocto 빌드에서 특정 패키지를 포함/제외하는 방법