1-1. 아키텍처 설계(DB 다중화, 캐시, CDN)
·
CS/대규모 시스템 설계
데이터베이스 다중화디자인 패턴 가운데, Master-Slave 패턴이 대표적으로 쓰이는 것으로, 서버 사이에 주(master)-부(slave) 관계를 만들고, 데이터 원본은 주 서버에 사본은 부 서버에 저장하는 방식이다. 핵심 내용읽기 연산 >>> 쓰기 연산 -> 부 데이터베이스의 수 > 주 데이터베이스의 수쓰기 연산(insert, update, delete) 은 마스터(주 데이터베이스)에서만 지원한다.부 데이터베이스는 주 데이터베이스로부터 사본을 전달받으며, 읽기 연산(read) 만을 지원한다. 데이터베이스 다중화로 인한 장점성능(performance)주-부 다중화 모델로 인해, 연산들이 분산된다. -> 병렬로 처리할 수 있는 질의(query)의 수가 늘어나므로 성능 향상안정성(reliabilty)자연..
1-1. 아키텍처 설계(단일 서버, 서버 계층 분리, 로드 밸런서)
·
CS/대규모 시스템 설계
단일 서버의 요청 흐름1. 사용자는 moon-code.tistory.com을 이용하여 웹사이트에 접속한다.2. DNS 조회 결과로 IP 주소가 반환된다. 해당 예제에서는 15.122.12.212라고 가정한다. 웹 서버의 주소이다.실제로는 DNS도 계층적으로 3개의 서버에서 .com Server 그 안에서 해당 도메인에 해당하는 주소를 찾고 찾아서 반환하며, DNS Resolver의 Cache를 통해 이후, 같은 요청을 보냈을 때, 굳이 DNS 서버를 들리지 않고 반환하기도 하는데, 해당 부분과 관련해서는 웹 서버 흐름에 대해서 글을 작성하게되면 참조해놓겠다. 2. 해당 IP 주소로 HTTP 요청이 전달된다.3. 요청을 받은 웹 서버는 HTML 페이지나 JSON 형태의 응답을 반환한다. 데이터베이스사용..
데코레이터 패턴(decorator)
·
CS/디자인패턴
데코레이터 패턴(decorator)객체의 결합을 통해 기능을 동적으로 유연하게 확장할 수 있게 해주는 패턴 데코레이터 패턴 구조역할Component기본 기능을 뜻하는 ConcreteComponent와 추가 기능을 뜻하는 Decorator의 공통 기능을 정의즉, 클라이언트는 Component를 통해 실제 객체를 사용함.ConcreteComponent기본 기능을 구현하는 클래스Decorator많은 수가 존재하는 구체적인 Decorator의 공통 기능을 제공ConcreteDecorator1, ConcreteDecorator2Decorator의 하위 클래스로 기본 기능에 추가되는 개별적인 기능을 뜻함.ConcreteDecorator 클래스는 ConcreteComponent 객체에 대한 참조가 필요한데, 이는 D..
네트워크의 기초
·
CS/네트워크
네트워크란?노드와 링크가 서로 연결되어 있으며 리소스를 공유하는 집합 노드 : 서버, 라우터, 스위치 등 네트워크 장비링크: 유선, 무선 좋은 네트워크란?많은 처리량을 처리할 수 있으며, 지연 시간이 짧고, 장애 빈도가 적으며 좋은 보안을 갖춘 네트워크 처리량(bps)- 링크 내에서 성공적으로 전달된 데이터의 양을 말하며, 보통 얼만큼의 트래픽을 처리했는지를 나타냄- 많은 트래픽을 처리한다. == 많은 처리량을 가진다.- 사용자들이 많이 접속할 때마다 커지는 트래픽, 네트워크 장치 간의 대역폭, 네트워크 중간에 발생하는 에러, 장치의 하드웨어 스펙에 영향을 받는다. 트래픽특정 시점에 링크 내에 '흐르는' 데이터의 양 대역폭주어진 시간동안 네트워크 연결을 통해 흐를 수 잇는 최대 비트 수 트래픽이 많아..
IP와 서브넷 마스크
·
CS/네트워크
IPv4- 컴퓨터가 네트워크에서 서로를 식별하기 위한 주소- IPv4는 32비트로 구성된 IP 주소 체계- 192.168.0.1 같은 IP는 실제로는 32개의 0과 1로 구성된 2진수 서브넷마스크와 비트마스킹- 서브넷 마스크는 IP 주소를 네트워크 영역과 호스트 영역으로 나누는데 사용- 1로 되어 있는 부분이 네트워크 주소를 의미, 나머지 0은 호스트 식별자를 의미한다.- 비트마스킹을 통해 네트워크 주소와 브로트 캐스트 주소 등을 계산할 수 있음.- 하나의 네트워크를 여러 개의 작은 네트워크로 나누기 위해 사용- 예를 들어, 192.168.1.0/24 서브넷은 192.168.1.1 ~ 192.168.1.254까지 254개의 호스트를 사용할 수 있다.192.168.1.0(네트워크 주소), 192.168.1..