Review: Software Architecture & Design of Modern Large Scale Systems (2)
·
Server/System Design
Annyeong! This post series is a note from things that I've learned from the Udemy course: Software Architecture & Design of Modern Large Scale Systems. Requirement Gathering StepsWhen gathering information before we actually design the system, we need to gather sufficient information by following below steps:Identify all the actors / users in the system.Capture & describe all the possible use ca..
Review: Software Architecture & Design of Modern Large Scale Systems (1)
·
Server/System Design
Annyeong! I will note down some important points that I've learned from the Udemy course: Software Architecture & Design of Modern Large Scale Systems. Introduction to Software ArchitectureWhile there are many arguments about the definition of the software architectrue, here's the definition we will use throughout the course:"The software architecture of a system is a high-level description of t..
가상 면접 사례로 배우는 대규모 시스템 설계 기초 8장: URL 단축기 설계
·
Server/System Design
가상 면접 사례로 배우는 대규모 시스템 설계 기초 8장: URL 단축기 설계를 읽고 정리합니다. 개략적 설계안API 엔드포인트클라이언트는 서버가 제공하는 API 엔드포인트를 통해 서버와 통신합니다. 이 글에선 엔드포인트를 REST 스타일로 설계합니다. URL 단축키는 기본적으로 두 개의 엔드포인트를 필요로 합니다.URL 단축용 엔드포인트: 새 단축 URL을 생성하고자 하는 클라이언트는 이 엔드포인트에 단축할 URL을 인자로 실어서 POST 요청을 보내야 합니다. 이 엔드포인트는 다음과 같은 형태를 띕니다:POST /api/v1/data/shorten- 인자: {longUrl: longURLstring}- 반환: 단축 URLURL 리디렉션용 엔드포인트: 단축 URL에 대해서 HTTP 요청이 오면 원래 UR..
가상 면접 사례로 배우는 대규모 시스템 설계 기초 7장: 분산 시스템을 위한 유일 ID 생성기 설계
·
Server/System Design
가상 면접 사례로 배우는 대규모 시스템 설계 기초 7장: 분산 시스템을 위한 유일 ID 생성기 설계를 읽고 배운 점을 정리합니다. 분산 환경에서는 auto_increment 같은 방법을 적용하기 어렵습니다. 분산 시스템에서 유일성이 보장되는 ID를 만드는 것은 아래와 같은 방법이 있습니다.multi-master replicationUUIDticket servertwitter snowflake 접근법Multi-master replication다중 마스터 복제는 아래와 같은 구성을 가집니다.이 접근법은 데이터베이스의 auto_increment를 사용하며, 증가시킬 때 1만큼 증가시키는 것이 아닌 k(데이터베이스 수)만큼 증가시키는 방법입니다. 이렇게 하면 규모 확장성 문제를 어느정도 해결할 수 있습니다. 데..
가상 면접 사례로 배우는 대규모 시스템 설계 기초 6장: 키-값 저장소 설계
·
Server/System Design
가상 면접 사례로 배우는 대규모 시스템 설계 기초 6장: 키-값 저장소 설계를 읽고 배운 내용을 정리합니다. key-value 데이터베이스는 비관계형 데이터베이스이다. 여기에 저장되는 값은 고유 식별자(identifier)를 키로 가져야 한다. 키와 값 사이의 연결 관계를 key-value pair 라고 합니다. 키는 성능상의 이유로 짧을수록 좋습니다. key-value pair에서 값은 문자열, list, object 등 무엇이든 될 수 있습니다. 문제 이해 및 설계 범위 확정해당 글에서는 아래의 조건으로 설계해볼 예정입니다.key-value pair의 크기는 10KB 이하이다.큰 데이터를 저장할 수 있어야 한다.높은 가용성을 보장해야 한다.높은 규모 확장성을 보장한다. (오토스케일링이 가능해야 함)데..
가상 면접 사례로 배우는 대규모 시스템 설계 기초 5장: 안정 해시 설계
·
Server/System Design
안정 해시 설계에 대해 배운 점을 정리하였습니다. 샤딩이 뭐냐? 하면 이런겁니다. 데이터베이스 노드가 3개 있다면, 데이터베이스에 데이터를 읽고 쓸 때 어떠한 알고리즘을 통해 데이터를 저장할 장소를 분리합니다. 이렇게 하면 수평적으로 확장하기 용이합니다 (read replica를 기용하는 방법은 어쨌든 모든 데이터베이스에 데이터가 sync 되어있어야 하기 때문에 그런 점을 따져보면 샤딩이 확장성이 좋습니다). 해시 키 재배치 문제rehash 문제는 이런겁니다. 만약 서버가 3개인 상태에서 서버가 scale out을 했다고 가정해봅시다. 그러면 나머지 연산 알고리즘 결과가 아예 달라지면서 각 서버에 들어가야 할 데이터가 거의 전부 바뀌어버리게 됩니다. 이런 현상이 해시 키 재배치 문제입니다. 이는 곧 대규..
가상 면접 사례로 배우는 대규모 시스템 설계 기초 4장: 처리율 제한 장치의 설계
·
Server/System Design
처리율 제한 장치(rate limiter)의 설계를 공부한 내용을 정리했습니다.Rate limiter란?Rate limiter, 즉 처리율 제한 장치는 클라이언트 또는 서비스가 보내는 트래픽의 처리율(rate)을 제어하기 위한 장치이다.e.g. 특정 기간 내 전송되는 클라이언트의 요청 횟수 제한 API 요청 횟수가 threshold를 넘어서면 추가로 도달한 요청은 모두 차단된다.사용자는 초당 2회 이상 새로운 게시글을 올릴 수 없음같은 IP 주소로는 하루에 10개 이상의 계정을 생성할 수 없음같은 디바이스로는 주당 5회 이상 리워드를 요청할 수 없음From Cloudflare – https://www.cloudflare.com/en-gb/learning/bots/what-is-rate-limiting/R..
[졸업프로젝트] NewsFit 개발 회고
·
Server
안녕하세요, Sean 입니다. 홍익대학교 4학년을 무사히 마치며 졸업 프로젝트도 끝이 났습니다. 졸업 프로젝트 설계와 구현 과정에서 있었던 일들을 이야기하고자 글을 쓰게 되었습니다. 저는 NewsFit 프로젝트에서 인프라 설계 및 구축, 추천 시스템 서비스, 웹 스크래핑 서비스 구현을 담당했습니다.3-tier architecture 본 백엔드 서버 아키텍처는 3계층 구조를 기반으로 설계되었으며, 확장성, 보안성 및 고가용성을 중점적으로 고려하였습니다. 각 구성 요소의 역할과 기능은 다음과 같습니다. EC2 인스턴스 및 로드밸런서백엔드 애플리케이션이 배포된 인스턴스로, 프라이빗 서브넷 내에 위치합니다. 오토 스케일링을 활용하여 트래픽의 증가 및 감소에 따라 인스턴스 수를 자동으로 조정함으로써 시스템의 탄력..
AWS Cloud Club Hongik에서 실습 환경 구성하기
·
AWS
AWS Cloud Club Hongik안녕하세요, Sean입니다. 저는 AWS Cloud Club Hongik을 운영중이고, AWS 클라우드 기초 스터디를 진행하고 있습니다.AWS 클라우드 기초 스터디에서는 단순히 이론 세션만 진행하지 않습니다. 매주 '트러블슈팅 실습 세션'을 준비했습니다. AWS 환경에서 발생하는 문제 상황에서, 직접 콘솔에서의 작업을 통해 문제를 해결하는 경험을 제공해드리고자 이러한 실습 세션을 준비했습니다.  트러블슈팅 실습 환경을 제공해드리기 위해 AWS Organization과 CloudFormation StackSets 사용을 결정했습니다.AWS Organization을 통해 계정을 통합 관리하고 실습 과정에서 발생할 수 있는 추가적 비용을 중앙 계정에서 관리할 수 있습니다...
AWS SysOps Administrator - Associate 취득 후기 (+ 취득 꿀팁!)
·
Events
https://aws.amazon.com/ko/certification/certified-sysops-admin-associate/ AWS Certified Sysops Administrator - Associate 자격증자격증을 취득한 이들은 업계에서 인정받는 이 자격증을 취득함으로써 자신감이 향상되고 기술적인 IT/클라우드 동료 및 고객과의 신뢰도가 높아졌다고 보고합니다. 온프레미스 시스템에서 운aws.amazon.com AWS Certified SysOps Administrator - Associate는 AWS 워크로드 모니터링 및 유지 관리, 보안 제어 및 네트워킹 개념 구현, 비즈니스 연속성 절차 수행, 비용 및 성능 최적화 구현에 대한 기술과 지식을 검증합니다. 안녕하세요, Sean입니다. 사..
Sean 션
'분류 전체보기' 카테고리의 글 목록