백엔드 개발 용어집

한국어로 설명한 백엔드 용어 101개 – 네 가지 언어의 실행 가능한 코드, 아키텍처 다이어그램, 비교표와 함께. 모든 용어가 번역되었습니다. 영어 전체 용어집에는 101개 용어가 있습니다.

클라우드 아키텍처와 호스팅 모델

관리형 오브젝트 스토리지와 에셋 전송 파이프라인 관리형 오브젝트 스토리지는 SDK로 업로드한 파일을 저장하고, 접근 제어가 적용된 CDN 기반 URL로 제공하는 BaaS 서비스입니다. 디커플드 아키텍처 (헤드리스 백엔드) 디커플드 아키텍처는 프론트엔드와 백엔드를 별도의 시스템으로 나누고 둘이 API를 통해서만 통신하게 하는 설계입니다. 마이크로서비스 vs. 모놀리스 아키텍처 모놀리스는 하나의 단위로 배포되는 단일 애플리케이션이고, 마이크로서비스는 이를 API로 통신하며 독립적으로 배포되는 작은 서비스들로 분할한 구조입니다. 멀티테넌트 클라우드 호스팅 멀티테넌트 클라우드 호스팅은 하나의 서버군과 소프트웨어로 여러 고객에게 서비스를 제공하면서 테넌트 사이를 논리적으로 격리하는 모델입니다. 모던 애플리케이션 백엔드 확장 모던 애플리케이션 백엔드 확장은 트래픽이 늘어도 속도를 유지하도록 컴퓨팅, 데이터베이스, 전송 계층의 용량을 늘리는 과정입니다. 백엔드 보일러플레이트 코드 백엔드 보일러플레이트 코드는 인증, CRUD, 설정처럼 프로젝트마다 같은 방식으로 반복해서 작성되는 서버 측 연결 코드의 덩어리입니다. 서버리스 아키텍처 서버리스 아키텍처는 클라우드 제공업체가 요청이 있을 때 코드를 실행해 주므로 서버를 직접 프로비저닝하거나 관리할 필요가 없는 클라우드 실행 모델입니다. 오픈소스 BaaS vs. 독점 관리형 BaaS 오픈소스 BaaS는 핵심 엔진을 셀프 호스팅할 수 있는 백엔드 플랫폼이고, 독점 BaaS는 벤더가 통제하는 인프라에서만 동작하는 플랫폼입니다. 컨테이너화 컨테이너화는 앱을 모든 의존성과 함께 격리된 단위로 패키징해 어떤 호스트에서도 동일하게 실행되도록 하는 방식입니다. 클라우드 벤더 종속 클라우드 벤더 종속은 한 제공업체에 대한 의존이 너무 깊어져 이전에 드는 비용, 시간, 리스크가 머무는 쪽보다 커진 상태입니다. BaaS vs. 서버리스 서버리스는 제공업체가 코드를 주문형으로 실행하는 실행 모델이고, BaaS는 백엔드를 미리 구축된 형태로 제공하는 서버리스 모델입니다. BaaS vs. 자체 백엔드 BaaS vs. 자체 백엔드는 SDK 뒤에 준비된 백엔드를 도입할지, 직접 설계하고 운영할지를 가르는 구축 대 구매의 결정입니다. BaaS의 스테이징 vs. 프로덕션 환경 격리 스테이징-프로덕션 격리는 환경마다 앱, 데이터베이스, 키를 따로 운영해 테스트가 라이브 데이터에 절대 닿지 않게 하는 관행입니다. CDN (콘텐츠 전송 네트워크) CDN은 분산된 서버들이 사용자 가까이에 콘텐츠를 캐시하여 페이지와 파일이 어디서나 빠르게 로드되게 하는 네트워크입니다. CI/CD (지속적 통합과 지속적 전달) CI/CD는 코드의 빌드, 테스트, 릴리스를 자동화하여 모든 변경이 커밋에서 프로덕션까지 작은 단계로 이동하게 하는 관행입니다. IaaS vs. PaaS vs. CaaS vs. FaaS vs. BaaS vs. mBaaS vs. SaaS 클라우드 서비스 모델은 제공업체가 얼마나 많은 부분을 대신 운영하느냐에 따라 IaaS, CaaS, PaaS, FaaS, BaaS, mBaaS, SaaS 순으로 늘어선 사다리입니다. Infrastructure as a Service (IaaS) IaaS는 가상 머신, 스토리지, 네트워킹 같은 기본 컴퓨팅 리소스를 주문형으로 빌려 쓰고 사용한 만큼 과금하는 클라우드 모델입니다. Kubernetes Kubernetes는 컨테이너화된 애플리케이션의 배포, 확장, 운영을 여러 머신에 걸쳐 자동화하는 오픈소스 플랫폼입니다. mBaaS vs. BaaS mBaaS는 모바일 우선 형태의 Backend as a Service이고, BaaS는 모바일, 웹, 서버 클라이언트를 똑같이 지원하는 더 넓은 모델입니다. No-Ops (Zero-Ops) 개발 No-Ops는 플랫폼이 인프라 작업을 충분히 자동화해 개발자가 운영 팀 없이 코드를 출시할 수 있는 운영 모델입니다. PaaS vs. BaaS PaaS는 제공업체가 코드를 배포할 플랫폼을 운영하되, 애플리케이션 자체는 여전히 사용자가 작성하고 관리하는 클라우드 모델입니다.

