Skip to content

Commit 122b747

Browse files
update post thumbnail
1 parent 79db3a9 commit 122b747

File tree

412 files changed

+4456
-3088
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

412 files changed

+4456
-3088
lines changed

_posts/2023-04-29-좋은 테스트란 무엇인가.md

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,24 @@
11
---
2-
layout: post
3-
title: 좋은 테스트란 무엇인가
4-
description: 자동화된 테스트는 회귀 방지, 리팩터링 내성, 빠른 피드백, 유지 보수성의 네 가지 특성으로 평가됩니다. 회귀 방지와 리팩터링 내성은 테스트 정확도에 기여하며, 빠른 피드백과 유지 보수성은 테스트의 실행 효율성을 높입니다. 단위 테스트는 빠른 피드백을, 엔드 투 엔드 테스트는 회귀 방지를 중시하며, 통합 테스트는 이 둘의 중간입니다. 테스트 작성 시 블랙박스 방법을, 분석 시 화이트박스 방법을 권장합니다.
5-
categories: [스터디-테스트]
2+
layout: "post"
3+
title: "좋은 테스트란 무엇인가"
4+
description: "좋은 테스트는 회귀 방지, 리팩터링 내성, 빠른 피드백, 유지 보수성의 네 가지 특성으로 평가되며, 단위 테스트는 빠른 피\
5+
드백을, 엔드 투 엔드 테스트는 회귀 방지를 중시합니다. 테스트 작성 시 블랙박스 방법을, 분석 시 화이트박스 방법을 권장하며, 각 특성의 점수\
6+
는 서로 배타적이므로 최적의 조화를 이루는 것이 중요합니다."
7+
categories:
8+
- "스터디-테스트"
69
tags:
7-
[
8-
test,
9-
testing,
10-
테스트,
11-
테스트 특성,
12-
회귀 방지,
13-
리팩터링 내성,
14-
빠른 피드백,
15-
유지 보수성,
16-
]
17-
date: 2023-04-29 12:00:00 +0900
10+
- "test"
11+
- "testing"
12+
- "테스트"
13+
- "테스트 특성"
14+
- "회귀 방지"
15+
- "리팩터링 내성"
16+
- "빠른 피드백"
17+
- "유지 보수성"
18+
date: "2023-04-29 03:00:00 +0000"
19+
toc: true
20+
image:
21+
path: "/assets/thumbnails/2023-04-29-좋은 테스트란 무엇인가.jpg"
1822
---
1923

2024
단위테스트 (블라디미르 코리코프)

_posts/2023-04-30-사용자-수에-따른-규모-확장성-1.md

Lines changed: 22 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,27 @@
11
---
2-
layout: post
3-
title: 사용자 수에 따른 규모 확장성 (1) – 웹서버, 데이터베이스, 로드밸런서
4-
description: 사용자 수에 따른 규모 확장성을 다룬 이 글에서는 수백만 사용자를 지원하는 시스템 설계를 위한 기초 개념을 설명합니다. 단일 서버에서 시작하여, 웹 서버와 데이터베이스 서버를 분리해 독립적으로 확장하는 방법을 제시하며, 관계형 데이터베이스와 비관계형 데이터베이스의 특징을 비교합니다. 또한, 수직적 규모 확장(Scale Up)과 수평적 규모 확장(Scale Out)의 장단점을 설명하고, 로드밸런서를 통해 트래픽 부하를 고르게 분산시켜 가용성을 높이는 방법을 다룹니다.
5-
categories: [스터디-시스템 디자인]
2+
layout: "post"
3+
title: "사용자 수에 따른 규모 확장성 (1) – 웹서버, 데이터베이스, 로드밸런서"
4+
description: "사용자 수에 따른 규모 확장성을 다룬 이 글에서는 수백만 사용자를 지원하는 시스템 설계를 위한 기초 개념을 설명합니다. 단\
5+
일 서버에서 시작하여, 웹 서버와 데이터베이스 서버를 분리해 독립적으로 확장하는 방법을 제시하며, 관계형 데이터베이스와 비관계형 데이터베이스의\
6+
\ 특징을 비교합니다. 또한, 수직적 규모 확장(Scale Up)과 수평적 규모 확장(Scale Out)의 장단점을 설명하고, 로드밸런서를 통해\
7+
\ 트래픽 부하를 고르게 분산시켜 가용성을 높이는 방법을 다룹니다."
8+
categories:
9+
- "스터디-시스템 디자인"
610
tags:
7-
[
8-
시스템 디자인,
9-
System Design,
10-
데이터베이스,
11-
로드밸런서,
12-
수직적 규모 확장,
13-
수평적 규모 확장,
14-
Scale Up,
15-
Scale Out,
16-
서버,
17-
웹서버,
18-
]
19-
date: 2023-04-29 12:00:00 +0900
11+
- "시스템 디자인"
12+
- "System Design"
13+
- "데이터베이스"
14+
- "로드밸런서"
15+
- "수직적 규모 확장"
16+
- "수평적 규모 확장"
17+
- "Scale Up"
18+
- "Scale Out"
19+
- "서버"
20+
- "웹서버"
21+
date: "2023-04-29 03:00:00 +0000"
22+
toc: true
23+
image:
24+
path: "/assets/thumbnails/2023-04-30-사용자-수에-따른-규모-확장성-1.jpg"
2025
---
2126

