Glossary
여러 글에서 반복해서 만나더라도 첫 등장마다 다시 설명하는 중앙 용어 정의입니다.
- 값Value
자바스크립트 코드 조각을 실행하거나 계산했을 때 얻는 데이터다. 문자열, 숫자, 객체 등이 모두 값이며 변수 이름이나 메모리 주소와는 구분한다.
- 개발 서버Development server
개발 중 파일 변경을 감지하고 실행할 코드와 갱신 신호를 개발 실행환경에 제공하는 서버다.
- 객체Object
속성의 모음과 고유한 동일성을 가진 자바스크립트 값이다. 서로 독립적으로 만든 두 객체는 속성이 같아 보여도 같은 객체 값은 아니다.
- 객체 동일성Object identity
두 표현식이 속성 모양만 같은 것이 아니라 바로 그 하나의 객체 값으로 평가되는지를 구분하는 성질이다.
- 격리 빌드Hermetic build
선언한 입력만 관찰하고 그 입력이 같으면 언제나 같은 결과를 내도록 경계를 통제한 빌드다.
- 경쟁 상태Race condition
여러 작업의 상대적인 실행·완료 순서에 따라 결과가 달라지는 상태다.
- 계측 테스트Instrumented test
Android 기기나 에뮬레이터에 앱과 테스트 코드를 설치해 플랫폼 기능과의 실제 연결을 확인하는 테스트다.
- 관측성Observability
시스템이 밖으로 내보낸 신호를 이용해 내부 상태와 새로운 문제를 질문하고 이해할 수 있는 성질이다.
- 구조적 공유Structural sharing
불변 업데이트에서 바뀐 경로는 새 객체로 만들고, 바뀌지 않은 부분은 이전 객체와 같은 값을 재사용하는 방식이다.
- 기준 집단Control Group
후보 변경을 받지 않은 채 같은 시간에 관찰해 비교 기준을 제공하는 대상 집단이다.
- 깊은 복사Deep copy
중첩된 객체까지 새 객체로 만드는 복사 방식이다. 어떤 값이 새로 만들어지고 공유되거나 제외되는지는 사용하는 복제 알고리즘의 규칙에 따라 달라진다.
- 낙관적 업데이트Optimistic update
서버 성공을 기다리기 전에 성공할 것으로 예상한 값을 화면이나 캐시에 먼저 반영하는 방식이다.
- 내장 업데이트Embedded Update
앱 빌드 시 네이티브 바이너리에 함께 넣어 네트워크 없이 시작할 수 있는 코드·자산 묶음이다.
- 네이티브 디버그 심볼Native debug symbols
C·C++ 기계 코드 주소를 함수 이름과 선택적으로 원본 파일·줄에 연결하는 진단 정보다.
- 네이티브 모듈Native Module
저장소나 알림처럼 플랫폼 기능을 JavaScript 함수와 객체의 형태로 노출하는 네이티브 코드 경계다.
- 네이티브 바이너리Native Binary
스토어·내부 배포 등으로 설치되며 네이티브 코드와 설정을 담는 실행 파일 묶음이다.
- 누적 오프셋Cumulative offset
첫 항목부터 특정 항목 직전까지의 높이를 합한 값으로, 그 항목의 세로 시작 위치를 나타낸다.
- 단위 비용Unit cost
정의한 결과 한 단위를 만드는 데 사용한 비용이나 자원의 양이다.
- 단위 테스트Unit test
작은 로직 단위의 관찰 가능한 동작을 좁은 범위에서 확인하는 테스트다.
- 도구 계약Tool contract
호출자가 공통 도구를 안전하게 사용할 수 있도록 입력, 결과, 부수 효과, 실패와 호환성 규칙을 공개한 약속이다.
- 동적 importDynamic import
코드가 import() 표현식에 도달했을 때 모듈을 비동기로 불러오는 방식이다.
- 런타임 버전Runtime Version
설치 앱의 네이티브 실행 계약과 호환되는 업데이트 집합을 구분하는 값이다.
- 런타임 입력 검증Runtime input validation
프로그램이 실행 중 만난 외부 값이 기대한 필드, 구조와 값 규칙을 지키는지 확인하는 과정이다.
- 레이아웃Layout
계산된 스타일을 바탕으로 각 요소가 차지할 사각형의 크기와 페이지 안 위치를 결정하는 렌더링 단계다.
- 로그Log
특정 시각에 일어난 사건과 선택한 문맥을 남긴 기록이다.
- 로더Loader
Webpack이 모듈의 원본에 변환을 적용하도록 연결하는 확장 함수다.
- 로케이터Locator
브라우저 페이지에서 현재 조건에 맞는 요소를 다시 찾아 조작하고 검증하는 Playwright 객체다.
- 롤백Rollback
문제가 있는 변경의 신규 노출을 멈추고 검증한 실행 대상으로 복구하는 과정이다.
- 리소스 타이밍Resource Timing
브라우저가 문서의 개별 리소스에 대해 수집한 시간과 크기 정보를 읽는 웹 성능 인터페이스다.
- 릴리스Release
변경된 기능이나 버전을 의도한 사용자가 실제로 이용할 수 있게 만드는 일이다.
- 릴리스 매니페스트Release manifest
함께 검증하고 승격할 산출물의 역할, 위치와 콘텐츠 다이제스트를 기록한 목록이다.
- 메모화Memoization
같은 입력에 대한 계산 결과를 저장해 다시 계산하지 않고 재사용하는 최적화 방식이다.
- 메트릭Metric
실행 중 측정값을 시간과 문맥에 연결하고 집계해 규모·분포·추세를 보는 관측 데이터다.
- 멱등성Idempotency
같은 의도의 작업을 여러 번 요청해도 한 번 요청했을 때와 같은 의도된 효과가 남는 성질이다.
- 명령줄 인터페이스Command-line interface
터미널에서 명령 이름과 인자를 입력하고 표준 입출력과 종료 상태로 결과를 주고받는 사용자·프로그램 접점이다.
- 모듈Module
다른 모듈과 import·export 관계를 맺을 수 있는 코드 단위다.
- 모듈 그래프Module graph
모듈을 점으로, 모듈 사이의 의존 관계를 방향 있는 선으로 나타낸 구조다.
- 모듈 지정자Module specifier
import가 어떤 모듈을 요청하는지 나타내는 문자열이다.
- 모듈 해석Module resolution
모듈 지정자를 실제로 불러올 모듈의 위치와 연결하는 과정이다.
- 모의 브라우저 환경Simulated browser environment
실제 브라우저를 실행하지 않고 Node.js 같은 실행환경에서 브라우저 API 일부를 흉내 내는 테스트 환경이다.
- 바이너리 load addressBinary load address
실행 중 한 바이너리 이미지가 메모리에 놓이기 시작한 주소다.
- 바인딩Binding
코드의 이름을 자바스크립트 값과 연결하는 관계다. let과 const 선언은 이름을 위한 바인딩을 만든다.
- 배포Deployment
선택한 산출물과 설정을 특정 실행환경에 설치하거나 그 환경이 사용하게 바꾸는 일이다.
- 배포 단계 판정Rollout Gate
미리 정한 자료와 기준으로 노출을 확대·대기·중단할지 결정하는 경계다.
- 배포 확대 중단Rollout halt
새 변경을 추가 대상에게 더 전달하지 않도록 노출 확대를 멈추는 조치다.
- 백그라운드 작업background work
앱 화면이 보이지 않거나 현재 프로세스가 다시 시작된 뒤에도 운영체제가 허용한 시점과 조건에서 수행하도록 맡긴 작업이다.
- 번들Bundle
서로 의존하는 코드와 자산을 실행환경에 전달할 수 있도록 모아 만든 결과 파일이다.
- 변경Mutation
이미 존재하는 객체의 관찰 가능한 상태를 바꾸는 일이다. 변수 이름을 다른 값에 다시 연결하는 재대입과 구분한다.
- 변환Transformation
원본 코드를 대상 실행환경이나 다음 처리 단계가 이해하는 형태로 바꾸는 과정이다.
- 부수 효과Side effect
코드가 실행되면서 반환값 계산을 넘어 외부에서 관찰 가능한 상태나 동작을 바꾸는 일이다.
- 불변성Immutability
기존 값이나 객체를 바꾸지 않고 필요한 결과를 새 값으로 표현하는 성질 또는 업데이트 규칙이다.
- 뷰 모델View model
한 화면이 표시하고 판단하는 데 필요한 이름과 의미로 원본 데이터를 변환한 값이다.
- 뷰 플래트닝View Flattening
화면 결과에 필요 없는 레이아웃 전용 중간 뷰를 합쳐 실제 플랫폼 UI 트리의 깊이를 줄이는 최적화다.
- 뷰포트Viewport
이 글에서는 스크롤 컨테이너 안에서 사용자가 현재 볼 수 있는 직사각형 영역을 뜻한다.
- 브라우저 컨텍스트Browser context
한 브라우저 인스턴스 안에서 쿠키와 웹 저장소를 다른 테스트와 분리하는 독립 실행 공간이다.
- 비용 동인Cost driver
비용이나 자원 사용량을 늘리거나 줄이는 측정 가능한 원인이다.
- 비제어 입력Uncontrolled input
React가 초기값만 줄 수 있고 현재 표시값은 실제 입력 요소가 보관하는 입력이다.
- 빌드 산출물Build artifact
원본 코드를 실행·배포 가능한 결과로 만드는 빌드 과정이 만든 코드, 자산과 부가 정보다.
- 빌드 식별자Build Identifier
같은 앱 출시 버전 안에서도 특정 네이티브 빌드 반복을 구분하는 값이다.
- 빌드 출처 증명Build provenance
산출물을 어디서 어떤 입력과 과정으로 만들었는지 검증할 수 있게 기록한 정보다.
- 빌드 캐시Build cache
이전 빌드 작업의 입력을 나타내는 키와 그때 만든 결과를 저장해 같은 작업을 다시 실행하지 않게 하는 저장소와 규칙이다.
- 빌드 플러그인Build plugin
빌드 도구가 정한 처리 시점에 사용자 코드를 실행해 기본 동작을 확장하는 구성 요소다.
- 빌드 UUIDBuild UUID
Universally Unique Identifier(UUID)는 Apple 플랫폼의 한 실행 파일과 디버그 심볼을 같은 build 결과로 연결하는 식별값이다.
- 산출물 승격Artifact promotion
기존 릴리스 묶음을 다시 빌드하지 않고 다음 환경이나 단계로 진행시키는 일이다.
- 상태 복원State Restoration
새 앱 실행에서 저장된 최소 입력과 현재 외부 원본을 읽어 사용자가 계속할 수 있는 화면 상태를 다시 만드는 과정이다.
- 상호 운용 계층Interop Layer
이전 방식으로 작성된 React Native 라이브러리가 New Architecture 앱에서 동작하도록 중간에서 연결하는 호환 경계다.
- 샘플링Sampling
전체 사건을 모두 남기지 않고 정한 규칙에 따라 일부를 골라 관찰하는 방법이다.
- 생성 코드Generated code
컴파일러나 변환 도구가 원본을 입력으로 받아 만들어 낸 코드다.
- 서버 변경 작업Server mutation
대표적으로 서버 원본 데이터를 생성, 수정·삭제하거나 다른 서버 부수 효과를 실행하는 비동기 작업이다.
- 서버 상태Server state
서버가 원본을 소유하고 클라이언트는 결과가 나중에 도착할 수 있는 요청으로 특정 시점의 사본을 읽고 갱신하는 데이터다.
- 센서 측정값sensor reading
센서 API가 한 사건이나 시간 구간에 관해 전달한 숫자와 그 기준 정보다.
- 소스 맵Source map
변환된 코드의 줄·열을 작성한 원본 파일의 줄·열과 연결하는 데이터다.
- 소지자 토큰Bearer token
값을 가진 주체가 별도의 암호 키 소유 증명 없이 연결된 권한을 사용할 수 있는 token이다.
- 수정 전진Fix forward
과거 코드로 돌아가지 않고 현재 상태와 호환되는 새 수정본을 앞으로 배포하는 복구 전략이다.
- 스크롤 앵커링Scroll anchoring
보이는 영역 위쪽의 레이아웃이 바뀔 때 기준 요소의 화면상 위치가 갑자기 움직이지 않도록 브라우저가 스크롤 위치를 보정하는 동작이다.
- 스크롤 오프셋Scroll offset
스크롤 컨테이너의 시작점에서 현재 보이는 영역의 시작점까지 이동한 거리다.
- 스키마 검증Schema validation
허용할 필드, 중첩 구조와 값 규칙을 적은 스키마에 실제 입력이 맞는지 확인하는 방식이다.
- 스택 트레이스Stack trace
오류 지점에 도달하기까지 거쳐 온 함수 호출과 코드 위치를 순서대로 보여 주는 정보다.
- 스팬Span
트레이스 안에서 시작·끝 시각, 상태와 문맥을 가진 한 작업 단위다.
- 시계열Time Series
같은 측정 대상과 속성 조합의 값을 시간 순서로 이어 놓은 데이터 흐름이다.
- 시스템 성능 트레이스System performance trace
정한 측정 구간 동안 앱 실행 단위와 계산 흐름, 한 번의 화면 갱신과 운영체제 활동을 공통 시간축에 기록한 성능 자료다.
- 실행 계획Execution plan
현재 입력과 상태를 바탕으로 도구가 적용하려는 변경을 실제 반영 전에 표현한 결과다.
- 심볼리케이션Symbolication
축소된 이름이나 코드 위치를 사람이 읽을 수 있는 함수·파일·줄 정보로 바꾸는 과정이다.
- 안티브리킹Anti-Bricking
잘못된 업데이트가 시작 충돌을 반복해 앱이 수정본을 받을 기회까지 잃는 상태를 줄이는 안전장치다.
- 앱 버전App Version
사용자가 보는 앱 출시 버전을 나타내는 값이다.
- 앱 생명주기App Lifecycle
운영체제가 앱을 전경·비활성·배경 상태로 옮기고 실행 기회를 제한하거나 다시 활성화하는 흐름이다.
- 앱 프로세스App Process
운영체제가 한 앱의 코드와 메모리를 실행하도록 만든 실행 단위로, 종료되면 그 안의 JavaScript 변수와 React state도 사라진다.
- 앱 hangApp hang
운영체제가 실행하는 앱 단위의 UI 실행 흐름이 오래 일하거나 다른 작업을 기다리느라 막혀 사용자 입력을 제때 처리하지 못하는 상태다.
- 얕은 복사Shallow copy
바깥 객체나 배열은 새로 만들지만 그 안의 중첩된 객체 값은 기존 객체와 공유할 수 있는 복사다.
- 업데이트 매니페스트Update Manifest
한 업데이트의 식별자, 호환 조건, 진입 파일과 필요한 자산 정보를 기록한 목록이다.
- 업데이트 채택Update Adoption
대상 기기가 새 업데이트를 내려받는 데서 그치지 않고 실제 실행하기 시작한 상태다.
- 업데이트 활성화Update Activation
준비와 검증을 마친 업데이트를 다음 실행 대상으로 선택하는 전환이다.
- 엑셈플러Exemplar
집계된 메트릭에 연결해 남긴 구체적인 대표 측정 사례이며, 추적 문맥이 있으면 트레이스로 이어질 수 있다.
- 영속 상태 마이그레이션Persistent State Migration
앱 종료 뒤에도 남는 로컬 자료를 새 코드가 기대하는 구조로 바꾸는 과정이다.
- 영속 저장소Persistent Storage
현재 앱 프로세스의 메모리가 사라져도 같은 앱 설치의 다음 실행에서 다시 읽을 수 있도록 데이터를 보관하는 저장 경계다.
- 영향 반경Blast Radius
변경에 결함이 있을 때 영향을 받을 수 있는 사용자·요청·자료의 범위다.
- 오버스캔Overscan
현재 보이는 범위 바깥의 항목을 조금 더 렌더링해 빠른 스크롤 때 빈 공간이 드러날 가능성을 줄이는 여유 범위다.
- 요청 식별값request ID
여러 요청이 동시에 끝나기를 기다릴 때 응답을 원래 요청에 다시 연결하도록 요청과 응답이 함께 나르는 식별값이다.
- 원격 측정 데이터Telemetry
실행 중인 시스템과 그 동작이 밖으로 내보내는 로그·메트릭·트레이스 같은 관측 데이터다.
- 원본 소스Original source
컴파일러나 변환 도구를 거치기 전 작성자가 입력으로 제공한 소스 코드다.
- 원시 값Primitive value
객체가 아닌 자바스크립트 값이다. undefined, null, true·false, 문자열, 숫자가 익숙한 예이며 Symbol과 BigInt도 여기에 속한다.
- 원자적 업데이트Atomic Update
업데이트 도중에도 완전한 이전 버전 또는 완전한 새 버전만 실행되게 하는 성질이다.
- 웹 인증 세션web authentication session
여러 HTTP 요청을 같은 인증 문맥으로 연결하도록 서버가 유지하고 브라우저나 WebView가 session cookie로 참조하는 상태다.
- 웹 출처Web Origin
일반적인 HTTP·HTTPS 주소에서 통신 방식, 서버 이름과 접속 번호의 조합으로 구분하는 웹 보안 경계다.
- 웹뷰WebView
앱 화면 안에서 HTML·CSS·JavaScript로 만든 웹 문서를 표시하는 플랫폼 UI 요소다.
- 윈도잉Windowing
전체 목록 중 현재 보이는 영역과 그 주변에 필요한 일부 항목만 DOM(Document Object Model, 브라우저가 화면 요소를 노드의 트리로 표현한 구조)에 렌더링하는 기법이다.
- 유의적 버전Semantic Versioning
공개 API의 호환성 변화를 major.minor.patch 세 수로 전달하는 버전 규칙이다.
- 의존 관계Dependency
한 모듈이 동작하려면 다른 모듈이 제공하는 코드나 값이 필요하다는 방향 있는 관계다.
- 의존성 업그레이드Dependency upgrade
사용하는 패키지와 관련 실행환경의 목표 버전 조합으로 이동하고 동작을 다시 검증하는 변경이다.
- 인증 자격 정보credential
사용자나 앱이 누구인지 또는 어떤 권한을 가졌는지 증명하는 비밀번호, token, session 식별값 같은 민감한 값이다.
- 인증 정보 보안 저장소Secure credential storage
장기 인증 정보를 일반 설정·캐시와 분리하고 운영체제의 암호화와 접근 조건을 거쳐 저장·조회하는 경계다.
- 일치 비교Strict equality
=== 연산자가 사용하는 비교 관계다. 서로 다른 타입은 같지 않고 객체는 같은 객체 값일 때만 같다. 유효한 숫자가 아님을 나타내는 NaN과 양수·음수 부호를 가진 0에는 별도 숫자 규칙이 적용된다.
- 임계 경로Critical path
의존 작업 그래프에서 전체 완료 시각을 결정하는 가장 긴 연속 경로다.
- 잠금 파일Lockfile
패키지 관리자가 실제로 선택한 의존성 그래프의 정확한 버전과 해석 정보를 기록한 파일이다.
- 재현 가능한 빌드Reproducible build
같은 소스·환경·지침으로 독립적으로 다시 만들었을 때 지정한 산출물의 모든 바이트가 같은 빌드다.
- 전달 파이프라인Delivery pipeline
변경에서 사용자 공개까지의 단계를 명시적 입력, 출력과 통과 조건으로 연결한 흐름이다.
- 점진 배포Progressive Rollout
새 변경을 한 번에 모두에게 열지 않고 대상 범위를 단계적으로 넓히는 배포 방식이다.
- 제어 입력Controlled input
현재 표시할 값을 React가 전달하고 사용자 편집 때 그 값을 다시 갱신하는 입력이다.
- 조건부 내보내기Conditional exports
package.json의 exports에서 현재 조건에 따라 서로 다른 진입점을 고르는 규칙이다.
- 종료 상태Exit status
프로세스가 끝날 때 호출자에게 성공이나 실패 종류를 숫자로 전달하는 작은 결과 값이다.
- 지속적 배포Continuous deployment
정해진 검증을 통과한 각 변경을 가능한 빠르게 운영 환경에 자동 배포하는 방식이다.
- 지속적 전달Continuous delivery
검증된 변경을 언제든 요청에 따라 낮은 위험으로 목표 환경에 배포하고 정한 공개 경계까지 전달할 수 있는 능력이다.
- 지속적 통합Continuous integration
작은 변경을 공유 기준선에 자주 합치고 자동 검증으로 기준선을 작동 가능한 상태로 지키는 개발 관행이다.
- 직렬화Serialization
Metro가 변환된 모듈과 실행 정보를 최종 번들 형식으로 배열해 출력하는 단계다.
- 진입점Entry point
빌드 도구가 모듈과 의존 관계를 찾기 시작하도록 지정한 첫 모듈이다.
- 청크Chunk
빌드 도구가 함께 불러오도록 묶어 출력한 코드 단위다.
- 최근 성공 업데이트Last-Known-Good Update
해당 기기에서 이전에 정한 최소 시작 기준을 통과한 완전한 업데이트다.
- 카나리 배포Canary Release
새 변경을 제한된 운영 대상과 시간에 노출하고 평가해 전체 확대 여부를 결정하는 과정이다.
- 카디널리티Cardinality
관측 데이터에서 속성 값이나 속성 조합이 만드는 서로 다른 분류의 수다.
- 캐시 미적중Cache miss
조회한 저장소에서 계산한 키에 대응하는 결과를 찾지 못한 상태다.
- 캐시 오염Cache poisoning
키와 맞지 않거나 신뢰할 수 없는 결과가 저장돼 이후 사용자가 잘못된 결과를 복원하게 되는 상태다.
- 캐시 적중Cache hit
계산한 키에 대응하는 저장 결과를 찾아 작업을 다시 실행하지 않고 복원하는 상태다.
- 캐시 키Cache key
이번 작업이 이전 작업과 같은 결과를 낼 조건인지 확인하기 위해 작업 정의와 입력에서 계산한 식별값이다.
- 컴포넌트 계약Component contract
호출자가 전달할 수 있는 값과 행동, 컴포넌트가 보장하는 결과를 묶은 공개 약속이다.
- 컴포넌트 테스트Component test
UI 컴포넌트를 렌더링하고 사용자가 관찰하는 결과와 상호작용을 확인하는 테스트다.
- 코드 난독화Code obfuscation
실행 의미는 유지하면서 클래스·함수·필드 이름을 짧고 알아보기 어렵게 바꾸는 빌드 변환이다.
- 코드 분할Code splitting
애플리케이션 코드를 서로 다른 시점이나 경로에서 불러올 수 있는 여러 출력 조각으로 나누는 최적화다.
- 코드 서명Code Signing
공개하지 않는 서명용 비밀값으로 검증값을 만들고 클라이언트가 미리 신뢰한 공개 키 정보로 확인하는 절차다.
- 콘텐츠 다이제스트Content digest
파일의 바이트를 암호학적 해시 함수에 넣어 얻는 고정 길이 식별값이다.
- 크래시Crash
처리되지 않은 오류나 운영체제 중단 신호 등으로 운영체제가 실행하던 앱 단위가 예기치 않게 끝난 사건이다.
- 클라이언트 상태Client state
현재 브라우저나 앱이 기준을 소유하는 화면 상태와 아직 서버가 승인하지 않은 사용자 작업이다.
- 클로저Closure
함수와 그 함수가 선언될 때 접근할 수 있던 바깥 바인딩 환경의 묶음이다.
- 타입 단언Type assertion
개발자가 어떤 값의 타입을 컴파일러보다 더 구체적으로 안다고 TypeScript에 알리는 문법이다.
- 테스트 대역Test double
실제 의존성 자리에 넣어 테스트 조건과 결과를 통제하는 대체 구현이다.
- 테스트 피라미드Test pyramid
좁고 빠른 테스트를 많이, 실제 경계가 넓고 비싼 테스트를 적게 두는 전체 테스트 구성의 방향이다.
- 테스트 픽스처Test fixture
하나 이상의 테스트 수행에 필요한 준비, 실행환경과 관련 정리 작업의 묶음이다.
- 통합 테스트Integration test
둘 이상의 실제 앱 부분이나 한 외부 경계가 함께 올바르게 동작하는지 확인하는 테스트다.
- 트레이스Trace
한 요청이나 작업이 애플리케이션의 여러 구성 요소를 지나간 경로를 각 작업 구간의 관계로 기록한 것이다.
- 트리 셰이킹Tree shaking
정적 모듈 관계와 코드 사용 여부를 분석해 필요 없다고 안전하게 판단한 코드를 출력에서 제외하는 최적화다.
- 패키지 지정자Bare specifier
점이나 슬래시로 시작하지 않고 패키지 이름으로 시작하는 모듈 지정자다.
- 페인트Paint
텍스트, 색, 테두리, 그림자처럼 요소의 시각적 결과를 픽셀로 그릴 명령을 만드는 렌더링 단계다.
- 포커스Focus
문서에서 현재 키보드 입력을 받을 대상으로 지정된 영역 또는 요소를 가리키는 상태다.
- 프로파일Profile
실행 중 코드 호출 스택을 표본으로 모아 CPU·메모리 같은 자원을 어디서 사용했는지 보여 주는 기록이다.
- 플레이키 테스트Flaky test
코드와 선언한 설정이 같은데도 통과와 실패가 오락가락해 결과를 믿기 어려운 테스트다.
- 합성Composite
브라우저가 따로 그려 둔 화면 조각들을 올바른 순서와 위치로 조합해 최종 화면을 만드는 렌더링 단계다.
- 핫 모듈 교체Hot Module Replacement
애플리케이션 전체를 다시 불러오지 않고 실행 중 바뀐 모듈을 교체하는 개발 기능이다.
- 호스트 뷰Host View
Android나 iOS 같은 호스트 플랫폼이 화면에 표시하고 입력을 처리하는 실제 UI 요소다.
- 호환성 계약Compatibility Contract
한 산출물이 다른 실행환경에서 동작하려면 서로 만족해야 하는 기능·형식·설정 조건이다.
- 호환성 표Compatibility matrix
함께 동작해야 하는 구성요소의 현재·목표 버전과 지원 여부를 교차해 기록한 표다.
- 회귀 테스트Regression test
변경 전에 지원하던 중요한 동작이 변경 뒤에도 유지되는지 반복 확인하는 테스트다.
- Android KeystoreAndroid Keystore
Android 앱이 사용하는 암호화 키를 추출하기 어렵게 보관하고, 허용할 암호 연산과 사용자 인증 조건을 운영체제가 집행하는 시스템이다.
- ANRApplication Not Responding
Android가 앱이 정해진 시간 안에 사용자 입력이나 특정 플랫폼 작업에 응답하지 못했다고 판정한 사건이다.
- APIApplication Programming Interface
애플리케이션 프로그래밍 인터페이스의 약자로, 소프트웨어가 다른 소프트웨어의 기능을 정해진 규칙에 따라 요청하거나 사용할 수 있게 공개한 기능과 약속의 집합이다.
- API 응답 형태API response shape
서버가 특정 API 응답의 본문에 보내기로 약속한 필드 이름, 중첩 구조와 값 표현이다.
- Apple KeychainApple Keychain
iOS에서 비밀번호·token 같은 작은 비밀값을 암호화된 데이터베이스의 항목으로 저장하고 접근 조건을 붙이는 운영체제 서비스다.
- BridgeBridge
Legacy Architecture에서 JavaScript와 네이티브 호출 값을 전달 가능한 데이터 형식으로 바꿔 비동기 큐로 보내던 통신 경계다.
- CSSCascading Style Sheets
캐스케이딩 스타일 시트의 약자로, 웹 문서의 글꼴, 색, 간격, 크기, 배치처럼 화면에 표현되는 모양을 기술하는 언어다.
- dSYM 묶음dSYM bundle
Debug Symbol(dSYM)은 Apple 플랫폼 build의 기계 코드 주소를 함수·원본 파일·줄에 연결하는 정보 묶음이다.
- E2E 테스트End-to-end test
외부 사용자의 동작에서 시작해 여러 실제 시스템 부분을 거친 핵심 흐름의 결과를 확인하는 테스트다.
- Effect 정리 함수Effect cleanup function
Effect가 시작한 외부 동기화를 멈추도록 Effect에서 반환하는 함수다.
- Effect EventEffect Event
Effect가 시작하고 나중에 호출되는 함수에서 최신 Render 값을 읽되 그 값의 변화로 Effect를 다시 동기화하지 않게 분리한 React 함수다.
- Fabric 렌더러Fabric Renderer
React가 계산한 다음 화면 구조와 위치를 Android·iOS의 실제 화면 요소에 반영하는 React Native 렌더러다.
- gcTimegcTime
TanStack Query가 해당 Query 결과를 실제로 구독하는 곳이 하나도 없어진 뒤 사본을 메모리에 남겨 둘 시간을 정하는 옵션이다.
- HTTP 쿠키HTTP cookie
서버가 브라우저나 WebView에 저장하게 하고, 정한 서버 주소와 URL 경로에 맞는 후속 HTTP 요청에 다시 보내게 하는 이름과 값이다.
- IntersectionObserverIntersection Observer
대상 요소가 root(교차를 판단하는 기준 영역)의 보이는 범위와 겹치는 상태를 브라우저가 모아 나중에 알림으로 전달하는 API다.
- JavaScript 런타임JavaScript Runtime
JavaScript 코드를 해석하고 실행하며 언어 기능과 실행 상태를 제공하는 환경이다.
- JavaScript 스레드JavaScript Thread
React Native 앱에서 대부분의 JavaScript 작업과 React 계산을 처리하는 실행 흐름이다.
- JavaScript InterfaceJavaScript Interface
JavaScript 엔진을 C++ 애플리케이션에 넣고 양쪽의 객체와 함수를 연결하는 가벼운 인터페이스다.
- JavaScript RealmJavaScript Realm
서로 구분되는 전역 객체와 기본 내장 객체를 갖고 JavaScript가 실행되는 영역이다.
- Legacy ArchitectureLegacy Architecture
값을 전달 가능한 형식으로 바꿔 비동기 큐로 보내는 통신 경계와 이전 렌더러·모듈을 사용하던 과거 실행 구조다.
- OTA 업데이트Over-the-Air Update
앱 전체를 다시 설치하지 않고 호환되는 코드와 자산을 네트워크로 전달하는 방식이다.
- R8 매핑 파일R8 mapping file
Android build 도구 R8이 바꾼 클래스·함수 이름과 줄을 원래 정의에 연결하는 build별 대응표다.
- React 상태React state
React가 컴포넌트의 렌더링 사이에 보존하며, 상태 설정 함수로 다음 렌더링을 요청할 수 있게 하는 데이터다.
- React 서버 컴포넌트React Server Component
클라이언트 앱과 분리된 서버 환경에서 미리 실행되고, 컴포넌트 코드 대신 렌더 결과를 클라이언트에 전달하는 React 컴포넌트다.
- React 전송 가능 값React-serializable value
서버·클라이언트 경계를 지날 때 React가 전송 형식으로 표현하고 반대쪽에서 다시 구성할 수 있는 값이다.
- React 컨텍스트React context
상위 컴포넌트가 트리 아래의 여러 컴포넌트에 값을 제공하고, 하위 컴포넌트가 중간 전달 없이 읽게 하는 React 입력 경로다.
- React 컴포넌트 생명주기React Component Lifecycle
컴포넌트가 화면 트리에 추가되고 갱신되다가 제거되는 동안 React가 Render와 Effect를 실행·정리하는 흐름이다.
- React 클라이언트 경계React Client boundary
use client 파일을 브라우저 실행 코드의 진입점으로 삼고, 그 파일이 가져오는 모듈까지 클라이언트 쪽으로 분류하는 경계다.
- React 클라이언트 컴포넌트React Client Component
use client 파일과 그 파일이 브라우저 실행 대상으로 가져온 파일에 정의되어 상태, 사건 처리와 브라우저 API를 사용할 수 있는 React 컴포넌트다.
- React 호스트 컴포넌트React Host Component
React 렌더러가 실제 대상 환경의 UI 요소로 처리하도록 제공하는 기본 컴포넌트다.
- React CommitReact commit
React가 Render 결과를 확정하는 단계로, React DOM에서는 필요한 DOM 변경을 반영하고 React Native New Architecture에서는 실제 화면 반영 전의 Commit을 뜻한다.
- React EffectReact Effect
렌더링으로 화면이 반영된 뒤 컴포넌트를 React 밖의 시스템과 동기화하는 코드다.
- React memoReact memo
부모가 다시 Render될 때 props가 이전과 같으면 컴포넌트 Render를 건너뛸 수 있게 하는 React 최적화다.
- React Native AppStateReact Native AppState
앱이 사용자가 조작하는 active(전경) 상태인지 화면 뒤의 background(배경) 상태인지 읽고 변화를 구독하는 React Native API다.
- React Native CodegenReact Native Codegen
JavaScript에 적은 함수·값의 타입을 읽어 Android·iOS 구현이 따라야 할 함수 모양을 자동 생성하는 React Native 빌드 도구다.
- React Native New ArchitectureReact Native New Architecture
React Native의 렌더러, 네이티브 모듈 연결, 작업 순서와 JavaScript·네이티브 상호작용 기반을 다시 설계한 현재 실행 체계다.
- React propsReact props
부모 컴포넌트가 자식 컴포넌트를 렌더링할 때 전달하는 읽기 전용 입력이다.
- React refReact ref
화면 출력과 별개로 값을 보관하거나 현재 렌더된 대상의 직접 실행 함수에 접근하는 React의 참조다.
- React RenderReact render
React가 컴포넌트를 호출해 현재 입력으로 다음 UI 모양을 계산하는 단계다.
- React Shadow TreeReact Shadow Tree
React Native가 호스트 컴포넌트의 속성, 자식 관계와 레이아웃 정보를 표현하는 내부 트리다.
- ResizeObserverResize Observer
요소의 내용 영역 또는 내용·안쪽 여백·테두리를 합친 바깥 영역의 크기 변화를 브라우저가 모아 나중에 알림으로 전달하는 API다.
- SameValueSameValue
Object.is가 사용하는 명세상의 동일성 비교다. 일치 비교와 달리 유효한 숫자가 아님을 나타내는 NaN을 자기 자신과 같다고 보고, 양수·음수 부호를 가진 0을 서로 다르게 본다.
- SDK 생명주기SDK lifecycle
외부 소프트웨어 개발 도구 묶음(SDK)의 한 작업이 요청·준비·실행·실패·종료로 이동하는 단계와 사건 계약이다.
- selector 함수Selector function
원본 상태나 서버 데이터에서 소비자가 필요한 일부 값 또는 파생된 값을 반환하는 함수다.
- staleTimestaleTime
TanStack Query가 받은 사본을 다시 확인할 수 있는 오래된 데이터로 분류할 시점을 정하는 옵션이다.
- TanStack Query의 QueryQuery
고유한 키와 비동기 읽기 함수를 묶어 서버 사본과 요청 상태를 구독하는 TanStack Query의 단위다.
- TurboModuleTurboModule
타입 명세와 생성된 연결 코드, Android·iOS 구현을 묶어 플랫폼 기능을 JavaScript API로 제공하는 React Native 네이티브 모듈 체계다.
- UI 스레드UI Thread
Android·iOS 호스트 뷰를 직접 변경하고 플랫폼 사용자 인터페이스 작업을 처리하는 실행 흐름이다.
- WAI-ARIAWeb Accessibility Initiative — Accessible Rich Internet Applications
웹 접근성 이니셔티브의 접근 가능한 리치 인터넷 애플리케이션의 약자로, 웹 요소의 역할, 상태, 관계를 보조 기술에 전달하도록 W3C가 정의한 기술 명세 모음이다.
- WebView 메시지WebView message
WebView 페이지와 React Native가 서로 다른 실행 영역 사이에서 명시적인 API로 전달하는 문자열이다.
- Yoga 레이아웃 엔진Yoga Layout Engine
React Native 화면 요소의 스타일과 사용할 수 있는 공간으로 위치와 크기를 계산하는 레이아웃 엔진이다.