- 동시성 문제
- 메시지 큐, 이벤트 스트림
- 부하테스트
- 부하테스트 기본 개념
- 부하테스트를 통한 병목 지점 진단
- 병목 지점 (Bottleneck Point)
- 부하 테스트의 전체 흐름
- 부하 테스트 시 주의점
- (실습) 부하 테스트 할 인프라 구성을 그림으로 파악하기
- 모니터링, 메트릭
- CPU, 메모리, 디스크
- EC2 모니터링 셋팅
- RDS 모니터링 셋팅
- ELB의 CPU, 메모리를 측정하지 않는 이유
- 각 서버의 CPU, 메모리를 한 눈에 볼 수 있도록 셋팅하기
- 부하테스트를 통해 병목 지점 진단하기
- 실시간으로 CPU 와 메모리를 관측하는 방법
- 병목 지점 해결을 통한 성능 개선
- 가용성, 시스템 이중화
- 수평적 확장, 수직적 확장, 캐싱
- 트래픽 증가에 따른 시스템 설계 및 확장 방법
- 병목지점(DB) 해결
- 병목지점(웹 애플리케이션 서버) 해결하기
- 부하테스트 전체 흐름 다시 점검
- 도커(Docker)
- 쿠버네티스(Kubernetes)
- 남들보다 훨씬 쿠버네티스를 빠르게 배우는 방법
- Windows 에서 쿠버네티스 설치
- GKE 쿠버네티스 클러스터 생성
- GKE 클러스터 사용 및 애플리케이션 배포
- GCE VM 을 통한 클러스터 구성, 애플리케이션 배포
- 쿠버네티스 핵심 개념 - 파드(Pod), 디플로이먼트(Deployment), 서비스(Service)
- 쿠버네티스 명령어 정리
- 파드(Pod)
- 파드 생성
- 파드 외부에서 파드 내부 프로그램에 접근하기(포트 포워딩)
- (예제) 백엔드(Spring Boot) 서버를 파드(Pod)로 띄워보기
- 이미지가 없다고 에러가 뜨는 이유 (이미지 풀 정책)
- (예제) 백엔드(Nest.js) 서버를 파드(Pod)로 띄워보기
- (예제) 프론트엔드(HTML,CSS,Nginx) 서버를 파드(Pod)로 띄워보기
- (예제) 프론트엔드(Next.js) 서버를 파드(Pod)로 띄워보기
- 파드(Pod) 디버깅하는 방법
- 백엔드(Spring Boot) 서버 3개 띄워보기
- 디플로이먼트(Deployment)
- (예제) 디플로이먼트를 활용해 백엔드(Spring Boot) 서버 3개 띄워보기
- 서비스(Service)
- (예제) 서비스(Service)를 활용해 백엔드(Spring Boot) 서버와 통신해보기
- 디플로이먼트를 활용한 서버 개수 조절 방법
- 서버가 죽었을 때 자동으로 복구하는 기능 (Self-Healing)
- 새로운 버전의 서버로 업데이트 시키기
- (예제) 디플로이먼트, 서비스를 활용해 백엔드(Nest.js) 서버 띄워보기
- (예제) 백엔드(Spring Boot) 서버에 환경변수 등록해 사용하기
- 컨피그맵(ConfigMap)을 활용해 환경변수 분리하기
- 시크릿(Secret)을 활용해 '민감한 값'을 환경 변수로 분리하기
- 볼륨(Volume)
- (예제) 디플로이먼트(Deployment)를 활용해 MySQL 실행시키기
- 볼륨(Volume)을 활용해 MySQL 실행시키기
- (예제) 백엔드(Spring Boot) 서버와 MySQL 연동하기
- 스프링 서버와 MySQL이 제대로 연결되지 않을 때
- 보안을 위해 외부에서 MySQL 접근하지 못하도록 막기
- k3s
- EC2에서 도커,쿠버네티스 설치하기 (k3s)
- (예제) 디플로이먼트, 서비스를 활용해 EC2에 웹 서버(Nginx) 띄워보기
- (예제) 백엔드(Spring Boot) 서버 EC2에 배포하기, DB 연동하기 (+RDS,ECR)
- RDS, ECR 생성하기
- EC2에 배포할 백엔드(Spring Boot) 서버 프로젝트, 매니페스트 파일 구성하기
- 백엔드(Spring Boot) 서버 빌드한 후 ECR로 Push하기
- EC2가 ECR로부터 이미지를 Pull 받아올 수 있게 권한 부여하기
- EC2에서 쿠버네티스로 백엔드(Spring Boot) 서버 띄우기
- EC2에 배포된 백엔드(Spring Boot) 서버 업데이트하기
- EKS(Elastic Kubernetes Service)
- 쿠버네티스와 EKS의 아키텍처 구조
- EKS 클러스터 생성하기
- EKS 워커 노드 추가하기
- 로컬에서 EKS 클러스터 조정할 수 있게 셋팅하기
- EKS에 백엔드(Spring Boot) 서버 배포하기 (+RDS,ECR)
- 비용 나가지 않게 EKS 종료하기
- AWS
- 로케일 - LocaleContext, LocaleResolver
- p6spy
- QueryDsl
- 스프링 시큐리티에 코틀린 DSL 적용하기
- 스프링의 OAuth2 관련 프로젝트들
- Spring Security OAuth2 Client - application.yml 설정 및 OAuth2ClientProperties
- Spring Security OAuth2 Client - ClientRegistration, ClientRegistrationRepository
- Spring Security OAuth2 Client - OAuth2LoginConfigurer 초기화 이해
- Spring Security OAuth2 Client - 자동구성
- 시간복잡도, 공간복잡도
- 배열
- 재귀함수
- 연결 리스트(Linked List)
- 이진 탐색(Binary Search)
- 정렬
- 스택
- 큐(Queue)
- 해쉬
- 트리(Tree)
- 힙(Heap)
- 그래프(Graph)
- DFS & BFS
- DP(Dynamic Programming)