반응형

전체 글 439

[가상면접 사례로 배우는 대규모 시스템 설계 기초2] 11장. 결제 시스템

11장. 결제 시스템 1단계 : 문제 이해 및 설계 범위 확장 기능 요구사항대금 수신 (pay-in) 흐름 : 결제 시스템이 판매자를 대신하여 고객으로부터 대금을 수령한다. 대금 정산 (pay-out) 흐름 : 결제 시스템이 전 세계의 판매자에게 제품 판매 대금을 송신한다. 비기능 요구사항신뢰성 및 내결함성 : 결제 실패는 신중하게 처리해야 한다. 내부 서비스 (결제 시스템, 회계 시스템)와 외부 서비스(결제 서비스 제공업체) 간의 조정 프로세스 : 시스템 간의 결제 정보가 일치하는지 비동기적으로 확인 개략적 규모 측정하루에 100만건의 트랜잭션을 처리해야 한다. (초당 10건의 트랜잭션) 2단계 : 개략적 설계안 제시 및 동의 구하기복식부기 원장 시스템원장 시스템에는 복식 부기(double-entry)..

[가상면접 사례로 배우는 대규모 시스템 설계 기초2] 10장. 실시간 게임 순위표

10장. 실시간 게임 순위표 1단계 : 문제 이해 및 설계 범위 확장 기능 요구사항순위표에 상위 10명의 플레이어를 표시한다.특정 사용자의 순위를 표시한다. 어떤 사용자보다 4순위 위와 아래에 있는 사용자를 표시한다. (보너스 문제)비기능 요구사항점수 업데이트는 실시간으로 순위표에 반영한다. 일반적인 확장성, 가용성 및 안정성 요구사항 개략적 규모 측정 사용자수게임을 하는 사용자가 24시간 동안 고르게 분포한다고 자정하면 DAU가 500만 명인 게임의 경우 초당 평균 50명의 사용자가 게임을 플레이하게 된다. 하지만 그렇게 사용량이 균등한 경우는 별로 없으며, 서로 다른 시간대의 사람들이 동시에 게임할 수 있는 북미 지역 기준 저녁 시간이 피크 시간대일 가능성이 높다. 이를 고려하기 위해 최대 부하는 평..

[가상면접 사례로 배우는 대규모 시스템 설계 기초2] 8장.분산 이메일 서비스

지메일, 아웃룩 또는 야후 메일같은 대규모 분산 이메일 서비스 설계 1단계 : 문제 이해 및 설계 범위 확정기능 요구사항이메일 발송/수신 + 첨부파일SMTP, POP, IMAP 등의 프로토콜과 서비스 제공자 전용 프로토콜 사용모든 이메일 가져오기읽음 여부에 따른 이메일 필터링제목, 발신인, 메일 내용에 따른 검색 기능스팸 및 바이러스 방지 기능 개략적인 규모 측정10억 명의 사용자한 사람이 하루에 보내는 이메일 수는 10건, 이메일 전송 QPS = 10의 9승 * 10 / 10의 5승 = 100,000 이다. 한 사람이 하루에 수신하는 이메일 수는 평균 40건, 하나의 메타데이터는 50MB라고 가정 (이때 첨부파일은 미포함)메타데이터는 데이터베이스에 저장한다고 가정. 1년간 10억명 사용자 * 하루 4..

[supabase][postgresql] Row Level Security 이란

https://supabase.com/docs/guides/database/postgres/row-level-security Row Level Security | Supabase DocsSecure your data using Postgres Row Level Security.supabase.com supabase를 사용하다 보면, RLS enabled/disabled가 보이는데, 해당 기능이 어떤 기능인지 알아봤다. supabase 기능이라기보다는 postgres의 기능에 가깝다고 한다. https://www.postgresql.org/docs/current/ddl-rowsecurity.html 이 기능을 통해 사용자가 어떤 행을 조회, 삽입, 수정, 삭제할 수 있는지를 제어할 수 있다고 한다.기..

개발 2025.09.04

[supabase] Supabase Publishable Key vs Secret Key 정리

1. project settings 클릭 2. api keys 탭 > create new key 클릭 3. add new secret key 로 등록 4. name, description 입력 후 등록하면 된다. 참고로, publishable key와 secret key가 있는데 https://supabase.com/docs/guides/api/api-keys 여기 문서를 보면 TypeFormatPrivilegesAvailabilityUsePublishable keysb_publishable_...LowPlatformSafe to expose online: web page, mobile or desktop app, GitHub actions, CLIs, source code.Secret keys..

개발 2025.08.29

[netlify] Cafe24에서 구입한 도메인을 Netlify에 연결하는 가이드

