2025/05
논문으로 다시 이해한 CAP 정리
2025/04
태니지먼트 검사 후기(3) - 태도
B-Tree VS LSM Tree
태니지먼트 검사 후기(2) - 강점
효과적인 방법, 최선의 결과
태니지먼트 검사 후기(1) - 욕구와 재능
2025/03
전략적 설계: 도메인 지식 찾아내기
3.1. 저장소와 검색: 데이터베이스를 강력하게 만드는 데이터 구조
2025/02
전략적 설계: 비즈니스 도메인 분석하기
4. 발송 실패한 메시지 다시 보내기
2.3 데이터 모델과 질의 언어 - 그래프형 데이터 모델
FakeTimers로 타이머 API 테스트 코드를 작성해보자
3. 구독자가 없는 채널 관리하기
2.2 데이터 모델과 질의 언어 - 데이터를 위한 질의 언어
2025/01
2. 발행-구독 패턴에서 발행자는 어떤 의미일까?
1. 발행-구독 패턴을 통해 결합을 개선해보자
2.1 데이터 모델과 질의 언어 - 관계형 모델과 문서 모델
웹소켓 시스템의 성능 개선하기
1. 신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 어플리케이션
2024/12
13. 증권 거래소
최종 팀 프로젝트 회고
12. 전자 지갑
2024/11
11. 결제 시스템
10. 실시간 게임 순위표
인터페이스 의존성 주입
9. S3와 유사한 객체 저장소
아키텍처 관점에서 ORM을 사용하는 이유
2024/10
멤버십 2차 학습 스프린트 회고
8. 분산 메일 서비스
7. 호텔 예약 시스템
6. 광고 클릭 이벤트 집계
2024/09
멤버십 1차 학습스프린트 회고
5. 지표 모니터링 및 경보 시스템
멤버십 과정 3주차 회고
4. 분산 메시지 큐
멤버십 과정 2주차 회고
2024/08
멤버십 과정 1주차 회고
3. 구글 맵
2. 주변 친구
부스트캠프 웹・모바일 9기 챌린지까지 회고
챌린지 과정 4주차 회고
Socket
1. 근접성 서비스
챌린지 과정 3주차 회고
2024/07
Git 객체로 살펴보는 add와 commit
챌린지 과정 2주차 회고
Jest를 활용한 유닛 테스트
챌린지 과정 1주차 회고
14. 유튜브 설계
15. 구글 드라이브 설계
13. 검색어 자동완성 시스템
12. 채팅 시스템 설계
11. 뉴스 피드 시스템 설계
2024/06
10. 알람 시스템 설계
9. 웹 크롤러 설계
8. URL 단축기 설계
7. 분산 시스템을 위한 유일 ID 생성기 설계
2024/05
6. 키-값 저장소 설계
5. 안정 해시 설계
4. 처리율 제한 장치의 설계
3. 시스템 설계 면접 공략법
2024/04
2. 개략적인 규모 추정
1. 사용자 수에 따른 규모 확장성
34. 빠져있는 장: By Simon Brown
33. 사례연구: 비디오 판매
32. 프레임워크는 세부사항이다
31. 웹은 세부사항이다
30. 데이터베이스는 세부사항이다
28. 테스트 경계
27. 크고 작은 모든 서비스들
26. 메인 컴포넌트
25. 계층과 경계
24. 부분적 경계
23. 프레젠터와 험블 객체
22. 클린 아키텍처
21. 소리치는 아키텍처
2024/03
20. 업무 규칙
19. 정책과 수준
18. 경계 해부학
17. 경계: 선 긋기
[MovieLens] 2. DB 설계
[MovieLens] 1. 데이터 살펴보기
16. 독립성
15. 아키텍처란?
14. 컴포넌트 결합
13. 컴포넌트 응집도
12. 컴포넌트
11. DIP: 의존성 역전 원칙
10. ISP: 인터페이스 분리 원칙
9. LSP: 리스코프 치환 원칙
8. 개방 폐쇄 원칙
2024/02
7. 단일 책임 원칙
6. 함수형 프로그래밍
5. 객체 지향 프로그래밍
4. 구조적 프로그래밍
3. 패러다임 개요
2. 두 가지 가치에 대한 이야기
1. 설계와 아키텍처란?
2024/01
14. 다양한 패턴 빠르게 알아보기 - 프로토타입 패턴
14. 다양한 패턴 빠르게 알아보기 - 비지터 패턴
14. 다양한 패턴 빠르게 알아보기 - 메멘토 패턴
14. 다양한 패턴 빠르게 알아보기 - 중재자 패턴
14. 다양한 패턴 빠르게 알아보기 - 인터프리터 패턴
14. 다양한 패턴 빠르게 알아보기 - 플라이웨이트 패턴
14. 다양한 패턴 빠르게 알아보기 - 책임 연쇄 패턴
14. 다양한 패턴 빠르게 알아보기 - 빌더 패턴
14. 다양한 패턴 빠르게 알아보기 - 브리지 패턴
13. 패턴과 행복하게 살아가기 - 실전 디자인 패턴
12. 패턴을 모아 패턴 만들기 - 복합 패턴
2023/12
11. 객체 접근 제어하기 - 프록시 패턴
10. 객체의 상태 바꾸기 - 상태 패턴
9. 컬렉션 잘 관리하기 - 반복자 패턴과 컴포지트 패턴
2023/11
8. 알고리즘 캡슐화하기 - 탬플릿 메소드 패턴
7. 어댑터 패턴과 퍼사드 패턴
6. 커맨드 패턴 - 호출 캡슐화하기
5. 싱글턴 패턴
2023/10
4. 팩토리 패턴
3. 데코레이터 패턴
2023/09
2. 옵저버 패턴
1. 디자인 패턴 소개와 전략 패턴
16.7.4 복제 고급 설정 - 필터링된 복제(Filterd Replication)
16.7.3 복제 고급 설정 - 크래시 세이프 복제(Crash-safe Replication)
16.7.2 복제 고급 설정 - 멀티 스레드 복제
16.7.1 복제 고급 설정 - 지연된 복제
16.6 복제 - 복제 토폴로지
16.5 복제 - 복제 동기화 방식
2023/08
2. 깃 브랜치 전략과 CI/CD
16.3.3 복제 (2) - 바이너리 로그 파일 위치 기반 복제
1. Docker를 이용한 컨테이너 배포
16. 복제 (1)
13.3 파티션 - MySQL 파티션의 종류
13.2 파티션 - 주의사항
13.1 파티션
쿠버네티스 튜토리얼 - 1. Hello Minikube
11.8 쿼리 작성 및 최적화 - 쿼리 성능 테스트
11.7.9 스키마 조작(DDL) - 활성 트랜잭션 조회
11.7.8 스키마 조작(DDL) - 프로세스 조회 및 강제 종료
11.7.7 스키마 조작(DDL) - 테이블 변경 묶음 실행
11.7.6 스키마 조작(DDL) - 인덱스 변경
11.7.5 스키마 조작(DDL) - 컬럼 변경
11.7.4 스키마 조작(DDL) - 테이블 변경
11.7.3 스키마 조작(DDL) - 테이블 스페이스 변경
11.7.2 스키마 조작(DDL) - 데이터베이스 변경
11.7.1 스키마 조작(DDL) - 온라인 DDL
11.6 쿼리 작성 및 최적화 - UPDATE와 DELETE
11.5 쿼리 작성 및 최적화 - INSERT
11.4 쿼리 작성 및 최적화 - SELECT(5) - 잠금을 사용하는 SELECT
2023/07
11.4 쿼리 작성 및 최적화 - SELECT(4) - 윈도우 함수(Window Function)
11.4 쿼리 작성 및 최적화 - SELECT (2)
11.4 쿼리 작성 및 최적화 - SELECT - 서브쿼리 (3)
OUTER JOIN의 WHERE, ON 처리에 대한 오해와 진실
11.4 쿼리 작성 및 최적화 - SELECT (1)
10.3 실행 계획 - 실행 계획 분석 (2) Extra 컬럼
10.3 실행 계획 - 실행 계획 분석 (1)
2023/06
10.2 실행 계획 - 실행 계획 확인
10.1 실행 계획 - 통계 정보
9.4 옵티마이저와 힌트 - 쿼리 힌트
9.3.2 옵티마이저와 힌트 - 고급 최적화(조인 최적화 알고리즘)
9.3.1 옵티마이저와 힌트 - 고급 최적화(옵티마이저 스위치 옵션)
2023/05
9.2 기본 데이터 처리(2)
9.2 기본 데이터 처리(1) - ORDER BY 처리 (Using filesort)
9. 옵티마이저와 힌트 (1)
8. 인덱스 (4)
8. 인덱스 (3) - 전문 검색 인덱스
8. 인덱스 (2) - B-Tree 인덱스
8. 인덱스 (1)
7. 데이터 암호화
6. 데이터 압축
2023/04
5. Use bind mounts
4. Persist the DB
3. Share the application
2. Update the application
5.3 MySQL의 격리 수준
5.2 잠금
5.1 트랜잭션
1. Containerize an application
쿠버네티스: 5. 클러스터 아키텍처
쿠버네티스: 4. 쿠버네티스 오브젝트 관리
쿠버네티스: 3. 쿠버네티스 오브젝트 이해하기
쿠버네티스: 2. 쿠버네티스 컴포넌트
쿠버네티스: 1. 쿠버네티스란 무엇인가?
클린코드: 17. 냄새와 휴리스틱
클린코드: 15. JUnit 들여다보기
클린코드: 14. 점진적인 개선
클린코드: 12. 창발성
클린코드: 10. 클래스
클린코드: 9. 단위 테스트
클린코드: 7. 오류 처리
클린코드: 6. 객체와 자료구조
클린코드: 3. 함수 잘 만드는 법
클린코드: 1. 깨끗한 코드
Golang: 13. Go 채널
Golang: 12. Go 루틴
Golang: 11. defer와 panic
Golang: 10. 에러
Golang: 9. 인터페이스
Golang: 8. 메서드
Golang: 7. 구조체
Golang: 6. 패키지
Golang: 5. 컬렉션
Golang: 4. 함수
Golang: 3. 반복문
Golang: 2. 조건문
Golang: 1. 변수와 상수
Vue3 살펴보기
랜더링 업데이트 최적화
Critical Rendering Path 최적화
브라우저
Message Queue
TypeScript Tutorial - 2. Basic Types
TypeScript Tutorial - 1.2 Why use TypeScript
TypeScript Tutorial - 1. Gettig Started(1)
JVM - Garbage Collection
JVM
Python - Generator
Elasticsearch
검색 엔진
메시징 시스템이란?
NoSQL이란?
Nginx VS Apache
Web
Javascript - this
Javascript - Closure
Javascript - Hoisting
0. 컨테이너와 도커
4.4 MySQL 로그 파일
4.3 MyISAM 스토리지 엔진 아키텍처
4.2 InnoDB 스토리지 엔진 아키텍처(3)
4.2 InnoDB 스토리지 엔진 아키텍처(2) - InnoDB 버퍼풀
4.2 InnoDB 스토리지 엔진 아키텍처(1)
4.1 MySQL 엔진 아키텍처