데이터베이스와 확장성

공유 클라우드 데이터베이스의 테넌트 격리 테넌트 격리는 공유 시스템 안에 벽을 세우는 규율로, 모든 테넌트를 다른 모든 테넌트로부터 봉인하는 통제의 집합입니다. 관리형 데이터베이스의 서버리스 커넥션 풀링 서버리스 커넥션 풀링은 소수의 실제 데이터베이스 연결을 수명이 짧은 다수의 함수 인스턴스가 공유하게 하는 기법입니다. 다중 리전 데이터베이스 복제와 지연 시간 최적화 다중 리전 복제는 읽기 지연 시간을 줄이고 장애를 견디기 위해 여러 지리적 리전에 데이터를 복사하는 데이터베이스 토폴로지입니다. 데이터 계층 보안 vs. 애플리케이션 계층 보안 애플리케이션 계층 보안은 코드 안의 방어선이고 데이터 계층 보안은 데이터 자체에 걸린 방어선으로, 실제 시스템에는 둘 다 필수입니다. 데이터 모델링 (Pointer와 Relation) 데이터 모델링은 데이터베이스가 데이터를 어떻게 저장할지 정하기 전에 엔터티, 속성, 관계를 정리하는 과정입니다. 데이터베이스 스키마 데이터베이스 스키마는 클래스, 열, 타입, 관계처럼 데이터가 구성되는 방식을 정의하되 데이터 자체는 담지 않는 설계도입니다. 데이터베이스 인덱스 데이터베이스 인덱스는 테이블 전체를 스캔하는 대신 엔진이 일치하는 행을 바로 찾아가게 해 주는 정렬된 조회 구조입니다. 데이터베이스 추상화 계층 (DBAL) 데이터베이스 추상화 계층은 코드와 데이터베이스 사이에서 그 아래에 있는 엔진, 방언, 드라이버를 감추는 API입니다. 데이터베이스 쿼리와 쿼리 언어 데이터베이스 쿼리는 필터, 정렬, 프로젝션, 페이지네이션을 엔진이 계획하고 실행할 수 있는 언어로 기술한 구조화된 데이터 요청입니다. 멀티테넌트 데이터베이스 아키텍처 멀티테넌트 데이터베이스 아키텍처는 여러 고객을 하나의 데이터 계층에 저장하고 행, 스키마, 별도 데이터베이스 단위로 격리하는 설계 방식입니다. 문서 데이터베이스의 관계형 쿼리 (조인) 문서 데이터베이스의 관계형 쿼리는 외래 키 대신 참조와 룩업으로 수행하거나, 임베딩으로 아예 피하는 조인입니다. 시각적 데이터베이스 관리 (스프레드시트형 인터페이스) 시각적 데이터베이스 관리는 원시 쿼리 대신 그리드, 폼, 필터 같은 그래픽 인터페이스로 데이터를 다루는 방식입니다. 자동 생성 데이터베이스 API (GraphQL과 REST) 자동 생성 데이터베이스 API는 도구가 스키마를 읽어 그에 맞는 REST 또는 GraphQL 엔드포인트를 노출하는 인터페이스입니다. 클래스 수준 권한 (CLP)과 스키마 보안 클래스 수준 권한(CLP)은 어떤 사용자나 역할이 해당 클래스에서 각 작업을 애초에 실행할 수 있는지를 통제하는, 클래스 스키마 단위의 규칙입니다. 행 수준 보안 (RLS) 행 수준 보안(RLS)은 모든 쿼리에 적용되는 정책으로 각 사용자가 보거나 변경할 수 있는 행을 걸러 내는 데이터베이스 메커니즘입니다. ACID 트랜잭션 ACID 트랜잭션은 원자성, 일관성, 격리성, 지속성을 갖추고 하나의 단위로 커밋되는 데이터베이스 작업의 묶음입니다. BaaS 데이터 모델링의 Pointer vs. Relation 필드 Pointer 필드는 단일 객체를 가리키는 타입 지정 참조이고, Relation 필드는 여러 객체를 다대다로 잇는 관리형 조인입니다. BaaS의 지리공간 쿼리와 위치 기반 인덱싱 지리공간 쿼리는 한 지점의 근처, 반경 안, 특정 영역 내부처럼 위치를 기준으로 레코드를 필터링하고 정렬하는 데이터베이스 조회입니다. BaaS의 특정 시점 복구(PITR)와 백업 특정 시점 복구는 베이스 백업 위에 변경 로그를 재생해 데이터베이스를 원하는 임의의 초 시점으로 재구성하는 복원 방식입니다. CRUD (생성, 읽기, 갱신, 삭제) CRUD는 생성, 읽기, 갱신, 삭제의 약자로, 모든 영속 데이터 저장소가 지원해야 하는 네 가지 기본 연산입니다. NoSQL vs. SQL 데이터베이스 SQL 데이터베이스는 고정된 테이블과 조인을 가진 관계형 저장소이고, NoSQL은 수평 확장을 위해 만들어진 유연한 모델들을 아우르는 범주입니다.

