기술 블로그
- iOS·바이너리
앱스토어 IPA에 내 코드를 심는다 — 추출·프레임워크 인젝션·재서명, 그리고 그게 왜 무서운가
서명된 IPA를 풀어 Frameworks에 dylib를 끼우고 Mach-O load command 한 줄로 강제 로드한 뒤 재서명해 정상 실행시키는 전 과정. 보안 SDK 주입과 악성 주입이 같은 기술이라는 양날을 무결성 검증·재서명 탐지로 닫는다.
- AI·RAG
메모리 예산에 맞춰 RAG를 깎아내기 — 사내 TextRAG에서 이력서 챗봇까지
회사 GPU의 풀스택 RAG를 24GB Mac Mini로 옮기며 깎아낸 과정, 그리고 리랭커를 붙였다가 측정 후 뺀 이야기.
- iOS·바이너리
Mach-O에 섹션 하나 끼워넣었을 뿐인데 앱이 다 깨졌다
외부 IPA에 섹션을 추가하면 왜 뒤 offset이 연쇄로 밀려 문자열 참조가 깨지는지, 그리고 기존 offset을 보존하는 무파괴 섹션 추가와 문자열 암호화 대체 전략.
- iOS·바이너리
LIEF로 Fat Binary를 다시 저장했더니 문자열 주소가 페이지 단위로 밀렸다
서명된 IPA를 후처리하려고 LIEF로 Fat Binary를 재저장했더니 cstring 주소가 16KB 페이지 정렬 단위로 어긋났다. 오픈소스의 재배치 가정을 직접 rewriting으로 넘긴 디버깅 일지.
- iOS·바이너리
Xcode 26 Enhanced Security가 강제하는 arm64e Fat Binary, 켜지기 전에 후처리 인프라를 늘렸다
Xcode 26 Enhanced Security가 arm64e Fat Binary를 강제한다. 고객이 켜기 전에 단일 슬라이스 가정의 후처리 도구를 Fat 헤더 파싱으로 확장하고, 빌드 의존성을 외부에 떠넘기지 않는 시나리오를 고른 과정.
- iOS·바이너리
Swift 문자열은 어디 숨어있나 — 정적 분석에 다 보이던 문자열·클래스명을 0→1로 가린 바이너리 난독화
평범한 Swift 앱을 정적 분석기로 열면 문자열·클래스명·API 호출이 그대로 보인다. 이 공백을 경량 가역 변환으로 메우며 부딪힌 Swift 특이성과 설계 판단을 정리한다.
- iOS·바이너리
탐지 함수가 0/1을 리턴하면 후킹이 그걸 뒤집는다
탈옥·후킹 탐지 함수의 고정 반환값은 hook 한 줄로 뒤집힌다. 반환값을 매 호출 랜덤 정수로 바꾸고 호출 측이 그 값을 알고리즘으로 합의 검증하게 만들어 우회를 원천에서 끊은 설계 기록.
- iOS·바이너리
캡처를 막는데 WebView만 화면이 깨진다 — 보호 속성을 View tree로 확장한 설계와 그 한계
iOS가 보안 입력 필드를 시스템 캡처에서 빼는 특성을 일반 View 계층으로 확장해 화면 전체를 캡처에서 제외한 설계, 동적 계층(WebView)에서 깨지는 한계, 그리고 iPhone Mirroring이라는 신종 경로를 정리한다.
- AI·RAG
사내 자료를 밖으로 못 내보낸다 — 회사 GPU 위에 RAG를 세운 TextRAG 구축기
외부 LLM에 사내 코드·문서를 보낼 수 없다는 제약에서 출발해, 회사 GPU 위에 임베더+리랭커+생성 스택을 직접 올리고 골든셋으로 recall@5 87%까지 튜닝한 뒤 한 엔진을 사내검색·MCP·MR 리뷰봇이 공유하게 만든 설계 기록.
- AI·RAG
채용 챗봇이 환각·민감정보를 흘리기 전에 배포를 막는 법
이력서 RAG 챗봇이 없는 기술 디테일을 날조하거나 PII·내부 코드명·프롬프트를 누설하지 않는지, 골든셋 32문항과 결정론 게이트로 배포 전 자동 차단한 회귀 평가체계 설계기.
- AI·RAG
코드를 밖으로 안 내보내고, 토큰 비용 0으로 LLM을 개발 워크플로우에 끼워넣기
보안 회사라 코드를 외부로 못 내보내고 토큰 비용도 부담인 제약에서, 사내에 상주하는 로컬 LLM을 설계·구현·리뷰·문서화에 단계별로 들인 과정. GitLab MR 리뷰봇에서 시작한 같은 골격을 경력 DB·이력서 자동화까지 그대로 옮겼다.
- 개인 OSS
말로 내린 명령을 안전하게 기기 제어로 바꾸는 중계 서버 — IntentCP
자연어를 서버가 직접 실행하면 위험하다. 해석은 폰의 온디바이스 AI·단축어에 맡기고, 서버는 정해진 형식(Control URL)으로 바뀐 것만, 그 형식에 정의된 동작만 실행하도록 가둔 1인 OSS의 설계.
- 운영·인프라
노션 6개 DB가 정적 114페이지로 — 빌드·배포·PDF를 무인화하기
이력서·포트폴리오를 여러 곳에 두면 동기화가 깨진다. 콘텐츠 원본을 노션 한 곳에 두고 매시간 sync→정적 생성→배포→인쇄 PDF가 자동으로 따라오게 만든 단일 파이프라인의 설계와 검증.