대규모 서비스를 지탱하는 기술 03
·
Review
B+ 트리 vs 이분 트리 1. 이분 트리는 노드가 반드시 하나로 정해져 있다. 반면에 B트리는 유동적으로 개수를 조정할 수 있다. 2. 노드의 데이터 개수를 유동적으로 조정해 노드 하나의 크기를 4KB 등으로 고정할 수 있다. 즉 각 노드의 크기를 적당한 사이즈로 정할 수 있다. 3. 다시 말해서 노드 1개를 디스크 1블록만큼 할당하면 B트리로 디스크에 저장했을 때 각 노드를 딱 한 블록만큼으로 해서 저장할 수 있다. 이는 디스크 Seek을 줄여 탐색 속도를 빠르게 한다. 4. 결론적으로 인덱스 트리를 순회할 때 디스크 Seek 발생 횟수를 최소화할 수 있다. 한번 읽은 데이터는 메모리에 캐싱되기 때문에 같은 노드 내의 데이터는 디스크 Seek 없이 탐색할 수 있다. 5. 반면에 이분 트리는 특정 노드..
대규모 서비스를 지탱하는 기술 02
·
Review
I/O 부하를 줄이는 방법 1. 캐시를 전제로 한 I/O 줄이는 방법 데이터 규모 CPU 부하분산은 단순히 스케일 업 하는 것으로 해결이 가능하다. -> I/O 분산에는 국소성을 고려한다. 3. 단순히 대수만 늘려서는 확장성을 확보할 수 없다. 애초에 캐시 용량이 부족해서 늘렸는데 그 부족한 부분도 그대로 동일하게 늘려가게 된다. 결국 액세스 한 순간에 느려지는 것은 변함이 없다. 캐싱할 수 없는 비율은 변함없이 그대로 간다. 국소성을 고려한 분산 액세스 패턴을 고려한 분산, 캐싱할 수 없는 부분이 사라진다. ..
대규모 서비스를 지탱하는 기술 01
·
Review
소규모 서비스와 대규모 서비스의 차이 1. 확장성 확보, 부하분산 필요 스케일 업이 아닌 스케일 아웃으로 진행된 느 확장의 경우 요구되는 서버, DB 간 동기화 이슈 해결 2. 다중성 확보 특정 서버가 고장 나거나 성능이 저하되더라도 서비스를 계속할 수 있는 구성으로 할 필요가 있다. 대규모 서비스일수록 잠깐의 기능 정지로 인해 많은 손실을 가져오기 때문이다. 3. 효율적 운용 필요 서버가 100대를 넘어갈 때 현재 서버들의 상태를 파악할 수 있어야 하고, 상태에 따라서 적절한 조치를 빠르게 취할 수 있어야 한다. 최소한의 인력으로 대규모 시스템을 건강한 상태로 유지하는 것이 필요하다. 4. 개발자 수, 개발 방법의 변화 표준화를 위한 교육 및 팀 매니지먼트가 필요하다. 5. 대규모 데이터의 처리 가장 ..
SSAFY(삼성 청년 SW 아카데미) 4기 교육 후기(입과부터 수료까지)
·
Career
2020년 7월부터 시작한 SSAFY 4기의 입과 과정부터 1학기 수료까지의 후기입니다. 저는 4년제 컴퓨터공학 전공자입니다. 입과 과정 서류 전형 올해 상반기 취업을 실패하고, 부트캠프를 알아보던 중에 싸 피에 대해 알게 되어 취업활동과 병행하면서 준비했습니다. 제가 작성한 자소서는 다음과 같은 방향이었던 걸로 기억합니다. 1. 왜 지원하게 되었는지... 2. 왜 취업을 하지 못했는지, 어떤 점이 부족한지... 3. 교육과정을 통해 어떤 역량을 갖추고 싶은지... 실제로 상반기 취업준비를 하면서 느꼈던 부족함을 진솔하게 적었습니다. 적성 검사 적성검사는 인적성 수리영역과 비슷한 스타일의 문제가 주어졌습니다. 코딩 문제가 아니라 오히려 수학에 가까웠습니다. 주어진 조건대로 계산을 하거나 규칙대로 시뮬레이..
1781번: 컵라면 (Python)
·
Algorithm
문제 링크 1781번: 컵라면 상욱 조교는 동호에게 N개의 문제를 주고서, 각각의 문제를 풀었을 때 컵라면을 몇 개 줄 것인지 제시 하였다. 하지만 동호의 찌를듯한 자신감에 소심한 상욱 조교는 각각의 문제에 대해 데드라 www.acmicpc.net 접근 방법 1. N이 200,000이기 때문에 순열로 모든 경우를 고려하는 것은 시간 초과 2. 특정 상황에서 가장 큰 컵라면 값을 뽑아내야 하기 때문에 우선순위 큐 사용 3. 입력된 문제를 시간순 오름차순, 컵라면 값 내림차순 정렬해 deque에 넣는다. 4. deque에서 값을 뽑아내면서 현재 시간보다 데드라인이 크거나 같은 문제의 컵라면 값을 우선순위 큐에 넣어줌 5. 만약에 우선순위 큐의 peek 값이 현재 문제의 컵라면 값보다 작다면 우선순위 큐에서 ..
[Samsung] 삼성전자(리서치) 2020년 하반기 공채 SW 개발 직군 후기(자소서, 코딩테스트, 면접)
·
Career
삼성전자 2020년 하반기 공채 SW 개발 직군 후기입니다. 삼성그룹은 다양한 계열사가 동시에 공채를 진행했고, 저는 삼성전자 CE/IM 부문 중 삼성 리서치 SW 개발 직군에 지원했습니다. 자기소개서 삼성을 비롯한 대기업의 자소서는 많은 사항을 작성해야 합니다. 또 대학생의 경우 본인이 이수한 모든 교과목에 대한 학점과 성적을 입력하는 것이 특징입니다. 자기소개서 문항은 특별히 바뀌지 않는 것 같습니다. 특이한 점이 있다면 성장배경에 대해서 작성하는 문항이 있습니다. 뻔하지 않으면서도 이상하지 않게 작성하는 것이 어려웠습니다. 또 지원동기에 대해서도 개연성 있게 작성하는 것이 쉽지 않았습니다. 삼성 그룹은 대부분의 분야에서 1등을 하고 있기 때문에 좋은 회사이고, 그렇기 때문에 지원동기를 작성하는 게 ..