API와 실시간

관리형 백엔드의 GraphQL 구독 vs. 웹소켓 GraphQL 구독은 스키마로 정의된 타입 있는 이벤트 스트림이고, 웹소켓은 그 구독이 보통 실려 가는 원시 전송 계층입니다. 교차 출처 리소스 공유 (CORS) CORS는 서버가 자신을 호출할 수 있는 다른 출처를 선언하게 해 동일 출처 정책을 의도적으로 완화하는 브라우저 메커니즘입니다. 모바일 백엔드의 오프라인 우선 데이터 동기화 오프라인 우선 동기화는 앱이 로컬 저장소에서 먼저 읽고 쓴 뒤, 온라인이 되면 서버와 차이를 조정하는 아키텍처입니다. 백엔드 SDK 백엔드 SDK는 앱이 원시 HTTP 없이 자신의 언어로 백엔드 서비스와 통신하게 해 주는 라이브러리와 헬퍼의 도구 모음입니다. 실시간 라이브 쿼리 라이브 쿼리는 일치하는 행의 생성, 수정, 삭제 이벤트를 서버가 발생 즉시 푸시해 주는 데이터베이스 쿼리 구독입니다. 실시간 푸시 알림 vs. 라이브 쿼리 구독 푸시 알림은 OS가 전달해 닫힌 앱에도 도달하는 알림이고, 라이브 쿼리는 앱이 열려 있는 동안 데이터 변경을 스트리밍하는 구독입니다. 오버페칭과 언더페칭 오버페칭은 응답이 클라이언트에 필요한 것보다 많은 데이터를 담는 API 문제이고, 언더페칭은 필요한 데이터를 채우려고 추가 요청을 강제하는 API 문제입니다. 웹소켓과 실시간 동기화 웹소켓은 클라이언트와 서버가 이벤트 발생 즉시 서로에게 메시지를 푸시할 수 있게 하는 지속적인 양방향 연결입니다. 프레즌스 (온라인 상태) 프레즌스는 사용자가 지금 온라인, 자리 비움, 오프라인 중 어느 상태인지를 연결과 하트비트로 최신으로 유지하는 실시간 신호입니다. API (애플리케이션 프로그래밍 인터페이스) API는 한 애플리케이션이 다른 애플리케이션의 내부 코드를 알지 못해도 그 데이터와 기능을 요청할 수 있게 하는 규칙의 집합입니다. API 게이트웨이 아키텍처 API 게이트웨이는 모든 요청을 라우팅하고 인증하며 속도를 제한하는 단일 진입점, 즉 API를 위한 관리형 정문입니다. API 속도 제한과 스로틀링 속도 제한은 클라이언트가 윈도우당 보낼 수 있는 요청 수에 상한을 두는 제어 방식이며, 스로틀링은 초과 요청을 거부하지 않고 늦추는 방식입니다. API 엔드포인트 API 엔드포인트는 API가 한 리소스에 대한 요청을 받는 특정 URL로, HTTP 메서드와 짝을 이루어 하나의 오퍼레이션을 정의하는 접점입니다. API 페이로드 최적화 API 페이로드 최적화는 필드 축소, 작은 페이지, 압축으로 API가 보내는 데이터를 줄여 응답을 빠르게 만드는 기법입니다. GraphQL GraphQL은 API를 위한 쿼리 언어이자, 각 클라이언트가 요구한 필드만 한 번의 요청으로 정확히 돌려주는 서버 측 런타임입니다. GraphQL vs. REST API REST는 고정된 엔드포인트가 많은 API 스타일이고, GraphQL은 클라이언트가 단일 엔드포인트에 필요한 필드만 요청하는 쿼리 언어입니다. N+1 쿼리 문제 N+1 쿼리 문제는 N개의 레코드를 가져올 때 레코드마다 쿼리가 하나씩 더 실행되어, 한두 번이면 될 왕복이 N+1번으로 늘어나는 패턴입니다. Pub/Sub(발행-구독) 패턴 Pub/sub은 발행자가 브로커의 토픽으로 메시지를 보내고 그 토픽의 모든 구독자가 사본을 받는 메시징 패턴입니다. REST API REST API는 URL의 리소스, 무상태 요청, 표준 HTTP 메서드라는 REST 아키텍처 스타일을 따르는 API입니다. Server-Sent Events vs. 웹소켓 vs. 폴링 폴링은 클라이언트가 반복해서 묻는 풀 모델이고, SSE와 웹소켓은 연결 하나를 열어 두어 서버가 실시간으로 푸시하게 하는 방식입니다.

