[대규모 시스템 설계 기초 1] 2장 - 개략적인 규모 추정, 3장 - 시스템 설계 공략
·
ETC
모든 프로그래머가 알아야 하는 응답지연 값- 메모리는 빠르지만 디스크는 아직도 느리다.- 디스크 탐색(seek)은 가능한 한 피하라.- 단순한 압축 알고리즘은 빠르다.- 데이터를 인터넷으로 전송하기 전에 가능하면 압축하라.- 데이터 센터는 보통 여러 지역(region)에 분산되어 있고, 센터들 간에 데이터를 주고받는 데는 시간이 걸린다. 가용성에 관계된 수치들👉 고가용성 (hign availability)시스템이 오랜 시간 동안 지속적으로 중단 없이 운영될 수 있는 능력을 지칭하는 용어이다. 대부분의 서비스는 99%에서 100% 사이의 값을 갖는다. Flow1. 문제 이해 및 설계 범위 확정 - 시스템에서 전반적으로 달성해야 할 목표와 기능 범위 확인- 전체 설계의 개략적 청사진 마련 2. 개략적인 설..
[대규모 시스템 설계 기초 1] 1장 - 사용자 수에 따른 규모 확장성
·
ETC
그동안 쌓여왔던 내 궁금증을 풀어줄 책 !! 좋은 기회로 읽게 되었다 ! 가상 면접 사례로 배우는 대규모 시스템 설계 기초 | 알렉스 쉬 - 교보문고가상 면접 사례로 배우는 대규모 시스템 설계 기초 | 페이스북의 뉴스 피드나 메신저,유튜브, 구글 드라이브 같은 대규모 시스템은 어떻게 설계할까? IT 경력자라도 느닷없이 대규모 시스템을 설product.kyobobook.co.kr 1장에서는 규모 확장성과 관계된 설계 문제를 푸는 데 쓰일 지식들을 설명하고 있다. 단일 서버에서의 웹 서비스 흐름대규모 시스템을 설계하기 위해서 우선 단일 서버에서의 흐름을 이해할 수 있어야 한다. 책에서 설명하고 있는 흐름을 요약해보자면 다음과 같다. 1. 사용자는 도메인 이름(api.mysite.com)을 이용하여 웹사..
[토비의 스프링 3.1 Vol. 1] 1장 - 오브젝트와 의존관계
·
Java & Spring
프로젝트에서 만난 팀원들과 북스터디를 하게 되었다. 이 책은 쓰레기 코드에 대한 의문을 갖고 개선해나가는 과정에서의 사고를 보여주며, 어떤 코드가 좋은 코드일 지 스스로 생각해볼 수 있도록 돕는다. 토비의 스프링 3.1 세트 | 이일민 - 교보문고토비의 스프링 3.1 세트 | 애플리케이션 아키텍처 설계부터 프레임워크 제작까지 다룬 스프링 가이드북!『토비의 스프링 3.1 세트』는 스프링을 처음 접하거나 스프링을 경험했지만 스프링이 어product.kyobobook.co.kr 내용을 정리해뒀는데, 문제가 되면 삭제하겠습니다! 댓글 달아주세요 ~1.1 초난감 DAOpublic class User { String id; String name; String password; public S..
[DB] Index 자료구조 비교 (B-Tree, B+Tree)
·
Database
Index 자료구조데이터베이스의 조회 성능을 높이기 위해 인덱스라는 기능이 제공된다. 인덱스를 구현하는 대표적인 자료구조로 B-Tree, B+Tree가 있다. 비슷해보이지만 이 둘은 몇가지 차이점이 있다.B-Tree 인덱스B-Tree는 자식 2개만을 갖는 이진 트리(Binary Tree)를 확장하여 N개의 자식을 가질 수 있도록 고안된 것이다. 그리고 좌우 자식 간의 균형이 맞지 않을 경우에는 매우 비효율적이라, 항상 균형을 맞추는 Balanced Tree 종류 중 하나이다. B-Tree는 최상위에 1개의 노드만 존재하는데, 이를 루트 노드(Root Node)라고 한다. 최하위 노드는 리프 노드(Leaf Node)라고 하며, 루트 노드와 리프 노드 사이에 존재하는 중간 노드는 브랜치 노드(Branch ..
REST 제약 조건
·
CS 면접 준비
REST는 Representational State Transfer의 약자로 클라이언트와 서버 간 표현으로 해당 자원의 상태를 주고 받는 방법을 정의한 소프트웨어 아키텍처 스타일이다. REST 형식을 따른 시스템을 RESTful 이라고 부른다. 또한, REST 아키텍처 스타일을 따르는 Web API를 REST API라고 한다. REST는 HTTP 표준을 기반으로 구현한다. 웹에 존재하는 모든 자원에 HTTP URI를 부여해 자원을 명시하고, HTTP Method를 통해 해당 자원에 대한 CRUD를 적용하는 방법론이다. REST난 6가지 제약 조건이 있으며, 이 제약 조건들을 모두 잘 지킬 경우 웹 서비스를 RESTful하다고 할 수 있다.1. Client - Server클라이언트는 서버의 리소스 URI만..
[OS] 프로그램, 프로세스, 스레드의 차이점
·
CS 면접 준비
1. 프로그램(Program) vs 프로세스(Process)프로그램 : 디스크 상의 실행 가능한 파일로, 컴퓨터에서 실행되기 전에 저장된 코드.프로세스 : 운영체제 입장에서 하나의 작업 단위, 프로그램이 메모리에 로드되어 실행 중인 상태. 예를 들어, 하나의 프로그램을 여러 번 구동하면 여러 개의 프로세스가 메모리 상에서 실행되는 것이다.2. 프로세스 관리OS의 주요 기능 중 하나는 프로세스 관리이다. 한 번에 하나의 프로세스만 실행한다면, 처리 효율이 떨어질 수 있다. 이를 위해 OS는 여러 프로세스를 동시에 관리하고 실행할 수 있도록 멀티태스킹을 지원한다. OS는 이를 위해 프로세스의 상태를 관리하며, 프로세스간의 자원 공유와 효율적인 실행을 위한 스케줄링 및 동기화 기능을 제공하고 있다. 덕분에..