Facebook의 수천만 줄 PHP 코드에 타입 검사를 도입하면서, 코드를 조금 고칠 때마다 전체를 다시 검사하지 않는 방식이 필요해짐 Hack에서 변경된 부분과 영향을 받는 코드만 다시 검사했지만, 의존성과 캐시를 직접 관리하는 구현은 복잡하고 오류가 나기 쉬웠음 Skip은 변경된 입력에 영향을 받는 계산만 다시 실행하며, 개발자가 계산을 작성하면 의존성 추적과 결과 재사용을 프레임워크가 처리함 TypeScript에서도 데이터 처리 파이프라인을 작성할 수 있어, 데이터가 바뀔 때 관련 결과만 갱신하는 서비스를 기존 시스템에 연결할 수 있음 이 방식을 Skipper 코딩 에이전트의 타입 검사와 테스트에도 적용하며, 코드 변경부터 실행 결과 확인까지 증분 처리하는 개발 흐름을 구축하고 있음 Facebook의 보안 분석에서 시작된 Hack Julien Verlaguet는 2011년 Facebook에 합류해 PHP 코드의 보안 취약점을 찾는 정적 분석 도구를 개발하기 시작함 적절히 처리하지 않은 문자열이 SQL 쿼리, 셸 실행, 웹페이지 출력으로 흘러가 취약점을 만드는지 추적하는 작업이었음 코드 구조가 복잡해질수록 타입 정보 없이 데이터의 흐름을 분석하기 어려워짐 처음에는 보안과 암호화처럼 정확성이 중요한 코드에 엄격한 검사를 적용하려 했음 그러나 검사한 코드가 검사하지 않은 함수에 의존하면, 선언된 타입도 신뢰하기 어려웠음 일부 코드만 엄격하게 만드는 시도는 결국 전체 코드베이스에서 작동하는 Hack으로 확대됨 당시 Facebook 코드의 70% 이상이 PHP였으며, 개발자는 코드를 수정하고 브라우저를 새로고침하며 결과를 확인했음 분석 도구가 느리면 개발자가 꺼버리므로, 타입 검사도 기존의 빠른 피드백 흐름을 유지해야 했음 수천만 줄을 매번 검사할 수는 없음 PHP의 자동 로딩은 필요한 코드를 이름으로 찾아 불러오므로, 개발자가 의존성을 명시하지 않고도 작업할 수 있었음 그 결과 의존 관계가 복잡하게 얽혀, 단 10줄의 코드가 수백만 줄의 의존성을 끌어올 수도 있었음 수천만 줄을 다른 언어로 다시 작성하거나 먼저 작은 라이브러리로 분리하기는 어려웠음 해결책은 전체 코드베이스의 상태를 유지하면서 변경된 부분과 영향을 받는 코드만 다시 검사하는 증분 언어 서버였음 처음에는 코드를 파싱하고 타입 정보를 구축하며 전체를 검사함 이후 파일이 바뀌면 기존 결과를 재사용하고 필요한 계산만 다시 수행함 타입을 조회할 때 의존 관...
Hack에서 Skip까지: 모든 것을 증분 처리하기
23 hours ago
3
Related
질량으로 따지면 지구에서 가장 우세한 종은 무엇일까?
19 minutes ago
0
Paramount Skydance, Warner Bros. Discovery와 약 167조원 규모 합병 완료...
22 minutes ago
0
OpenAI, AI가 도출한 수학 연구 원고 722편과 증명 자료 공개
25 minutes ago
0
Show GN: 안심품 - KC인증 제품만 검색
1 hour ago
3
밀리초 단위로 벤치마크하기
1 hour ago
3
EmbeddingGemma 2 - 개방형 경량 멀티모달 임베딩 모델
1 hour ago
3
Tapo Rust/Python 라이브러리, TP-Link의 TPAP 프로토콜 지원 추가
2 hours ago
3
나는 인류를 멸종시키고 있는 AGI다
3 hours ago
3
Tips
click
Popular
프로들도 줄지어 샷 점검… KLPGA 스타 사랑방 된 더헤븐CC 연습장
2 weeks ago
73
iOS 27, iPadOS 27, macOS 27
3 weeks ago
69
손흥민 선제골 발판·골대 불운…LAFC, 7경기 만에 승리
3 weeks ago
65
영림원소프트랩, 나람 통합 ERP 구축…사료 제조·물류·회계 데이터 하나로
2 weeks ago
62
'이 악문' 김영범, 자유형 50m '대회 신기록' 금메달
2 weeks ago
55
© Clint IT 2026. All rights are reserved









English (US) ·