인증과 보안

다중 인증 (MFA) 다중 인증(MFA)은 아는 것, 가진 것, 본인의 신체적 특성 가운데 서로 다른 종류의 증거를 두 가지 이상 요구하는 로그인 통제 수단입니다. 비밀번호 없는 인증 비밀번호 없는 인증은 외워 둔 비밀 대신 디바이스에 보관된 키나 생체 인식으로 신원을 확인하는 로그인 방식입니다. 세션 관리 세션 관리는 HTTP 요청을 한 사용자에게 연결하는 서버 측 상태를 생성하고 검증하고 파기하는 분야입니다. 소셜 인증 어댑터: BaaS의 OAuth 통합 소셜 인증 어댑터는 ID 제공업체가 발급한 토큰을 검증해 사용자 레코드와 세션으로 바꾸는 백엔드 구성 요소입니다. 싱글 사인온 (SSO) 싱글 사인온(SSO)은 ID 공급자에서 한 번 로그인하면 서로 독립된 여러 애플리케이션에 접근할 수 있게 하는 인증 방식입니다. 역할 기반 접근 제어 (RBAC) 역할 기반 접근 제어(RBAC)는 권한을 역할에 연결하고, 사용자는 오직 자신의 역할을 통해서만 권한을 얻는 인가 모델입니다. 인증 vs. 인가 인증은 사용자가 누구인지 확인하는 검사이고, 인가는 요청마다 무엇을 할 수 있는지 판단하는 결정으로, 안전한 시스템에는 둘 다 필수입니다. 저장 데이터와 전송 데이터 암호화 저장 데이터 암호화는 키 없이는 저장된 데이터를 읽을 수 없게 하고, 전송 중 암호화는 네트워크를 지나는 데이터를 보호하는 통제 수단입니다. 접근 제어 목록 (ACL) 접근 제어 목록(ACL)은 리소스에 연결되어 어떤 사용자나 역할이 접근할 수 있고 각각 무엇을 할 수 있는지 명시하는 목록입니다. 크로스 사이트 스크립팅(XSS) 방지 크로스 사이트 스크립팅(XSS)은 신뢰받는 페이지에 악성 스크립트를 주입하는 공격이며, 방지의 핵심은 컨텍스트별 출력 인코딩입니다. API 키 보안 API 키는 API를 호출하는 앱을 식별하는 고유 문자열이며, API 키 보안은 그 범위를 제한하고 키를 보호하는 규율입니다. BaaS 보안 강화: CLP, ACL, 마스터 키 보호 BaaS 보안 강화는 CLP, ACL, 키 관리 원칙으로 이루어진 계층형 통제로, 백엔드가 기본값으로 열어 둔 틈을 닫는 작업입니다. ID 및 접근 관리 (IAM) IAM은 적절한 사용자가 적절한 시점에 적절한 리소스에 대해 적절한 접근 권한을 갖도록 보장하는 정책과 기술의 프레임워크입니다. JSON Web Token (JWT) JSON Web Token은 서명된 JSON 클레임을 담아 서버가 저장된 세션 없이도 요청을 검증할 수 있게 하는, 간결하고 URL 안전한 토큰입니다. OAuth 2.0과 소셜 로그인 OAuth 2.0은 앱이 다른 서비스의 사용자 계정에 접근할 수 있게 하는 인가 표준이며, 소셜 로그인은 그 위에 로그인을 구축한 것입니다.

