bytebytego
-
모바일App 출시 과정Review/ByteByteGo - System Design 2024. 9. 20. 09:37
모바일 앱 출시 과정은 전통적인 방식과 다르다. 아래 내용은 모바일 앱의 출시 과정을 간략하게 정리한 내용이다.등록 및 개발 (iOS 및 Android)iOS와 Android 개발자로 Apple의 개발자 프로그램 및 Google Play Console에 등록iOS의 경우 Swift/Obj-C, Android의 경우 Java/Kotlin을 사용해 플랫폼별 도구로 코드를 작성빌드 및 테스트 (iOS 및 Android)앱의 바이너리 컴파일 및 두 플랫폼의 기능 / 성능 보장을 위한 광범위한 테스트를 수행릴리스 후보 빌드 생성QA (품질 보증)앱을 내부에서 테스트하여 문제를 식별(Dogfooding)외부 사용자와 베타 테스트를 통해 피드백을 수집기능 안정성을 유지하기 위해 회귀 테스트를 진행내부 승인이해 관계자..
-
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가 정상적으로 작동할 수..
-
ByteByteGo의 System Design PDF 해석 프로젝트Review/ByteByteGo - System Design 2024. 7. 31. 23:39
프로젝트 설명다가오는 8월 한 달 동안, ByteByteGo에서 무료로 제공되는 System Design PDF를 해석하고 번역하는 프로젝트를 진행할 예정입니다. ByteByteGo는 시스템 디자인과 관련된 고급 IT 콘텐츠를 제공해주어 많은 엔지니어들에게 큰 도움이 되고 있습니다. 이번 프로젝트에서는 ByteByteGo의 다양한 시스템 디자인 주제를 심도 있게 다루며, 각 주제를 번역하여 제공할 것입니다.추진 배경이 프로젝트는 IT 전문가와 엔지니어, 그리고 IT분야로 취업이나 자격증을 준비하는 분들이 ByteByteGo의 System Design에 나온 자료를 더 쉽게 공부하여 IT분야의 기본 개념들을 익히는데 도움이 되고자 기획되었습니다. 시스템 디자인은 복잡한 개념을 포함하고 있어 정확한 해석이 ..