system design
-
SQL 조인의 작동원리 - How do SQL Joins WorkReview/ByteByteGo - System Design 2024. 8. 2. 15:32
SQL 조인의 종류SQL 조인은 두 개 이상의 테이블에서 데이터를 결합하여 단일 결과 집합을 생성하는 데 사용됩니다. 주요 조인의 종류는 다음과 같습니다:INNER JOIN (내부 조인):설명: 두 테이블에서 공통된 값을 가진 행만 결합합니다.예시 쿼리:SELECT A.column1, B.column2FROM TableA AINNER JOIN TableB B ON A.common_column = B.common_column; LEFT JOIN (또는 LEFT OUTER JOIN):설명: 왼쪽 테이블의 모든 행과 오른쪽 테이블의 일치하는 행을 결합합니다. 일치하지 않는 경우 NULL로 표시됩니다.예시 쿼리:SELECT A.column1, B.column2FROM TableA ALEFT JOIN TableB..
-
REST API 인증 방법Review/ByteByteGo - System Design 2024. 8. 1. 04:00
REST API 인증 방법REST API의 인증은 API 리소스에 접근할 수 있는 권한이 있는 사용자 또는 애플리케이션만 접근할 수 있도록 하는 중요한 관문입니다. 여기에는 몇 가지 주로 사용되는 인증 방법이 있습니다.1. Basic Authentication (기본 인증)설명: 각 요청에 사용자 이름과 비밀번호를 포함하여 전송하는 방식입니다. 하지만 암호화 없이 사용하면 보안에 취약할 수 있습니다.사용 시기: 보안과 암호화가 주요 고려 사항이 아닌 간단한 애플리케이션에 적합하거나, 보안된 연결을 통해 사용할 때 적합합니다.2. Token-Based Authentication (토큰 인증)설명: JSON Web Tokens (JWT)와 같은 생성된 토큰을 클라이언트와 서버 간에 교환하여 로그인 자격 증명..
-
API 성능을 향상시키는 5가지 일반적인 방법Review/ByteByteGo - System Design 2024. 8. 1. 03:00
API 성능 향상 방법결과 페이징 (Result Pagination):대용량 결과 집합을 클라이언트에 스트리밍하여 서비스 응답성과 사용자 경험을 향상시킵니다.비동기 로깅 (Asynchronous Logging):로그를 잠금 없는 버퍼로 보내고 즉시 반환하여 디스크 처리 시간을 줄입니다.데이터 캐싱 (Data Caching):자주 접근하는 데이터를 캐시에 저장하여 데이터베이스 조회를 줄이고 빠른 액세스를 제공합니다.페이로드 압축 (Payload Compression):요청 및 응답을 압축하여 데이터 전송 시간을 줄입니다.연결 풀링 (Connection Pooling):데이터베이스 상호작용을 관리하기 위해 열린 연결의 풀을 사용하여 연결 수명 주기를 효율적으로 관리합니다. 아래는 위 5가지 방법을 포함한 7..
-
Kafka 주요 활용 사례 Top 5Review/ByteByteGo - System Design 2024. 8. 1. 01:00
Top 5 Kafka 사용 사례Kafka는 원래 대규모 로그 처리용으로 설계되었습니다. Kafka는 메시지를 만료될 때까지 유지하며 소비자가 자신의 속도에 맞춰 메시지를 가져갈 수 있도록 합니다.다음은 Kafka의 인기 있는 사용 사례입니다.1. 로그 처리 및 분석Kafka는 대규모 로그 데이터를 실시간으로 수집하고 분석하는 데 사용됩니다. 이는 시스템 모니터링, 오류 탐지 및 데이터 보관에 유용합니다.2. 추천 시스템에서의 데이터 스트리밍추천 시스템은 사용자의 행동을 실시간으로 분석하여 맞춤형 추천을 제공합니다. Kafka는 이러한 데이터 스트리밍을 처리하는 데 적합합니다.3. 시스템 모니터링 및 알림Kafka는 시스템 상태를 실시간으로 모니터링하고, 이상 상황 발생 시 경고를 발송하는 시스템에서 사용..
-
API 테스트의 9가지 유형Review/ByteByteGo - System Design 2024. 8. 1. 00:06
1. Smoke TestingAPI 개발이 완료된 후 API가 제대로 작동하는지 간단히 확인합니다.2. Functional Testing기능 요구 사항에 따라 테스트 계획을 수립하고 결과를 예상 결과와 비교합니다.3. Integration Testing여러 API 호출을 결합하여 종단 간 테스트를 수행합니다. 서비스 간 통신 및 데이터 전송을 테스트합니다.4. Regression Testing버그 수정이나 새로운 기능이 기존 API 동작을 방해하지 않는지 확인합니다.5. Load Testing다양한 부하를 시뮬레이션하여 애플리케이션 성능을 테스트합니다. 이를 통해 애플리케이션의 용량을 계산할 수 있습니다.6. Stress TestingAPI에 높은 부하를 의도적으로 생성하여 API가 정상적으로 작동할 수..