격벽 패턴 Bulkhead Pattern
벌크헤드 패턴은 공유 자원을 별도의 풀로 나눕니다. 하나의 풀에서 문제가 발생해도 다른 풀에서 필요한 모든 슬롯을 차지할 수 없습니다.
↗화면 뒤의 부품이 데이터를 저장하고, 규칙을 따르며, 사람들을 안전하게 지키는 방법을 배우세요.
간단한 의미, 예시, 사용 시점, 공식성, 코드명을 포함한 용어 열기
벌크헤드 패턴은 공유 자원을 별도의 풀로 나눕니다. 하나의 풀에서 문제가 발생해도 다른 풀에서 필요한 모든 슬롯을 차지할 수 없습니다.
↗CORS는 브라우저 HTTP 안전 규칙임. 서버는 어떤 다른 출처가 응답을 읽을 수 있는지 목록화함. 메서드, 헤더, 인증 정보를 제한할 수 있음.
↗Feature Flag는 프로그램이 돌아가는 동안 확인하는 스위치예요. 코드를 새로 배포하지 않아도 기능을 바꿀 수 있죠.
↗낙관적 동시성 제어는 사람들이 먼저 잠금 없이 동시에 작업할 수 있게 합니다. 저장하기 전에 버전을 검사하고 오래된 데이터를 기반으로 변경을 거부합니다.
↗네트워크 포트는 컴퓨터에 있는 한 서비스로 데이터를 보내는 번호예요. TCP와 UDP가 포트를 사용해요.
↗데드 레터 큐는 소스 큐가 허용된 시도 후에도 처리하지 못한 메시지를 보관합니다. 사람들은 통제된 재시도 전에 실패를 검토할 수 있습니다.
↗데이터베이스 마이그레이션은 버전이 있는 변경이에요. 저장된 데이터와 스키마를 알고 있는 한 상태에서 다른 상태로 옮겨요.
↗데이터베이스는 시간이 지나도 정리된 데이터를 간직해요. 스키마는 어떤 엔티티, 필드, 타입, 관계가 허용되는지 알려줘요.
↗데이터베이스 인덱스는 선택된 검색, 정렬 또는 규칙을 가속화하는 추가 데이터 구조입니다. 이는 저장 공간을 사용하며 데이터 변경 시 추가 작업을 발생시킵니다.
↗데이터베이스 정규화는 관련된 사실을 잘 구성된 테이블로 나눕니다. 이는 반복되는 데이터를 줄이고 한 사실이 바뀔 때 생기는 실수를 줄입니다.
↗데이터베이스 트랜잭션은 함께 완료되거나 모두 취소되는 데이터베이스 단계들의 집합입니다. 그 격리 규칙은 동시에 일어나는 작업과 어떻게 상호작용하는지를 말합니다.
↗Domain Name은 example.com처럼 읽기 쉬운 인터넷 이름이에요. DNS가 웹사이트, 이메일, 서비스를 연결해줘요.
↗DNS는 인터넷의 명명 시스템입니다. A, AAAA, CNAME, MX, TXT와 같은 레코드는 이름에 대한 질문에 답합니다.
↗동일 출처 정책은 브라우저 안전 규칙입니다. 이것은 한 출처의 페이지나 스크립트가 다른 출처의 데이터를 읽거나 처리할 수 있는 방식을 제한합니다.
↗로드 밸런서는 작업 준비가 된 서비스 엔드포인트 전반에 트래픽을 분산합니다. 서버 상태, 용량, 경로 및 가동 시간을 위한 규칙을 사용합니다.
↗리다이렉트는 클라이언트를 다른 주소로 보내요. 상태 코드를 보면 그 이동이 잠시 동안인지 영구적인지 알 수 있어요.
↗메시지 큐는 소비자가 처리할 수 있을 때까지 작업이나 메시지를 보관합니다. 생산자와 소비자는 서로 다른 시간과 속도로 실행될 수 있습니다.
↗멱등성은 동일한 의도된 작업을 다시 수행해도 한 번 수행했을 때와 동일한 서버 효과를 가진다는 것을 의미합니다. 응답이 반드시 동일할 필요는 없습니다.
↗백그라운드 작업은 서버가 페이지나 API 응답과 별개로 실행하는 작업으로, 작업을 시작할 수 있습니다. 응답은 작업이 끝나기 전에 완료될 수 있습니다.
↗백엔드는 인터페이스 뒤에서 작동하는 서버 부분이에요. 비즈니스 규칙을 적용하고, 데이터를 다루고, 다른 시스템과 연결해요.
↗백엔드 프레임워크는 서버 도구와 공통 규칙을 제공해요. 요청을 보내고, 데이터를 확인하고, 저장소를 쓰고, 응답을 보낼 수 있어요.
↗보안 쿠키 속성은 쿠키가 전달되는 방식과 스크립트가 읽을 수 있는지를 제어합니다. 또한 교차 사이트 사용, 어떤 호스트와 경로가 쿠키를 받는지, 그리고 얼마나 오래 지속되는지도 제어합니다.
↗부하 분산은 시스템이 용량에 가까워질 때 일부 작업을 거부합니다. 이는 극도의 지연이나 전체 충돌로부터 유용한 작업을 보호합니다.
↗브라우저 저장소는 브라우저 API를 통해 사람의 장치에 데이터를 저장합니다. 각 옵션은 크기, 수명, 형태 및 안전 제한이 다릅니다.
↗사가는 여러 저장된 단계를 하나의 비즈니스 작업으로 연결합니다. 나중 단계에서 실패가 발생하면, 이전에 일어난 일을 수정하기 위해 다시 시도하거나 다른 단계를 추가합니다.
↗사이트 간 스크립팅(XSS)은 공격자가 제어하는 데이터가 신뢰할 수 있는 사이트에서 브라우저 코드로 실행될 때 발생합니다.
↗사이트 간 요청 위조(CSRF)는 로그인된 브라우저가 사용자가 선택하지 않은 동작을 전송하도록 속이는 것입니다. 대상 사이트는 브라우저가 자동으로 추가하는 쿠키나 기타 자격 증명을 신뢰합니다.
↗서버 측 요청 위조(SSRF)는 공격자가 제어하는 입력이 서버로 하여금 요청을 보내게 할 때 발생합니다. 요청은 도달해서는 안 되는 곳에 도달하게 됩니다.
↗서버리스 컴퓨팅은 호스팅된 코드 실행입니다. 제공자가 서버를 시작하고 확장하는 동안 팀은 함수나 서비스를 배포합니다.
↗서비스 수준 목표(SLO)는 명시된 시간 동안 사용자에게 제공되는 신호의 신뢰성 목표입니다. 이는 법적 약속이 아닙니다.
↗이 학습 번들은 세 가지 관련 도구를 구분합니다. 세션은 서버가 인지하는 연속성을 유지합니다. 쿠키는 설정된 규칙에 따라 브라우저에서 관리되는 상태입니다. 토큰은 클레임이나 권한을 전달합니다. 번들은 하나의 표준 신원 용어가 아닙니다.
↗속도 제한은 하나의 아이덴티티, 키, 또는 시간 창에 대해 허용된 요청이나 비용이 많이 드는 작업을 제어합니다.
↗암호 해싱은 데이터의 양에 상관없이 한 방향으로 고정 길이 지문으로 변환합니다. 안전한 해시는 입력을 복구하거나 동일한 지문을 가진 두 입력을 찾는 것을 실질적으로 불가능하게 만듭니다.
↗이 학습 번들은 두 가지 다른 암호화 아이디어를 비교합니다. 암호화는 데이터를 비공개로 유지하기 위해 키로 되돌릴 수 있습니다. 안전한 해싱은 일방향이며 무결성을 확인하거나 비밀번호를 검증할 수 있습니다. 이 번들은 하나의 표준 원시 연산이 아닙니다.
↗액세스 토큰은 앱이 보호된 서비스에 보낼 수 있는 자격 증명으로, 무엇을 할 수 있는지를 보여줍니다. 규칙은 일반적으로 발급자, 어떤 서비스가 이를 수락하는지, 권한, 유효 기간을 제한합니다.
↗예약된 작업은 선택한 시간이나 반복 간격에 따라 백엔드 작업을 시작합니다. 규칙에는 지연, 놓침 또는 시작 겹침 후에 발생하는 일이 명시되어야 합니다.
↗에러 예산은 SLO 창 동안 허용된 불량 서비스량입니다. 이는 100% 아래 부분과 같습니다.
↗오프셋 페이지네이션은 선택한 수의 정렬된 레코드를 건너뛰고, 설정된 크기까지 다음 페이지를 반환합니다.
↗외래 키는 데이터베이스 규칙입니다. 하나의 열이 동일하거나 다른 테이블의 유효한 키를 가리키도록 합니다. `null`은 해당 열에 선택된 규칙을 따릅니다.
↗요청 기한은 클라이언트가 더 이상 기다리지 않는 시간입니다. 각 하위 호출은 남은 시간만 받아야 합니다.
↗워커 동시성은 소비자가 동시에 실행할 수 있는 작업 수입니다. 제한은 서버와 해당 작업이 호출하는 서비스를 보호합니다.
↗웹 세션은 별도의 웹 요청 간에 관련 작업을 제한된 시간 동안 연결 상태로 유지합니다. 일반적으로 추측하기 어려운 ID를 서버에 저장된 상태와 연결합니다.
↗WebSocket은 웹 앱과 서버 간의 양방향 연결을 유지합니다. 연결이 열려 있는 동안 어느 쪽이든 메시지를 보낼 수 있습니다.
↗Webhook은 이벤트가 생기면 보내는 HTTP 콜백이야. 다른 시스템에게 반응하라고 알려줘.
↗이벤트 기반 아키텍처에서 한 컴포넌트는 무언가가 변경된 후 사실을 게시합니다. 다른 컴포넌트는 전달과 미래 형식 변경에 대한 명확한 규칙 하에 나중에 반응합니다.
↗인가는 확인된 사람이나 서비스가 무엇을 읽고, 바꾸고, 실행할 수 있는지 결정해요. 보통 AuthZ로 줄여서 써요.
↗인증은 사람이나 서비스가 누구인지 확인해요. 보통 AuthN으로 줄여서 써요.
↗인증된 암호화(AEAD)는 읽을 수 있는 데이터를 승인된 키로 다시 변경할 수 있는 비밀 데이터로 변환합니다. 또한 암호화된 데이터나 연결된 세부 정보가 변경되었는지 감지합니다.
↗입력 검증은 데이터가 신뢰 경계를 넘을 때 데이터를 확인합니다. 예상되는 유형, 모양, 범위, 크기 및 의미를 강제합니다.
↗재시도 정책은 어떤 실패한 작업을 다시 시도할 수 있는지를 결정합니다. 백오프는 각 실패 후 더 긴 대기 시간을 추가합니다.
↗전송 계층 보안(TLS)은 신뢰할 수 없는 네트워크 상의 데이터를 보호합니다. 데이터를 숨기고, 변경 사항을 감지하며, 상대방이 누구인지 확인합니다.
↗점진적 저하는 선택적 의존성이 실패할 때 핵심 기능이 작동하도록 합니다. 결과는 더 작거나, 오래되거나, 세부 정보가 적을 수 있습니다.
↗최소 한 번 배송은 메시지가 손실되지 않도록 시도하지만, 동일한 메시지가 여러 번 도착할 수 있습니다. 소비자는 반복을 안전하게 처리해야 합니다.
↗최종적 일관성(eventual consistency)은 데이터 사본들이 변경 후 잠시 동안 서로 다를 수 있게 합니다. 새로운 변경이 중단되고 업데이트가 계속 작동하면, 사본들은 일치해야 합니다.
↗캐시는 빠르고 잠시 저장해 두는 데이터나 결과 복사본이에요. 기다리는 시간과 반복되는 일을 줄여줘요.
↗커서 페이지네이션은 고정 정렬 순서에서 숨겨진 마커 뒤에서도 계속됩니다. 이전 모든 레코드를 카운트하고 건너뛰지 않습니다.
↗콘텐츠 보안 정책(CSP)은 브라우저 콘텐츠를 위한 HTTP 규칙입니다. 어떤 파일이 로드될 수 있고 어떤 스크립트가 실행될 수 있는지를 제한합니다.
↗콘텐츠 전송 네트워크(CDN)는 여러 장소에 있는 시스템 그룹입니다. 이는 사용자 근처 위치에서 캐시된 콘텐츠 또는 엣지에서 생성된 응답을 제공합니다. 명확한 규칙이 신선도와 제거를 제어합니다.
↗콘텐츠 협상은 HTTP가 클라이언트의 선호와 서버의 사용 가능한 형식 중 하나를 선택하는 방법입니다.
↗URL은 인터넷 주소야. 구성요소가 클라이언트에게 뭘 열어야 할지 알려줘.
↗트랜잭션 아웃박스는 데이터 변경과 메시지 기록을 하나의 로컬 데이터베이스 트랜잭션으로 저장합니다. 릴레이는 트랜잭션이 커밋된 후 저장된 메시지를 전송합니다.
↗헬스 프로브는 서비스가 시작 중인지, 트래픽 처리 준비가 되었는지, 여전히 살아 있는지를 플랫폼에 알려주는 작은 점검입니다.
↗환경 변수는 앱 코드 바깥에 있는 이름이 붙은 설정이에요. 환경마다 다른 값을 쓸 수 있게 해줘요.
↗서킷 브레이커는 실패할 가능성이 있는 원격 서비스로의 호출을 중단합니다. 이후 몇 번의 테스트 호출로 서비스가 회복되었는지 확인합니다.
↗ACID는 원자성(atomicity), 일관성(consistency), 격리성(isolation), 내구성(durability)을 의미합니다. 이 네 가지 개념은 트랜잭션 안전성을 설명하는 데 도움이 되지만, 실제 약속은 데이터베이스와 격리 수준에 따라 달라집니다.
↗API는 소프트웨어끼리 대화하는 규칙의 모음이에요. 엔드포인트는 그 API에 있는 하나의 주소이자 하나의 동작이죠.
↗API 버전 관리는 클라이언트에 영향을 주지 않고 API 계약을 명명, 변경, 지원 및 폐기하는 계획입니다. 모든 API가 반드시 사용해야 하는 URL이나 헤더 스타일은 없습니다.
↗CRUD는 생성, 읽기, 업데이트, 삭제의 약자입니다. 이들은 저장된 데이터를 다루는 네 가지 일반적인 방법이지만, CRUD는 API 프로토콜이 아닙니다.
↗HTTP 메서드는 요청에서 어떤 종류의 동작이 의도되었는지를 나타내는 단어입니다. 각 메서드에는 안전성, 재시도 및 캐싱에 대한 표준 규칙이 있습니다.
↗HTTP 상태 코드는 응답에서 나타나는 세 자리 숫자입니다. 이는 요청의 표준 결과와 어떤 결과 그룹에 속하는지를 알려줍니다.
↗HTTP 요청은 클라이언트가 서버로 보내는 거예요. 메서드, 주소, 헤더가 있고, 때로는 본문도 있어요. 응답은 상태, 헤더, 데이터를 반환해요.
↗HTTP 쿠키는 서버나 스크립트에서 설정하는 작고 이름-값 항목입니다. 브라우저는 사이트, 경로, 수명 및 보안 규칙이 허용될 때만 이를 다시 보냅니다.
↗JSON은 데이터를 공유하기 위한 텍스트 형식입니다. 객체, 배열, 텍스트, 숫자, `true` 또는 `false`, `null`을 포함할 수 있습니다.
↗JSON 웹 토큰(JWT)은 JWS 또는 JWE 보호와 함께 당사자 간에 클레임을 전송하기 위한 간결한 형식입니다. JWT는 단지 형식일 뿐, 권한 시스템이 아닙니다.
↗OAuth 2.0은 인증 프레임워크입니다. 앱이 개인이나 앱 자체를 위해 보호된 데이터를 제한적으로 사용할 수 있는 권한을 얻도록 합니다.
↗OpenAPI 명세서는 HTTP API를 기술하는 언어 중립적인 방법입니다. 여기에는 동작, 입력, 데이터 구조, 보안 방법, 응답, 재사용 가능한 스키마가 나열됩니다.
↗OpenID Connect는 OAuth 2.0 위에 구축된 신원 계층입니다. 이를 통해 앱은 사용자가 로그인했음을 확인하고 해당 로그인에 대한 표준 정보를 받을 수 있습니다.
↗REST API는 주문(Order)이나 사용자(User)와 같은 리소스를 중심으로 구축된 HTTP 인터페이스입니다. 각 요청은 독립적이며, 표준 HTTP 의미를 사용하고, 캐싱을 지원할 수 있으며, 여러 계층을 통과할 수 있습니다.
↗WebAuthn 패스키는 가짜 로그인 사이트에 강한 공개키 로그인 인증 수단입니다. 제공자와 인증기에 따라 장치 간 동기화되거나 하나의 장치에만 존재할 수 있습니다.
↗