git filter repo

잘못된 커밋 내용(name, email 등)을 수정할때 git rebase 를 하나씩 pick 해서 수정했다.

그런데 git filter repo(https://github.com/newren/git-filter-repo)툴을 사용하면 편하다.

# 설치
uv pip install git-filter-repo --system

# 도움말
git filter-repo -h

# aaa.bbb 이름으로 커밋된 모든곳에 ysoftman 이름과 ysoftman@gmail.com 멜주소로 수정하기
git filter-repo --commit-callback '
if commit.author_name == b"aaa.bbb":
   commit.author_name = b"ysoftman"
   commit.author_email = b"ysoftman@gmail.com"
   commit.committer_name = b"ysoftman"
   commit.committer_email = b"ysoftman@gmail.com"
' --force

# git filter-repo가 안전을 위해 origin remote를 자동으로 제거한다.
# remote를 다시 추가하고 force push
git remote add origin https://github.com/ysoftman/ysoftman
git push --force origin main

# origin/main 을 로컬 main 브랜치로 다시 연결(트랙킹)
git branch --set-upstream-to=origin/main main

참고로 force push 후에도 gitHub에 이전 커밋 객체가 남아있어 이전 sha 해시로 직접 접근하면 여전히 보인다. 수주가 지나면 github 에서 자동으로 정리된다고 한다.

netflix - hot spot

요즘 netflix 는 보통 애니만 보는데 'hot spot' 이 드라마는 2배속하지 않고 야금야금 꼼꼼히 보게 된다.
예전에 본 영화 '고양이를 빌려드립니다(렌타네코)'가 재밌어서 주인공으로 나온 여배우(이치카와 미카코)를 좋아했는데, 넷플릭스 핫스팟 드라마에 이치카와 미카코가 나오는 썸네일을 보고 플레이하게 됐다.
처음에는 이쁜 여주인공 때문에 봤는데 1회부터 스토리가 재밌다. 일본 특유의 소소한 일상속에 녹아드는 코믹요소가 미소 수준의 웃음을 준다.
썸네일만 보고는 후지산에 UFO, 외계인등이 출현해 핫스팟이 되는 내용일거라고 예상했는데,
외계인은 있지만 내가 생각했던 그런 모습이 아닌 중년 아저씨고 이런저런 사건을 해결하는데 뭔가 애잔하다.
외계인,미래에서온 사람,초능력자,귀신(이래서 핫스 팟ㅋ)까지 나오는데 그냥 그렇구나하고 넘어가는게 코믹요소다. 나 같으면 꼬치꼬치 캐물어 진짜인지 확인하고 싶을텐데 주인공과 친구들은 놀라기는해도 금새 받아들이는 모습이 조금 비현실적으로 보이기도 했다. 그래도 이런게 이 드라마의 매력이다.
어떻게 보면 참 재미없는 작은 마을의 평범한 일상 같은데 은근 집중하고 본다.
주인공과 외계인 아저씨의 알콩알콩한 대화와 초인적인 능력 사용등을 보면 넷플릭스에서 소개한 특징대로 기발하고 유쾌 발랄하다.
화려한 CG도 아니고 배우들간의 열정적인 연기 대결이 펼쳐지지도 않고 뭔가 단편 영화스런 분위기도 나면서 약간의 병맛 느낌도 난다.
난 이런 류의 영화, 드라마를 좋아한다. 이 드라마를 보고 일드 '트릭(나카마유키에)'이 생각났다.
내가 좋아하는 여주인공 나카마유키에와 신비스러운 마술, 과학적인 트릭을 병맛스러운 느낌으로 풀어냈다.(이시절 일드가 참 좋았다.)
이 드라마를 보는 이유는 코믹도 있지만, 여배우가 주는 편안함이 크다.
이쁜 이목구비에 차가운 도시녀도 잘 어울릴것 같은데, 예전 영화 '렌타네코'에서도 느겼지만 소탈한 일상 연기가 자연스럽고 거부감이 없었다.(뭐 이건 좋아하는 연예인이라서 그런것도 같다.)
드라마의 배경이 되는 후지산 근처 이 마을에 가보고 싶은 생각이 들었다. 주인공 직장인 호텔과 마트, 거리를.. 주인공 친구들과 자주가는 카페에서 파르페도 먹어 보고 싶다.

terminated screencapture

맥스크린 캡쳐시 저장이 안되는 경우가 발생했다. 될 때는 되고 안될때는 안되던가 수초간의 딜레이가 발생 후 저장됐다
스크린 캡쳐 관련 프로세스는 다음 2개가 있다.
screencapture: cmd+shift+3/4 로 실제로 캡처를 수행하는 프로세스
screencaptureui: cmd+shift+5 로 화면 캡처 메뉴 UI 를 보여주는 프로세스

위 2개 프로세스를 모니터링(btop 등에서 screen 이름으로 필터링) 하고
cmd+shift+4 누르면 screencapture 가 실행되고 종료되지만 캡쳐가 되지 않거나 느리게 캡쳐된다.

다음과 같은 명령으로 영역 캡쳐 테스트시 캡쳐가 안되는 경우 강제 종료가 되고 있다는것을 알았다.
screencapture -R 0,0,100,100 -t jpg z.jpg
zsh: terminated  screencapture -R 0,0,100,100 -t jpg z.jpg

cmd+shift+5 누르면 screencaptureui 가 생겼다 사라진다.(메뉴가 잠깐 보였다 사라진다)

혹시 falcon 보안 프로그램이 캡쳐행위를 보안 위협이라고 판단해서 막는지 screencaptureui 과 로그 확인해 봐도 내용이 복잡하다.
log show --predicate 'subsystem == "com.crowdstrike.falcon"' --last 10m
log show --predicate 'process == "screencaptureui"' --style compact

claude-code 으로 원인 파악을 해봤다.
-----
최종 분석 결과

  전체 시스템 로그에서 screencaptureui[19932]가 죽는 순간을 확인했습니다:

  10:05:46.908 - gamepolicyd: running-NotVisible (마지막 상태 업데이트)
     ↓ 623ms - 로그에 아무 이벤트 없음 (보이지 않는 곳에서 kill)
  10:05:47.531 - WindowServer: "Process death... outside of RPC" (외부에서 프로세스 사망)
  10:05:47.538 - launchd: "removing child: pid/19932"

  **WindowServer는 프로세스를 죽인 것이 아니라 "사망을 보고"**했을 뿐입니다. 로그에 남지 않는 커널 레벨에서 프로세스가
  종료되었습니다.

  ---
  원인: CrowdStrike Falcon Sensor

  시스템에 설치된 CrowdStrike Falcon (Endpoint Security Extension)이 screencaptureui를 종료시키고 있을 가능성이 매우 높습니다.

  근거:
  1. Endpoint Security 프레임워크는 커널 레벨에서 동작하여 일반 로그에 흔적을 남기지 않고 프로세스를 종료할 수 있음
  2. screencaptureui가 매번 500~900ms 후 일관되게 죽음 - 정책 평가 후 kill하는 패턴
  3. 설정 리셋, TCC 초기화, 로그아웃 등 모든 OS 레벨 조치가 효과 없음
  4. CrowdStrike는 기업 환경에서 화면 캡쳐를 DLP(데이터 유출 방지) 정책으로 차단하는 기능이 있음

  해결 방법

  1. IT/보안 팀에 문의 - CrowdStrike Falcon의 DLP 정책에서 화면 캡쳐(screencaptureui)가 차단되어 있는지 확인 요청
  2. CrowdStrike 관리 콘솔에서 해당 기기의 screen capture 관련 정책 예외 추가 요청
  3. 임시 확인: IT 팀에서 CrowdStrike를 잠시 비활성화해줄 수 있다면, 그 상태에서 Cmd+Shift+5가 정상 작동하는지 테스트
-----