2227
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - System Design Interview

_posts/2023-05-01-사용자-수에-따른-규모-확장성-2.md

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,25 @@
11
---
2-
layout: post
3-
title: 사용자 수에 따른 규모 확장성 (2) – 데이터베이스 다중화
4-
description: 사용자 수에 따른 규모 확장성을 위한 데이터베이스 다중화는 주(master)-부(slave) 관계를 통해 성능, 안정성, 가용성을 향상시킵니다. 읽기 연산은 부 서버에 분산되어 처리되며, 주 서버가 다운될 경우 부 서버가 새로운 주 서버로 전환됩니다. 이러한 구조는 데이터 복제 및 장애 대응을 용이하게 하지만, 서버 변경 시 접속 정보 관리의 복잡성이 증가할 수 있습니다.
5-
categories: [스터디-시스템 디자인]
2+
layout: "post"
3+
title: "사용자 수에 따른 규모 확장성 (2) – 데이터베이스 다중화"
4+
description: "사용자 수에 따른 규모 확장성을 위한 데이터베이스 다중화는 주(master)-부(slave) 관계를 통해 성능, 안정성,\
5+
\ 가용성을 향상시킵니다. 읽기 연산은 부 서버에 분산되어 처리되며, 주 서버가 다운될 경우 부 서버가 새로운 주 서버로 전환됩니다. 이러한 구\
6+
조는 데이터 복제 및 장애 대응을 용이하게 하지만, 서버 변경 시 접속 정보 관리의 복잡성이 증가할 수 있습니다."
7+
categories:
8+
- "스터디-시스템 디자인"
69
tags:
7-
[
8-
시스템 디자인,
9-
System Design,
10-
데이터베이스,
11-
데이터베이스 다중화,
12-
수직적 규모 확장,
13-
수평적 규모 확장,
14-
Scale Up,
15-
Scale Out,
16-
Replication,
17-
]
18-
date: 2023-05-01 12:00:00 +0900
10+
- "시스템 디자인"
11+
- "System Design"
12+
- "데이터베이스"
13+
- "데이터베이스 다중화"
14+
- "수직적 규모 확장"
15+
- "수평적 규모 확장"
16+
- "Scale Up"
17+
- "Scale Out"
18+
- "Replication"
19+
date: "2023-05-01 03:00:00 +0000"
20+
toc: true
21+
image:
22+
path: "/assets/thumbnails/2023-05-01-사용자-수에-따른-규모-확장성-2.jpg"
1923
---
2024

2125
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - System Design Interview

