백엔드 개발을 잘한다는 건?
- 가독성이 좋고 유지보수가 편한 코드를 작성하는 능력
- Framework, Layered Architecture, Design Pattern, ORM 등
- 안정적인 시스템을 설계하고 구축하는 능력

시스템 운영을 잘하려면?
고가용성과 내결함성을 고려하면서 앱을 개발하고, 운영할 수 있어야 한다.
- 고가용성이란?
- 고가용성이란 앱이 지속적으로 가동될 수 있는 속성을 말한다.
- 가용성이란 서버가 오랜 시간 동안 끊김 없이 운영되는 것을 말한다. 따라서 고가용성 시스템이라는 것은 많은 사람들이 접속하거나 재난 등의 외부 요인이 발생하더라도 시스템이 잘 고장나지 않는다는 것을 의미한다.
- 내결함성이란?
- 내결함성이란 시스템의 일부가 잘못되어도 전체 시스템이 크게 영향받지 않는 속성을 말한다.
- 우리가 배달 앱을 만들 때 메뉴 서비스, 주문 서비스, 정산 서비스 등 기능에 따라 여러 앱을 만들어 운영하게 되면 만약 정산 서비스가 고장 나더라도 메뉴 서비스와 주문 서비스는 정상적으로 동작하게 된다.

내결함성을 고려한 예시 : MSA(마이크로 서비스 아키텍쳐)


고가용성을 고려한 예시 : 클러스터링

고가용성과 내결함성을 챙기는 방법
- 여러 서버와 서비스를 직접 관리하기 -> 관리가 너무 어렵다.
- 서버리스 플랫폼 사용하기 -> 비용이 너무 많이 든다.
- 쿠버네티스 같은 '컨테이너 오케스트레이션 툴' 사용하기
쿠버네티스가 나온 배경

쿠버네티스를 부르는 다른 이름

쿠버네티스를 배우면 이런걸 할 수 있다.
대용량 트래픽을 수용할 수 있는 서비스를 구축하는 원리를 알게 된다.
- 고가용성과 내결함성을 고려한 서비스를 구축할 수 있는 능력을 갖게 된다.