본문 바로가기

분류 전체보기210

대용량 시스템에 대한 이해 - 03. 대용량 시스템 아키텍처 맛보기 대용량 트래픽 / 데이터 처리는 왜 어려울까? 하나의 서버 또는 데이터베이스로 감당하기 힘든 부하 → 다수의 서버와 데이터베이스를 마치 하나인 것처럼 동작시키기 위해 여러가지 기법들이나 최적화 방법들을 사용하게 되는 것임 하나의 서버로 감당하기 힘들어 대부분 여러개의 서버 또는 데이터베이스를 사용함 여러개의 서버에서 유입되는 데이터의 일관성을 보장할 수 있어야 함 웹 서비스들은 24시간 무중단(언제든지 사용할 수 있어야 함) → 잘못된 코드 한 줄이 미치는 영향의 범위가 크다 코드 한 줄이 데이터에 미치는 영향범위가 굉장히 커짐 여러 마이크로 서비스들이 복잡한 의존 관계를 가짐 → 하나의 서버에서는 단순히 join도 가능하고 여러 transaction 보장들이 쉽게 되지만, micro service ar.. 2023. 6. 4.
대용량 시스템에 대한 이해 - 02. 왜 데이터베이스가 병목일까? 스케일업과 스케일 아웃 스케일 업 : 하나의 서버의 사양을 높여 더 많은 요청을 처리할 수 있게 함 유지 보수 및 관리 : 쉬움 확장성 : 제약이 있음 장애복구 : 서버가 1대, 다운 타임이 있음 스케일 아웃 : 서버의 대수를 늘림 → 하나의 서버에서 더 이상 처리하기 힘든 요청이 왔을 때 서버의 대수를 늘려 부하를 분산 시켜 문제를 해결하는 방식 유지 보수 및 관리 : 여러 노드에 적절히 부하분산 필요 확장성 : 스케일업에 비해 자유로움 장애복구 : 장애 탄력성이 있음 언제 스케일 아웃이 가능한가? 스케일 아웃을 해서 여러 대의 서버가 되더라도 클라이언트 입장에서 보았을 때 마치 하나의 서버처럼 동작하는 것으로 보이게 해야 함 → 같은 입력에 대해 항상 같은 결과를 반환 예를 들어 서버가 3대라고 해서.. 2023. 6. 4.
대용량 시스템에 대한 이해 - 01. 웹의 기본 아키텍처 기본적인 웹의 형태 클라이언트, 서버, 데이터베이스 웹의 구성이 복잡해지면 → 하나의 웹 서버가 2개의 서버로 분리됨 클라이언트(사용자) → 서비스가 증가함에 따라 무한대로 증가할 수 있는 구조 웹 서버 : html, css, js와 같은 정적 리소스 serving 웹 어플리케이션 서버 : 동적으로 변하는 data 처리 데이터베이스 클라이언트는 무한대로 늘어날 수 있지만, 웹 서버, 웹 어플리케이션 서버, 데이터베이스 자원의 유한함 때문에 늘어나는데 한계가 있음 웹 서버, 웹 어플리케이션 서버는 왜 나누어져 있을까? 태초에는 웹 서버만 있는 형태에서 웹의 복잡도가 증가함에 따라 웹 서버와, 웹 어플리케이션이 분리되는 형태로 발전해옴 분리의 핵심 관심사의 분리 관측 가능한 시스템 효율적인 리소스 사용 대용.. 2023. 6. 4.
실습 환경 구축하기 (MySQL, Intellij) 윈도우 환경에서 구축하기 MySQL 설치하기 MySQL :: Download MySQL Installer Select Operating System: Select Operating System… Microsoft Windows Select OS Version: All Windows (x86, 32-bit) Windows (x86, 32-bit), MSI Installer 8.0.33 2.4M (mysql-installer-web-community-8.0.33.0.msi) MD5: 2a330cf24915964cca87e04dbb34e5d3 | Signatu dev.mysql.com 인텔리제이 설치 - 학생인증하면 ultimate 사용 가능 → 설치 후 학생계정 인증하기 인텔리제이 MySQL 연동 MySQL.. 2023. 6. 4.