_posts/2023-05-01-사용자-수에-따른-규모-확장성-3.md

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,25 @@
11
---
2-
layout: post
3-
title: 사용자 수에 따른 규모 확장성 (3) – 캐시, CDN
4-
description: 사용자 수에 따른 대규모 시스템 설계에서 캐시와 CDN의 중요성을 다룹니다. 캐시는 데이터베이스의 부하를 줄이고 성능을 개선하며, 읽기 주도형 캐시 전략을 통해 데이터 접근을 최적화합니다. 캐시 사용 시 데이터 만료 정책과 일관성 유지, 장애 대처 방안이 중요하며, 적절한 캐시 메모리 크기와 데이터 방출 정책을 고려해야 합니다. CDN은 정적 콘텐츠를 효율적으로 전송해 사이트 로딩 시간을 단축시키고 성능을 향상시킵니다. 비용, 만료 시한 설정, 장애 대처 방안 및 콘텐츠 무효화 방법도 중요합니다.
5-
categories: [스터디-시스템 디자인]
2+
layout: "post"
3+
title: "사용자 수에 따른 규모 확장성 (3) – 캐시, CDN"
4+
description: "사용자 수에 따른 대규모 시스템 설계에서 캐시와 CDN의 중요성을 다룹니다. 캐시는 데이터베이스의 부하를 줄이고 성능을 개\
5+
선하며, 읽기 주도형 캐시 전략을 통해 데이터 접근을 최적화합니다. 캐시 사용 시 데이터 만료 정책과 일관성 유지, 장애 대처 방안이 중요하며\
6+
, 적절한 캐시 메모리 크기와 데이터 방출 정책을 고려해야 합니다. CDN은 정적 콘텐츠를 효율적으로 전송해 사이트 로딩 시간을 단축시키고 성능\
7+
을 향상시킵니다. 비용, 만료 시한 설정, 장애 대처 방안 및 콘텐츠 무효화 방법도 중요합니다."
8+
categories:
9+
- "스터디-시스템 디자인"
610
tags:
7-
[
8-
시스템 디자인,
9-
System Design,
10-
캐시,
11-
캐시 전략,
12-
읽기 주도형 캐시 전략,
13-
CDN,
14-
콘텐츠 전송 네트워크,
15-
무효화,
16-
]
17-
date: 2023-05-01 13:00:00 +0900
11+
- "시스템 디자인"
12+
- "System Design"
13+
- "캐시"
14+
- "캐시 전략"
15+
- "읽기 주도형 캐시 전략"
16+
- "CDN"
17+
- "콘텐츠 전송 네트워크"
18+
- "무효화"
19+
date: "2023-05-01 04:00:00 +0000"
20+
toc: true
21+
image:
22+
path: "/assets/thumbnails/2023-05-01-사용자-수에-따른-규모-확장성-3.jpg"
1823
---
1924

2025
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - System Design Interview

_posts/2023-05-03-사용자-수에-따른-규모-확장성-4.md

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,28 @@
11
---
2-
layout: post
3-
title: 사용자 수에 따른 규모 확장성 (4) – 무상태 웹 계층, 데이터 센터
4-
description: 사용자 수에 따른 규모 확장성을 위해 무상태 웹 계층과 데이터 센터 아키텍처를 설계하는 방법을 다룹니다. 무상태 웹 계층은 상태 정보를 지속성 저장소에 보관하여 수평적 확장을 용이하게 하며, 클라이언트 요청이 어떤 서버로도 전달될 수 있어 안정적입니다. 데이터 센터는 지리적 라우팅을 통해 사용자에게 가장 가까운 서버로 트래픽을 안내하며, 장애 발생 시 다른 데이터 센터로 자동 전환됩니다. 이를 위해 트래픽 우회, 데이터 동기화, 테스트 및 배포의 기술적 난제를 해결해야 합니다.
5-
categories: [스터디-시스템 디자인]
2+
layout: "post"
3+
title: "사용자 수에 따른 규모 확장성 (4) – 무상태 웹 계층, 데이터 센터"
4+
description: "사용자 수에 따른 규모 확장성을 위해 무상태 웹 계층과 데이터 센터 아키텍처를 설계하는 방법을 다룹니다. 무상태 웹 계층은\
5+
\ 상태 정보를 지속성 저장소에 보관하여 수평적 확장을 용이하게 하며, 클라이언트 요청이 어떤 서버로도 전달될 수 있어 안정적입니다. 데이터 센\
6+
터는 지리적 라우팅을 통해 사용자에게 가장 가까운 서버로 트래픽을 안내하며, 장애 발생 시 다른 데이터 센터로 자동 전환됩니다. 이를 위해 트래\
7+
픽 우회, 데이터 동기화, 테스트 및 배포의 기술적 난제를 해결해야 합니다."
8+
categories:
9+
- "스터디-시스템 디자인"
610
tags:
7-
[
8-
시스템 디자인,
9-
System Design,
10-
무상태 아키텍처,
11-
JWT,
12-
상태 의존적인 아키텍처,
13-
Sticky Session,
14-
세션,
15-
세션 유지,
16-
데이터 센터,
17-
지리적 라우팅,
18-
geoDNS,
19-
]
20-
date: 2023-05-03 12:00:00 +0900
11+
- "시스템 디자인"
12+
- "System Design"
13+
- "무상태 아키텍처"
14+
- "JWT"
15+
- "상태 의존적인 아키텍처"
16+
- "Sticky Session"
17+
- "세션"
18+
- "세션 유지"
19+
- "데이터 센터"
20+
- "지리적 라우팅"
21+
- "geoDNS"
22+
date: "2023-05-03 03:00:00 +0000"
23+
toc: true
24+
image:
25+
path: "/assets/thumbnails/2023-05-03-사용자-수에-따른-규모-확장성-4.jpg"
2126
---
2227

2328
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - System Design Interview

