본문 바로가기

55

[가상면접사례로 배우는 대규모 시스템 설계] URL 단축키 설계 🔗URL 단축키 설계🔷 1단계 : 문제 이해 및 설계 범위 확정질문을 통해 알아낸 요구사항🔷 2단계 : 개략적 설계안 제시 및 동의 구하기API 엔드포인트URL 리디렉션301 Permanently Moved302 FoundURL 단축🔷 상세 설계데이터 모델해시 함수🔷 마무리🔷 1단계 : 문제 이해 및 설계 범위 확정질문을 통해 알아낸 요구사항쓰기 연산: 매일 1억 개의 단축 URL 생성, 초당 1160읽기 연산 : 초당 11,60010년간 서비스 운영시 1억개의 레코드 보관축약 전 URL 평균길이 : 100⇒ 10년 동안 필요한 저장 용량 36.5TB🔷 2단계 : 개략적 설계안 제시 및 동의 구하기API 엔드포인트[1] RESTful API기본적으로 두 개의 엔드포인트가 필요하다.URL 단축.. 2025. 3. 18.
23장 프레젠터와 험블 객체 23장 프레전터와 험블 객체태그비어 있음날짜2024년 9월 6일험블 객체 패턴디자인 패턴으로 테스트하기 어려운 행위와 테스트하기 쉬운 행위를 분리하기 쉽게 하는 방법험블 : 테스트하기 어려운 행위를 모두 험블 객체로 옮긴다.나머지 모듈 : 테스트하기 쉬운 행위를 옮긴다.ex) GUI 험블 : 뷰나머지 모듈 : 프레젠터프레젠터와 뷰프레전터는 테스트하기 쉬운 객체 : 화면에 표현할 수 있는 포맷으로 만든다.뷰는 데이터룰 화면에 전달한다. 테스트와 아키텍처험블 객체 패턴을 사용하면, 행위를 테스트하기 쉬운 부분과 테스트하기 어려운 부분으로 분리하면 아키텍처 경계가 정의된다.데이터베이스 게이트웨이유스케이스 인터랙터와 데이터베이스 사이에는 데이터베이스 게이트웨이가 위치한다. 유스케이스 계층은 SQL을 허용하지 않.. 2025. 3. 18.
22장 클린 아키텍처 22장 클린 아키텍처태그비어 있음날짜2024년 8월 30일시스템 아키텍처와 관련된 여러 가지 아이디어 육각형 아키텍처DCIBCE이 아키텍처들의 목표는 관심사의 분리다특징프레임워크 독립성프레임워크를 도구로 사용할 수 있으며 프레임워크가 지닌 제약사항 안으로 시스템을 욱여 넣도록 강제하지 않는다.테스트 용이성UI 독립성 데이터베이스 독립성모든 외부 에이전시에 대한 독립성🏘️ 의존성 규칙동심원은 다른 영역을 표현의존성 규칙은 중요한 규칙외부의 원은 내부의 원에 속한 요소에 대해 아무것도 알지 못한다.함수, 클래스, 변수, 엔티티🏘️ 엔티티엔티티는 핵심 업무 규칙을 캡슐화한다. 엔티티는 가장 고수준인 규칙을 캡슐화한다.운영 관점에서 특정 애플리케이션에 무언가 변경이 필요하더라도 엔티티 계층에는 절대로 영향을.. 2025. 3. 18.
21장 소리치는 아키텍처 21장 소리치는 아키텍처태그비어 있음날짜2024년 8월 23일도서관과 주택의 건물 설계도를 보면은 각각 어떤 공간인지 알아챌 수 있다.아키텍처가 “도서관이야!”, “집이야!” 라고 소리치기 때문이다.우리의 애플리케이션이 “재고 관리 시스템이야!” 라고 소리치는가 아니면” 스프링이야!!” 라고 소리치는가🏘️ 아키텍처의 테마소프트웨어 아키텍처는 시스템의 유스케이스를 지원하는 구조다.소프트웨어 애플리케이션의 아키텍처도 애플리케이션의 유스케이스에 대해 소리쳐야 한다.아키텍처를 프레임워크로부터 제공받아서는 절대 안된다.프레임워크는 도구이지 아키텍처가 준수해야 할 대상이 아니다.프레임워크 중심으로 만들어버리면 유스케이스가 중심이 되는 아키텍처가 나올 수 없다.🏘️ 아키텍처의 목적좋은 소프트웨어 아키텍처는 프레임.. 2025. 3. 18.