Netlify로 프로젝트를 배포했다면, 이제 기본 제공되는 *.netlify.app 주소 대신 나만의 도메인을 연결하고 싶어질 수 있다. 이번 과정에서는 Cafe24에서 도메인을 구입하고, 이를 Netlify에 연결하는 방법을 단계별로 정리했다. 1. 도메인 구매 - cafe24 Cafe24에서 원하는 도메인을 검색해서 구입했다. 1년 사용료는 약 23,500원 정도였다.https://hosting.cafe24.com/?controller=new_domain_search_result 카페24 호스팅 | 온라인 비즈니스의 시작도메인 검색 결과 주요 도메인 국가 도메인 국내 도메인 기관 도메인 국내 지역 도메인 New gTLD 한글 도메인 도메인 신청하기 도메인 신청하기hosting.cafe24.com ..

개발 2025.08.26

[netlify] GitHub 프로젝트를 Netlify에 배포하는 방법

1. add new project 클릭 2. import an existing project 클릭 3. 원하는 애플리케이션 클릭 : github 클릭그 외에도 gitlab, bitbucket, azure devops 가능하다. 4. github 에서 repository 선택 5, team, project name 설정한다. Base directory (베이스 디렉토리)Netlify가 package.json, .nvmrc 같은 의존성 관리 파일을 찾고, 의존성을 설치하며 빌드 명령을 실행하는 디렉토리입니다. 또한 빌드 과정에서 캐싱 기준이 됩니다. 별도 설정하지 않으면 저장소 루트가 기본값입니다.Site files (사이트 파일)저장소 내 사이트 소스 코드와 관련 설정 파일을 의미합니다. 흔..

개발 2025.08.25

[가상면접 사례로 배우는 대규모 시스템 설계 기초2] 6장. 광고 클릭 이벤트 집계 - 3단계

3단계 : 상세 설계스트리밍 vs 일괄처리 서비스(온라인 시스템)일괄 처리 시스템(오프라인)스트리밍 시스템(실시간 가깝게 처리)응답성클라이언트에게 빠르게 응답클라이언트에게 응답할 필요 없음클라이언트에게 응답할 필요 없음입력사용자의 요청유한한 크기 갖는 입력, 크기의 데이터입력에 경계 없음 (무한한 스트림)출력클라이언트에 대한 응답구체화 뷰, 집계 결과 지표 등구체화 뷰, 집계 결과 지표 등성능 측정기준가용성, 지연 시간처리량처리량, 지연 시간사례온라인 쇼핑맵리듀스플링크본 설계안에서는 일괄 처리와 스트리밍 처리 경로를 하나로 합치는 카파 아키테쳐를 활용한다. 시간과 집계 윈도 (aggregation window)집계를 하려면 타임 스탬프가 필요하다. 타임 스탬프는 두 가지 다른 위치에서 만들어질 수 있다...

[가상면접 사례로 배우는 대규모 시스템 설계 기초2] 6장. 광고 클릭 이벤트 집계 - 1단계,2단계

1단계 : 문제 이해 및 설계 범위 확정 기능 요구사항지난 M분 동안의 ad_id 클릭 수 집계매분 가장 많이 클릭된 상위 100개 광고 아이디를 반환다양한 속성에 따른 집계 필터링 지원 데이터의 양은 페이스북이나 구글 규모(자세한 시스템 규모 요구사항은 아래 개략적 추정치에 관한 절 참고) 비기능 요구사항집계 결과 정확성은 데이터가 RTB 및 광고 과금에 사용되므로 중요지연되거나 중복된 이벤트를 적절히 처리할 수 있어야 함견고성(realibility) : 부분적인 장애는 감내할 수 있어야 함지연 시간 요구사항 : 전체 처리 시간은 최대 수 분을 넘지 않아야 함 개략적 측정일간 능동 사용자(DAU) 수는 10억명각 사용자는 하루에 평균 1개 광고를 클릭한다고 가정. 따라서 하루에 10억건의 광고 클릭 ..

[책리뷰] 게으른 완벽주의자를 위한 심리학

1장. 습관을 바꾸려면 습관을 이해하라모든 미루기가 같지는 않다. 미루기의 유형은 수동적 미루기와 능동적 미루기, 두 가지로 나눌 수 있다. 수동적 미루기란 가장 대표적인 형태의 미루기이다. 어떤 행위를 하려 했지만 이루고만 있는 것이다. 혹시 당신이 반복적으로 그리고 진심으로 "이것만 끝내면 바로 그 일을 시작해야지"라고 생각한다면 수동적 미루기를 하고 있을 가능성이 크다.능동적 미루기는 수동적 미루기보다는 더 의도적인 결정으로, 압박감을 느껴야 능률이 더 오른다라고 믿기 때문에 일부러 미루는 경우를 말한다.2장. 미루기의 악순환을 끊지 못하는 이유이 현상은 만족감을 나중으로 미루지 못하고, 당장 눈앞에 있는 것을 선호하는 성향에 일부 기인한다. 미루지 않는 사람이 더 어려운 과업에 먼저 착수하려 하는..

2025.08.10
반응형