리눅스 커널 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, 파라미터 확장 실측 비교

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 실측 비교

Ubuntu 서버에서 DNS 설정하기

Ubuntu 서버에서 DNS 서버를 바꾸려고 /etc/resolv.conf를 열면 nameserver 127.0.0.53 한 줄만 보이고, 직접 고쳐도 재부팅하면 원래대로 돌아간다. 18.04부터 이름 해석을 systemd-resolved가 맡고 있기 때문이다. 실제 업스트림 DNS는 Netplan(DHCP 포함)이나 resolved.conf에서…

Continue ReadingUbuntu 서버에서 DNS 설정하기