_posts/2023-05-04-사용자-수에-따른-규모-확장성-5.md

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,24 @@
11
---
2-
layout: post
3-
title: 사용자 수에 따른 규모 확장성 (5) – 메시지 큐, 로그, 메트릭, 자동화, 데이터베이스의 규모 확장
4-
description: 사용자 수에 따른 규모 확장성을 다루는 이 글에서는 메시지 큐, 로그, 메트릭, 자동화, 데이터베이스의 확장 방법을 설명합니다. 메시지 큐는 비동기 통신을 통해 시스템 간 결합을 느슨하게 하여 안정성을 높이며, 로그와 메트릭은 시스템의 성능과 오류를 모니터링하는 데 중요합니다. 데이터베이스는 수직적 및 수평적 확장을 통해 규모를 늘릴 수 있으며, 샤딩 전략이 필요합니다. 시스템 확장을 위해서는 무상태 웹 계층, 다중화, 데이터 센터 지원, CDN 활용, 독립적 서비스 분할, 지속적 모니터링 및 자동화 도구 사용이 필수적입니다.
5-
categories: [스터디-시스템 디자인]
6-
tags: [시스템 디자인, System Design, 메시지 큐, 로그, 메트릭, 자동화, 샤딩]
7-
date: 2023-05-04 12:00:00 +0900
2+
layout: "post"
3+
title: "사용자 수에 따른 규모 확장성 (5) – 메시지 큐, 로그, 메트릭, 자동화, 데이터베이스의 규모 확장"
4+
description: "사용자 수에 따른 규모 확장성을 다루는 이 글에서는 메시지 큐, 로그, 메트릭, 자동화, 데이터베이스의 확장 방법을 설명합\
5+
니다. 메시지 큐는 비동기 통신을 통해 시스템 간 결합을 느슨하게 하여 안정성을 높이며, 로그와 메트릭은 시스템의 성능과 오류를 모니터링하는 데\
6+
\ 중요합니다. 데이터베이스는 수직적 및 수평적 확장을 통해 규모를 늘릴 수 있으며, 샤딩 전략이 필요합니다. 시스템 확장을 위해서는 무상태 웹\
7+
\ 계층, 다중화, 데이터 센터 지원, CDN 활용, 독립적 서비스 분할, 지속적 모니터링 및 자동화 도구 사용이 필수적입니다."
8+
categories:
9+
- "스터디-시스템 디자인"
10+
tags:
11+
- "시스템 디자인"
12+
- "System Design"
13+
- "메시지 큐"
14+
- "로그"
15+
- "메트릭"
16+
- "자동화"
17+
- "샤딩"
18+
date: "2023-05-04 03:00:00 +0000"
19+
toc: true
20+
image:
21+
path: "/assets/thumbnails/2023-05-04-사용자-수에-따른-규모-확장성-5.jpg"
822
---
923

1024
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - System Design Interview

_posts/2023-05-05-시스템-규모-추정하기.md

Lines changed: 22 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,27 @@
11
---
2-
layout: post
3-
title: 시스템 규모 추정하기
4-
description: 대규모 시스템 설계의 기초를 배우는 '시스템 규모 추정하기' 포스트에서는 개략적인 규모 추정의 중요성과 2의 제곱수 단위를 활용한 데이터 볼륨 표현, 응답 지연 값, 디스크 탐색, 고가용성 관련 수치 등을 다룹니다. 또한, 트위터의 QPS 및 저장소 요구량 추정 예시와 함께 시스템 디자인 면접에서 유용한 팁을 제공합니다.
5-
categories: [스터디-시스템 디자인]
2+
layout: "post"
3+
title: "시스템 규모 추정하기"
4+
description: "대규모 시스템 설계의 기초를 배우는 '시스템 규모 추정하기' 포스트에서는 개략적인 규모 추정의 중요성과 2의 제곱수 단위를\
5+
\ 활용한 데이터 볼륨 표현, 응답 지연 값, 디스크 탐색, 고가용성 관련 수치 등을 다룹니다. 또한, 트위터의 QPS 및 저장소 요구량 추정\
6+
\ 예시와 함께 시스템 디자인 면접에서 유용한 팁을 제공합니다."
7+
categories:
8+
- "스터디-시스템 디자인"
69
tags:
7-
[
8-
시스템 디자인,
9-
System Design,
10-
시스템 규모 추정,
11-
개략적인 규모 추정,
12-
시스템 디자인 면접,
13-
면접 팁,
14-
지연 속도,
15-
사이즈 단위,
16-
가용성 수치,
17-
디스크 탐색,
18-
임계 영역,
19-
]
20-
date: 2023-05-05 12:00:00 +0900
10+
- "시스템 디자인"
11+
- "System Design"
12+
- "시스템 규모 추정"
13+
- "개략적인 규모 추정"
14+
- "시스템 디자인 면접"
15+
- "면접 팁"
16+
- "지연 속도"
17+
- "사이즈 단위"
18+
- "가용성 수치"
19+
- "디스크 탐색"
20+
- "임계 영역"
21+
date: "2023-05-05 03:00:00 +0000"
22+
toc: true
23+
image:
24+
path: "/assets/thumbnails/2023-05-05-시스템-규모-추정하기.jpg"
2125
---
2226

