Zero to Hero
대규모 서비스를 지탱하는 기술 04
Review 2021. 1. 12. 17:45

클라우드의 장단점 장점 확장의 유연성 저가로 사용하면서 확장해나갈 수 있다. 단점 획일적인 호스트 사양(메모리 상한선, 느린 I/O) 애매한 로드밸런서 때때로 멈춘다 자체 구축 인프라의 장단점 장점 하드웨어 구성을 유연하게 할 수 있다. 서비스로부터의 요청에 유연하게 대응할 수 있다. 병목현상을 제어할 수 있다. 다중성 확보 원리 서버를 여러 대 늘어놓는다. 1, 2대 정지하더라도 충분히 처리할 수 있도록 해둔다. 로드밸런서로 페일오버 / 페일백 멀티 마스터 VRRP(Virtual Router Redundancy Protocol) 기반으로 감시하면서 다중의 마스터를 두는 MySQL 기법 Active 마스터와 Stanby 마스터를 운용해 Active 마스터에 장애가 나면 Stanby 마스터를 Active ..

대규모 서비스를 지탱하는 기술 03
Review 2021. 1. 12. 17:31

B+ 트리 vs 이분 트리 1. 이분 트리는 노드가 반드시 하나로 정해져 있다. 반면에 B트리는 유동적으로 개수를 조정할 수 있다. 2. 노드의 데이터 개수를 유동적으로 조정해 노드 하나의 크기를 4KB 등으로 고정할 수 있다. 즉 각 노드의 크기를 적당한 사이즈로 정할 수 있다. 3. 다시 말해서 노드 1개를 디스크 1블록만큼 할당하면 B트리로 디스크에 저장했을 때 각 노드를 딱 한 블록만큼으로 해서 저장할 수 있다. 이는 디스크 Seek을 줄여 탐색 속도를 빠르게 한다. 4. 결론적으로 인덱스 트리를 순회할 때 디스크 Seek 발생 횟수를 최소화할 수 있다. 한번 읽은 데이터는 메모리에 캐싱되기 때문에 같은 노드 내의 데이터는 디스크 Seek 없이 탐색할 수 있다. 5. 반면에 이분 트리는 특정 노드..

대규모 서비스를 지탱하는 기술 02
Review 2021. 1. 12. 17:20

I/O 부하를 줄이는 방법 1. 캐시를 전제로 한 I/O 줄이는 방법 데이터 규모 CPU 부하분산은 단순히 스케일 업 하는 것으로 해결이 가능하다. -> I/O 분산에는 국소성을 고려한다. 3. 단순히 대수만 늘려서는 확장성을 확보할 수 없다. 애초에 캐시 용량이 부족해서 늘렸는데 그 부족한 부분도 그대로 동일하게 늘려가게 된다. 결국 액세스 한 순간에 느려지는 것은 변함이 없다. 캐싱할 수 없는 비율은 변함없이 그대로 간다. 국소성을 고려한 분산 액세스 패턴을 고려한 분산, 캐싱할 수 없는 부분이 사라진다. ..

대규모 서비스를 지탱하는 기술 01
Review 2021. 1. 12. 16:34

소규모 서비스와 대규모 서비스의 차이 1. 확장성 확보, 부하분산 필요 스케일 업이 아닌 스케일 아웃으로 진행된 느 확장의 경우 요구되는 서버, DB 간 동기화 이슈 해결 2. 다중성 확보 특정 서버가 고장 나거나 성능이 저하되더라도 서비스를 계속할 수 있는 구성으로 할 필요가 있다. 대규모 서비스일수록 잠깐의 기능 정지로 인해 많은 손실을 가져오기 때문이다. 3. 효율적 운용 필요 서버가 100대를 넘어갈 때 현재 서버들의 상태를 파악할 수 있어야 하고, 상태에 따라서 적절한 조치를 빠르게 취할 수 있어야 한다. 최소한의 인력으로 대규모 시스템을 건강한 상태로 유지하는 것이 필요하다. 4. 개발자 수, 개발 방법의 변화 표준화를 위한 교육 및 팀 매니지먼트가 필요하다. 5. 대규모 데이터의 처리 가장 ..

article thumbnail
SSAFY(삼성 청년 SW 아카데미) 4기 교육 후기(입과부터 수료까지)
Career 2021. 1. 11. 09:31

2020년 7월부터 시작한 SSAFY 4기의 입과 과정부터 1학기 수료까지의 후기입니다. 저는 4년제 컴퓨터공학 전공자입니다. 입과 과정 서류 전형 올해 상반기 취업을 실패하고, 부트캠프를 알아보던 중에 싸 피에 대해 알게 되어 취업활동과 병행하면서 준비했습니다. 제가 작성한 자소서는 다음과 같은 방향이었던 걸로 기억합니다. 1. 왜 지원하게 되었는지... 2. 왜 취업을 하지 못했는지, 어떤 점이 부족한지... 3. 교육과정을 통해 어떤 역량을 갖추고 싶은지... 실제로 상반기 취업준비를 하면서 느꼈던 부족함을 진솔하게 적었습니다. 적성 검사 적성검사는 인적성 수리영역과 비슷한 스타일의 문제가 주어졌습니다. 코딩 문제가 아니라 오히려 수학에 가까웠습니다. 주어진 조건대로 계산을 하거나 규칙대로 시뮬레이..

1781번: 컵라면 (Python)
Algorithm 2021. 1. 10. 18:26

문제 링크 1781번: 컵라면 상욱 조교는 동호에게 N개의 문제를 주고서, 각각의 문제를 풀었을 때 컵라면을 몇 개 줄 것인지 제시 하였다. 하지만 동호의 찌를듯한 자신감에 소심한 상욱 조교는 각각의 문제에 대해 데드라 www.acmicpc.net 접근 방법 1. N이 200,000이기 때문에 순열로 모든 경우를 고려하는 것은 시간 초과 2. 특정 상황에서 가장 큰 컵라면 값을 뽑아내야 하기 때문에 우선순위 큐 사용 3. 입력된 문제를 시간순 오름차순, 컵라면 값 내림차순 정렬해 deque에 넣는다. 4. deque에서 값을 뽑아내면서 현재 시간보다 데드라인이 크거나 같은 문제의 컵라면 값을 우선순위 큐에 넣어줌 5. 만약에 우선순위 큐의 peek 값이 현재 문제의 컵라면 값보다 작다면 우선순위 큐에서 ..