Dev Terms
URL로 지정된 리소스를 가져와서 사용자에게 표현하는 프로그램. 크롬, 엣지, 파이어폭스, 사파리 등이 해당한다. 내부적으로는 렌더링 엔진(Blink, WebKit, Gecko)과 JavaScript 엔진(V8, JavaScriptCore, SpiderMonkey)으로 구성된다. 이름은 "웹 전용"처럼 들리지만 실제로는 HTTP, file, FTP 등 다양한 스킴으로 식별된 리소스를 다룰 수 있는 범용 리소스 뷰어에 가깝다.
Anthropic이 개발한 터미널 기반 에이전트 코딩 도구로, Claude 모델을 CLI에서 직접 호출해 코드 작성·수정·디버깅·리팩터링을 수행합니다. 단순 채팅이 아니라 파일 시스템 접근과 Bash 실행 권한을 가지고 실제 작업을 수행하는 에이전트이며, npm으로 설치해 `claude` 명령으로 사용합니다. Pro/Max 구독 또는 API 키로 인증합니다.
물리 메모리(RAM)가 부족할 때 디스크 공간을 임시 메모리처럼 사용하는 기술입니다. 실제 RAM보다 느리지만 메모리 부족으로 인한 프로세스 강제 종료(OOM Killer)를 막아줍니다. Swap은 파티션 형태와 파일 형태 두 가지로 구현할 수 있는데, 파일 형태는 유연하게 크기를 조정할 수 있어 최근 리눅스 배포판에서 많이 쓰입니다. 라즈베리파이처럼 메모리가 제한된 환경에서 특히 유용합니다.
RAM이 부족할 때 디스크의 일부 공간을 메모리처럼 사용하는 기술이다. 물리 메모리가 가득 차면 덜 쓰이는 페이지를 Swap 영역으로 내려놓고 RAM을 확보한다. OOM Killer가 프로세스를 죽이기 전의 완충장치 역할을 하지만, 디스크 I/O가 발생하므로 RAM보다 훨씬 느리다. Swap이 과도하게 사용되면 thrashing이 발생하면서 시스템이 느려지기 때문에 "필요할 때만 최소한으로 쓰이는 것"이 이상적이다.
JVM이 로드된 클래스의 메타데이터(클래스 구조, 메서드 정보, 상수 풀 등)를 저장하는 네이티브 메모리 영역이다. Java 8부터 PermGen을 대체했으며 힙 바깥에 위치하므로 `-Xmx`에 포함되지 않는다. 기본적으로 상한이 없어 무한정 커질 수 있고, 이 때문에 `-XX:MaxMetaspaceSize`를 명시적으로 설정하지 않으면 OS 메모리를 모두 소진할 위험이 있다.
`/etc/sudoers` 파일 또는 `/etc/sudoers.d/` 디렉터리 안의 설정 파일을 가리키는 용어로, sudo 명령의 권한 규칙을 정의한다. 어떤 사용자가 어떤 호스트에서 어떤 명령을 어떤 사용자 권한으로 실행할 수 있는지를 기술하며, 직접 편집할 때는 문법 오류로 시스템 접근이 잠기는 것을 막기 위해 반드시 `visudo` 명령을 사용해야 한다.
Substitute User Do의 약자로, 다른 사용자(주로 root)의 권한으로 명령을 실행할 수 있게 해주는 유닉스 계열 시스템의 핵심 명령입니다. 권한 상승 시 사용자의 비밀번호를 확인하고, 실행된 모든 명령은 로그에 기록되어 감사 추적이 가능합니다. 관리자 권한이 필요한 작업을 root 계정으로 직접 로그인하지 않고도 수행할 수 있게 해줍니다.
Spring Boot가 제공하는 자동 구성 클래스로, Spring Security가 클래스패스에 있고 사용자 정의 인증 빈이 없을 때 `InMemoryUserDetailsManager`와 랜덤 비밀번호를 가진 기본 계정(user)을 생성한다. 개발 초기 빠른 테스트를 위한 편의 기능이지만 prod 환경에서는 혼란을 일으킬 수 있어 JWT처럼 다른 인증 방식을 쓸 때는 명시적으로 비활성화하는 것이 바람직하다.
특정 주체의 자격·속성·권한을 Issuer 가 디지털 서명하여 발급한 자격 증명. 자격증, 신분증, 졸업장, 면허증 등 실세계의 다양한 인증 정보를 디지털 형태로 표현할 수 있다. 서명이 포함되어 있어 제3자가 Issuer 공개키로 위변조 여부를 검증할 수 있고, 사용자는 이 VC 를 Wallet 에 보관했다가 필요할 때 Verifier 에게 제시한다.
중앙 기관에 의존하지 않고 사용자가 자신의 식별자를 직접 소유하고 통제하는 분산 신원 체계. `did:<method>:<identifier>` 형식의 URI 로 표현된다. 기존 중앙집중식 ID 체계와 달리 특정 플랫폼에 종속되지 않고 사용자가 여러 서비스에서 동일한 신원을 재사용할 수 있다. W3C 표준으로 명세되어 있으며 블록체인 등 분산 원장과 함께 사용되는 경우가 많다.
안드로이드 인앱결제를 구현하는 공식 라이브러리입니다. 예전에는 앱이 Play 스토어 앱과 AIDL(Android Interface Definition Language)로 직접 통신하는 v2·v3 방식을 썼으나, 보안과 기능 확장을 위해 현재는 Billing Library 5.x·6.x(비-AIDL) 사용이 의무화됐습니다. Play Console은 AIDL 기반 코드가 포함된 앱에 경고를 띄우며 장기적으로 출시를 제한할 수 있습니다.
Android 빌드 파이프라인의 코드 축소·난독화·최적화 단계입니다. 사용하지 않는 클래스·메서드·리소스를 제거하고 식별자를 짧은 이름으로 바꿔 APK 크기를 줄이며 역공학 난이도를 높입니다. 참조만 있고 실제 클래스가 없는 경우 "Missing class" 에러를 내어 빌드가 중단되므로, 선택적 의존성을 가진 라이브러리와 자주 충돌합니다.
Android에서 앱을 고유하게 식별하는 문자열로, 일반적으로 `com.회사명.앱명` 형태의 역도메인 표기법을 사용한다. Google Play Store에 등록된 후에는 변경이 불가능하므로 배포 전에 반드시 확정해야 한다. `android/app/build.gradle`의 `applicationId` 항목으로 지정된다.
Flutter SDK의 버전을 프로젝트 단위로 관리하는 CLI 도구. 글로벌 버전과 로컬 버전을 분리해 관리하며, 여러 프로젝트가 서로 다른 Flutter 버전을 사용하는 환경에서 충돌 없이 안정적인 빌드를 가능하게 한다. `fvm global`로 기본 버전을 지정하고, `fvm use`로 프로젝트별 버전을 고정할 수 있다.
개발자가 직접 코드를 작성하는 대신 AI 에이전트에게 고수준 작업을 위임하고, 에이전트가 계획·실행·검증까지 자율적으로 처리하는 개발 패러다임. 기존 AI 어시스턴트가 코드를 제안하는 수동적 역할이었다면, 에이전트 퍼스트는 AI가 능동적으로 개발 흐름 전체를 주도한다는 점에서 패러다임 전환으로 평가받는다.
Flutter의 버전을 프로젝트 단위로 관리할 수 있게 해주는 CLI 도구입니다. Node.js의 nvm, Ruby의 rbenv와 유사한 개념으로, 하나의 시스템에서 여러 Flutter 버전을 설치하고 프로젝트마다 다른 버전을 지정할 수 있습니다. `.fvm/fvm_config.json` 파일에 버전 정보를 기록해 팀원 간 버전을 통일하는 데도 활용됩니다.
HTTP 프로토콜을 기반으로 클라이언트와 서버가 자원을 주고받는 방식이다. URI로 자원을 표현하고 GET, POST, PUT, DELETE 등의 HTTP 메서드로 행위를 정의한다. 상태를 서버에 저장하지 않는 무상태(Stateless) 구조를 원칙으로 하며, JSON 포맷이 사실상 표준으로 사용된다.
다수의 컨테이너나 서비스를 자동으로 배포, 관리, 스케일링하는 것을 말합니다. 수십~수백 개의 컨테이너가 서로 통신하며 동작하는 환경에서 어떤 컨테이너를 몇 개 띄울지, 장애 시 어떻게 복구할지 등을 자동으로 처리합니다. Kubernetes가 대표적인 오케스트레이션 도구입니다.
크롬에서 제공하는 프라이빗 브라우징 기능으로, 활성화된 동안 방문 기록, 쿠키, 사이트 데이터, 양식 입력값이 로컬에 저장되지 않으며 창을 닫으면 모두 삭제된다. 단, 현재 프로필의 북마크와 확장 프로그램 환경에는 영향을 받을 수 있으며, 네트워크 수준의 추적(ISP, 회사 방화벽, 구글 계정 로그인 상태)은 여전히 적용된다.
연간 반복 수익. SaaS처럼 구독 기반 비즈니스에서 1년 동안 안정적으로 반복 발생하는 수익을 나타내는 지표다. 일회성 매출은 제외하고 구독료처럼 매달 또는 매년 들어오는 수익만 합산하기 때문에, 비즈니스의 안정성과 성장 속도를 가늠하는 데 자주 쓰인다.