C/C++ 디자인 패턴 (2) — 빌더(Builder)
HTTP 요청 객체 하나에 URL, 메서드, 타임아웃, 재시도 횟수, 헤더가 붙기 시작하면 생성자 인자 목록이 길어지고, 같은 타입 인자의 순서를 바꿔 써도 컴파일러는 알아채지 못한다. 빌더(Builder)는 복잡한 객체의 생성 과정을…
HTTP 요청 객체 하나에 URL, 메서드, 타임아웃, 재시도 횟수, 헤더가 붙기 시작하면 생성자 인자 목록이 길어지고, 같은 타입 인자의 순서를 바꿔 써도 컴파일러는 알아채지 못한다. 빌더(Builder)는 복잡한 객체의 생성 과정을…
다크 모드를 지원하는 앱에서 버튼은 다크 테마로, 체크박스는 라이트 테마로 그려지는 버그는 흔하다. 화면 곳곳에서 new DarkButton, new LightCheckbox처럼 구체 클래스를 직접 만들면 "같은 패밀리끼리만 섞여야 한다"는 규칙을 지킬 곳이…
다른 앱에서 본 기능을 내 프로젝트에도 넣고 싶을 때가 있다. 소스가 없으면 디스어셈블러를 열어 함수를 따라가야 하는데, 이 작업은 도구도 많고 시간도 오래 걸린다. REA(Reverse Engineer Anything)는 이 작업을 코딩…
커널을 바꿔가며 시험할 때 라즈베리파이 펌웨어에만 의존하면 매번 전원을 내리고 SD 카드를 빼서 파일을 갈아끼워야 한다. U-Boot 프롬프트까지 올려놨다면 그 자리에서 커널을 골라 올리고 부트 인자를 바꿔 다시 부팅할 수…
Android 기기는 처음부터 메인라인과 상당히 다른 커널을 써 왔습니다. GKI(Generic Kernel Image)가 도입되면서 그 차이는 많이 줄었습니다. 그래도 지금 출시되는 기기의 커널에는 여전히 out-of-tree 변경이 대량으로 들어 있습니다. Android가 이런…
AI 코딩 에이전트를 쓰기 시작한 뒤로 손으로 치는 코드는 확실히 줄었습니다. 그런데 이상하게도 퇴근 시간은 그대로입니다. Unhandled Exception Podcast 진행자 댄 클라크(Dan Clarke)도 같은 고민을 털어놓습니다. "AI가 몇 초 만에…
이번 주 LWN.net 위클리 에디션(10월 22일자) 주요 내용이다. 10월 18일 나온 커널 7.3은 LLM 보조 기여에 힘입어 커밋 수, 개발자 수, 첫 기여자 수에서 모두 역대 기록을 갈아치웠고, LWN은 자동…
리누스 토발즈가 10월 18일(현지 시간) 리눅스 커널 7.3을 릴리스했습니다. 평소처럼 9주 개발 주기였지만 숫자는 평소와 전혀 다릅니다. 프로젝트 역사상 처음으로 한 주기의 전체 커밋이 2만 건을 넘었습니다. 개발자 수는 7.2가…
메신저 답장, 커밋 메시지, 이슈 코멘트처럼 짧은 글을 하루에도 수십 번 타이핑한다. 말로 하면 빠른데, OS 내장 받아쓰기는 플랫폼마다 다르고 리눅스에는 아예 없다. 클라우드 음성 인식 서비스는 음성을 외부로 보내야…
CSV 한 줄, PATH 같은 콜론 목록, 설정 파일의 key=v1;v2;v3처럼 구분자로 이어진 문자열을 배열로 나누는 일은 셸 스크립트에서 매일 나온다. 그런데 흔히 쓰는 방법들은 공백이 든 필드, * 같은 glob…