2327
가상 면접 사례로 배우는 대규모 시스템 설계 기초 - System Design Interview

_posts/2023-05-09-운영체제-3장-프로세스-연습문제-풀이.md

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
11
---
2-
layout: post
3-
title: 운영체제 3장 프로세스 - 연습문제 풀이
4-
description: 운영체제 3장 프로세스에 대한 연습문제 풀이로, C 언어를 이용한 프로세스 생성 및 관리에 대한 실습을 다루며, 부모와 자식 프로세스 간의 상태 공유, 병행 처리의 문제, 문맥 교환, RPC 메커니즘의 "정확히 한 번" 시맨틱 구현 등 다양한 주제를 설명합니다.
5-
categories: [스터디-운영체제]
6-
tags: [운영체제, Operating System, 공룡책, 연습문제, 프로세스]
7-
date: 2023-05-09 12:00:00 +0900
2+
layout: "post"
3+
title: "운영체제 3장 프로세스 - 연습문제 풀이"
4+
description: "운영체제 3장 프로세스에 대한 연습문제 풀이로, C 언어를 이용한 프로세스 생성 및 관리에 대한 실습을 다루며, 부모와 자\
5+
식 프로세스 간의 상태 공유, 병행 처리의 문제, 문맥 교환, RPC 메커니즘의 \"정확히 한 번\" 시맨틱 구현 등 다양한 주제를 설명합니다."
6+
categories:
7+
- "스터디-운영체제"
8+
tags:
9+
- "운영체제"
10+
- "Operating System"
11+
- "공룡책"
12+
- "연습문제"
13+
- "프로세스"
14+
date: "2023-05-09 03:00:00 +0000"
15+
toc: true
16+
image:
17+
path: "/assets/thumbnails/2023-05-09-운영체제-3장-프로세스-연습문제-풀이.jpg"
818
---
919

1020
공룡책 (Operating System Concepts) 10th

_posts/2023-05-09-운영체제-4장-스레드와-병행성-연습문제-풀이.md

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,22 @@
11
---
2-
layout: post
3-
title: 운영체제 4장 스레드와 병행성 - 연습문제 풀이
4-
description: 운영체제 4장 스레드와 병행성에 대한 연습문제 풀이로, 다중 스레딩의 성능 이점, Amdahl의 법칙을 통한 속도 향상 계산, 작업 병렬 처리와 데이터 병렬 처리의 구분, 사용자 수준 스레드와 커널 수준 스레드의 차이점, 커널에서의 문맥 교환 과정, 스레드 생성 시 사용되는 자원, 그리고 다대다 모델과 실시간 스레드의 LWP 바인딩 필요성에 대해 다룹니다.
5-
categories: [스터디-운영체제]
6-
tags: [운영체제, Operating System, 공룡책, 연습문제, 스레드, 병행성]
7-
date: 2023-05-09 13:00:00 +0900
2+
layout: "post"
3+
title: "운영체제 4장 스레드와 병행성 - 연습문제 풀이"
4+
description: "운영체제 4장 스레드와 병행성에 대한 연습문제 풀이로, 다중 스레딩의 성능 이점, Amdahl의 법칙을 통한 속도 향상 계\
5+
산, 작업 병렬 처리와 데이터 병렬 처리의 구분, 사용자 수준 스레드와 커널 수준 스레드의 차이점, 커널에서의 문맥 교환 과정, 스레드 생성 시\
6+
\ 사용되는 자원, 그리고 다대다 모델과 실시간 스레드의 LWP 바인딩 필요성에 대해 다룹니다."
7+
categories:
8+
- "스터디-운영체제"
9+
tags:
10+
- "운영체제"
11+
- "Operating System"
12+
- "공룡책"
13+
- "연습문제"
14+
- "스레드"
15+
- "병행성"
16+
date: "2023-05-09 04:00:00 +0000"
17+
toc: true
18+
image:
19+
path: "/assets/thumbnails/2023-05-09-운영체제-4장-스레드와-병행성-연습문제-풀이.jpg"
820
---
921

1022
공룡책 (Operating System Concepts) 10th

0 commit comments

Comments
 (0)