백엔드 로직과 서버리스

데이터베이스 트리거 (BeforeSave와 AfterSave) 데이터베이스 트리거는 데이터 이벤트가 발생하면 자동으로 실행되어 저장 전에는 검증하고 저장 후에는 반응하는 코드 훅입니다. 미들웨어 (요청 수명 주기) 미들웨어는 라우트 로직이 실행되기 전에 요청과 응답을 검사하거나 수정하는, 요청 파이프라인 안의 함수입니다. 백그라운드 작업과 작업 스케줄러 백그라운드 작업은 앱이 큐에 넣고 워커가 실행하며 실패하면 재시도하는, 요청 주기 밖에서 실행되는 작업입니다. 백엔드 (서버 측) 백엔드는 UI 뒤에서 앱의 요청을 처리하고 데이터를 저장하는 코드, 데이터베이스, 인프라로 이루어진 서버 측 시스템입니다. 서버리스 콜드 스타트 콜드 스타트는 서버리스 플랫폼이 코드를 실행하기 전에 새 환경을 생성하고 초기화해야 할 때 치르는 지연 시간 비용입니다. 서버리스 함수 vs. 마이크로서비스 서버리스 클라우드 함수는 배포 가능한 백엔드 로직의 단일 단위이고, 마이크로서비스는 독립적으로 운영되는 하나의 완전한 서비스입니다. 엣지 컴퓨팅과 서버리스 엣지 함수 엣지 컴퓨팅은 사용자나 데이터 소스 가까이에서 연산하는 모델이며, 엣지 함수는 CDN 거점에서 실행되는 서버리스 코드입니다. 예약된 Cloud Code (크론 작업) 크론 작업은 정해진 시간 일정에 따라 자동으로 실행되는 작업이며, 예약된 Cloud Code는 이 개념을 서버리스 함수에 적용한 것입니다. 웹훅 (이벤트 기반 웹훅) 웹훅은 이벤트가 발생하면 한 시스템이 다른 시스템이 등록해 둔 URL로 페이로드를 POST하는 자동화된 HTTP 콜백입니다. 이벤트 기반 아키텍처 (EDA) 이벤트 기반 아키텍처는 서비스가 불변의 사실을 이벤트로 알리고 소비자가 각자 독립적으로 반응하는 설계 방식입니다. 푸시 알림 (APNs와 FCM) 푸시 알림은 앱이 닫혀 있어도 플랫폼 푸시 서비스가 디바이스에 전달하는, 서버가 시작하는 메시지입니다. API 오케스트레이션 API 오케스트레이션은 하나의 조정 계층이 여러 API를 순서대로 호출하고 하나로 결합된 결과를 반환하는 패턴입니다. Cloud Code (서버리스 함수) Cloud Code는 백엔드 로직이 호출, 데이터 이벤트, 스케줄에 의해 트리거되는 서버 측 함수로 실행되는 서버리스 모델입니다.

AI와 모던 스택

프론트엔드와 웹 전송