전체 글65 [Book]일상 속 사물이 알려주는 웹 API 디자인 1부 #1 1. API 디자인이란 무엇인가?API인 웹 애플리케이션 프로그래밍 인터페이스는 API로 연결된 세상의 중추에 비유할 수 있습니다. 단순히 기술적인 형태부터 제품의 형태까지 크기와 목적에 상관없이 모든 시스템은 인터페이스에 의존합니다. API 기반 시스템을 만들고 발전시킬 때 디자인은 가장 중요한 고려사항이 되어야 합니다. API 기반 시스템의 성공과 실패는 모두 API의 품질에 달려 있다고 해도 과언이 아닙니다. 어떤 타입이든 API의 주된 목적은 인터페이스입니다. 인터페이스란 두 개의 시스템, 대상, 조직, 또는 그 밖의 대상들이 만나고 상호작용하는 지점을 의미합니다. 1.1 API 세상에는 두 종류의 API 블록이 있습니다. 하나는 퍼블릭 API이며, 다른 하나는 프라이빗 API입니다. 얼굴 인.. 2026. 4. 25. [Book] 가상 면접 사례로 배우는 대규모 시스템 설계 기초 4장 처리율 제한 장치의 설계네트워크 시스템에서 처리율 제한 장티(rate limiter)는 클라이언트 또는 서비스가 보내는 트래픽의 처리율(rate)을 제어하기 위한 장치다. HTTP를 예로 들면 이 장치는 특정 기간 내에 전송되는 클라이언트의 요청 횟수를 제한한ㄷ. API 요청 횟수가 제한 장치에 정의된 임계치(threshold)를 넘어서면 추가로 도달한 모든 호출은 처리가 중단(block)된다. API에 처리율 제한 장치 설정 시 장점1. Dos(Denial of Service) 공격에 의한 자원 고갈을 방지할 수 있다. 대형 IT기업들이 공개한 거의 대부분의 API는 어떤 형태로든 처리율 제한 장치를 갖고 있다. 처리율 제한 장치는 추가 요청에 대해서는 처리를 중단함으로써 Dos 공격을 방지한다. 예를.. 2025. 5. 8. [Book] 가상 면접 사례로 배우는 대규모 시스템 설계 기초 2장,3장 2장 계략적인 규모 추정계략적 규모 추정을 효과적으로 해내려면 규모 확장성을 표현하는데 필요한 기본기에 능숙해야 한다. 특히, 2의 제곱수나 응답 지연(latency) 값, 그리고 가용성에 관계된 수치들 등 2의 제곱수분산 시스템에서 다루는 데이터 양은2장 계략적인 규모 추정계략적 규모 추정을 효과적으로 해내려면 규모 확장성을 표현하는데 필요한 기본기에 능숙해야 한다. 특히, 2의 제곱수나 응답 지연(latency) 값, 그리고 가용성에 관계된 수치들 등 2의 제곱수분산 시스템에서 다루는 데이터 양은 엄청나게 커질 수 있으나 그 계산법은 기본을 크게 벗어나지 않는다. 제대로 된 계산 결과를 얻으려면 데이터 볼륨의 단위를 2의 제곱수로 표현하면 어떻게 되는지를 우선 알아야 한다. 최소 단위는 1바이트이고,.. 2025. 4. 27. [Book] 가상 면접 사례로 배우는 대규모 시스템 설계 기초 1장 사용자 수에 따른 규모 확장성모든 컴포넌트가 단 한대의 서버에서 실행되는 간단한 시스템으로 웹,앱,데이터베이스,캐시 등이 전부 서버 한 대에서 실행된다 사용자 요청 처리 흐름요청은 2가지 종류의 단말로 오는데, 하나는 웹이고 다른 하나는 모바일 앱이다.1. 사용자는 돔인 이름을 이용하여 웹사이트에 접속한다. 이 접속을 위해서는 도메인 이름을 도메인 이름 서비스에 질의하여 IP주소로 변환하는 과정이 필요하다. 2. DNS조회 결과로 IP주소가 반환된다. 여기 예제에서는 그 주소가 15.124.23.214라고 하겠다.3. 해당 IP 주소로 HTTP 요청이 전달된다.4. 요청을 받은웹 서버는 HTML 페이지나 JSON 형태의 응답을 반환한다. 사용자가 늘면 서버 하나로는 충분하지 않아서 여러 서버를 두어야 한.. 2025. 4. 26. Mockito의 엄격 모드(Strict Stubbing) Mockito를 사용해 테스트를 작성하다 보면 아래와 같은 에러를 한 번쯤은 마주치게 됩니다.org.mockito.exceptions.misusing.UnnecessaryStubbingException:Unnecessary stubbings detected.혹은org.mockito.exceptions.misusing.PotentialStubbingProblem:Strict stubbing argument mismatch.이 에러 메시지의 원인은 "엄격한 stubbing 검사", 즉 Mockito의 Strict Stubbing 모드 때문입니다. 이 글에서는 엄격 모드가 무엇이고 왜 필요한지, 그리고 실제 현업에서 어떻게 대응하면 좋은지를 정리합니다.🔍 엄격 모드(Strict Stubbing)란?Stric.. 2025. 4. 11. spring actuator를 활용한 회복탄력성 관리(2) Spring Boot Actuator는 Spring Boot 애플리케이션의 런타임 정보를 모니터링하고 관리하기 위한 기능을 제공하는 라이브러리입니다. 애플리케이션의 상태, 건강 상태, 환경 정보 등을 실시간으로 확인할 수 있습니다.엔드포인트 (Endpoints): Actuator는 애플리케이션에 다양한 관리 엔드포인트를 제공합니다. 이 엔드포인트를 통해 애플리케이션의 상태, 정보, 설정 등을 확인할 수 있습니다./actuator/health: 애플리케이션의 건강 상태를 확인합니다./actuator/info: 애플리케이션의 정보를 확인합니다./actuator/metrics: 애플리케이션의 메트릭 정보를 확인합니다.애플리케이션 정보 노출 (Application Information Exposure): Act.. 2025. 3. 25. 이전 1 2 3 4 ··· 11 다음