C/C++ 디자인 패턴 (1) — 추상 팩토리(Abstract Factory)

다크 모드를 지원하는 앱에서 버튼은 다크 테마로, 체크박스는 라이트 테마로 그려지는 버그는 흔하다. 화면 곳곳에서 new DarkButton, new LightCheckbox처럼 구체 클래스를 직접 만들면 "같은 패밀리끼리만 섞여야 한다"는 규칙을 지킬 곳이…

Continue ReadingC/C++ 디자인 패턴 (1) — 추상 팩토리(Abstract Factory)

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

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

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

[라즈베리파이] u-boot 에서 kernel 부팅

커널을 바꿔가며 시험할 때 라즈베리파이 펌웨어에만 의존하면 매번 전원을 내리고 SD 카드를 빼서 파일을 갈아끼워야 한다. U-Boot 프롬프트까지 올려놨다면 그 자리에서 커널을 골라 올리고 부트 인자를 바꿔 다시 부팅할 수…

Continue Reading[라즈베리파이] u-boot 에서 kernel 부팅

Android 커널의 벤더 훅(Vendor Hook) 840개 — GKI가 out-of-tree 코드를 받아들이는 방식과 그 대가

Android 기기는 처음부터 메인라인과 상당히 다른 커널을 써 왔습니다. GKI(Generic Kernel Image)가 도입되면서 그 차이는 많이 줄었습니다. 그래도 지금 출시되는 기기의 커널에는 여전히 out-of-tree 변경이 대량으로 들어 있습니다. Android가 이런…

Continue ReadingAndroid 커널의 벤더 훅(Vendor Hook) 840개 — GKI가 out-of-tree 코드를 받아들이는 방식과 그 대가

리눅스 커널 7.3 릴리스 — 역대 최대 개발 주기, 자동 리뷰가 버그를 줄이고 있다는 첫 신호

리누스 토발즈가 10월 18일(현지 시간) 리눅스 커널 7.3을 릴리스했습니다. 평소처럼 9주 개발 주기였지만 숫자는 평소와 전혀 다릅니다. 프로젝트 역사상 처음으로 한 주기의 전체 커밋이 2만 건을 넘었습니다. 개발자 수는 7.2가…

Continue Reading리눅스 커널 7.3 릴리스 — 역대 최대 개발 주기, 자동 리뷰가 버그를 줄이고 있다는 첫 신호

Handy 소개

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

Continue ReadingHandy 소개

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

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

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