반응형

서버를 클라우드에 올려 다수의 클라이언트들이 서비스를 이용한다고 하자.

 

수많은 클라이언트들의 요청은 쏟아지는데, 서버가 하나라면? 트래픽이 몰리게 되어 서버가 터져버리고 말 것이다. 

 

따라서 서버를 여러개 구축해서, 각 서버가 동일한 데이터를 갖도록 하고, 여러 요청을 해결할 수 있다.

 

그런데 여러대의 서버로 들어오는 트래픽을 제대로 분산하지 못한다면? 하나의 서버로 몰리게 되어 결국 효과는 없을것이다.

 

그러므로, 쏟아지는 트래픽을 여러대의 서버로 균등하게 분산시켜주는 기술이 필요하고, 그게 바로 "로드밸런싱" 이다!

 

 💡 로드밸런서 ???

로드밸런서 아키텍처

로드밸런서는 로드밸런싱을 해주는 장치라고 생각하면 된다!

로드(load) = 서버에 가해지는 부하, 밸런서(balancer) = 분산의 합성어이다.

 

로드밸런서는 사진에서와 같이, 클라이언트와 서버풀(분산 네트워크 서버집합) 사이에 위치하여, 쏟아지는 트래픽을 각 서버에 동등하게 나누어 주는 역할을 한다.

 

로드밸런싱이 필수일까?

 

서버를 사용하는 클라이언트 수가 적다면, 하나의 서버로도 충분히 서비스 운영이 가능하다. 

그렇지만 사업이 커지고 클라이언트 수가 많아진다면 그 만큼 요청 트래픽도 증가 할것이기 때문에 분산 처리를 해주는 것이 좋고, 따라서 로드 밸런싱이 필요하다.

 

늘어나는 트래픽에 대처할 수 있는 방법에는 두가지가 있다.

 

scale-up 과 scale-down

 

scale-up은 하나의 서버의 성능을 높혀주는 것이다.

scale-down은 비슷한 서버의 성능을 여러개로 증축하는 것이다.

 

scale-up 과 scale-down

분산 서버에 로드밸런싱 기술을 적용해야 하므로 scale-out 방식으로 트래픽을 해결할 경우에, 로드밸런서 장치가 사용될 수 있다.

 

 

로드밸런싱에는 다양한 알고리즘이 있다.

 

  • 라운드 로빈 알고리즘  :  클라이언트의 요청이 들어오는 순서대로, 각 서버에 차례로 분배한다. 따라서 서버의 세션 지속 시간이 길지 않은 서비스의 경우 사용하면 좋은 알고리즘이다.
  • 가중 라운드 로빈 알고리즘 : 각 서버가 서로 다른 성능을 가지고 있을 때 사용하는 것으로, 성능에 따른 가중치를 부여하고, 그에 맞게 트래픽을 분산한다. 예를 들어서 서버 A의 가중치가 5, 서버 B의 가중치가 2이라면, A에는 5개의 요청을, B에는 2개의 요청을 전달해서 트래픽을 분산하는 방식이다.
  • IP 해시 방식 : 클라이언트의 ip를 해싱해서 특정 서버로 매핑하여 요청을 처리한다. 따라서 클라이언트는 항상 동일한 서버로 연결됨을 보장할 수 있다.
  • 최소 연결 방식 : 요청이 들어온 시점에 가장 적은 연결상태를 보이는 서버에 우선적으로 트래픽을 배분한다. 
  • 최소 리스폰타임 : 서버의 현재 연결상태와 응답시간을 고려해서 최적인 서버에 우선적으로 트래픽을 배분한다. 즉 가장 적은 연결 상태와 가장 짧은 응답시간을 보이는 서버에 먼저 할당된다.

 

 

 

 

반응형

'CS' 카테고리의 다른 글

ERP & CRM 개념 알기 / 비즈니스 소프트웨어  (0) 2023.12.20
반응형
💡 DRS(Disaster Recovery System)의 유형
  • mirror site : RTO=0
  • Hot site : RTO 4시간 이내
  • Warm site : RTO 수일~수주
  • Cold site : RTO 수주~수개월

 

💡 데이터베이스의 특성
  • 실시간 접근성
  • 계속적인 변화
  • 동시 공용
  • 내용 참조

 

💡 데이터베이스 정규화 단계
  • 1NF : 원자화
  • 2NF : 부분함수 종속 제거
  • 3NF : 이행함수 종속 제거
  • BCNF : 결정자 함수 종속 제거
  • 4NF : 다치 종속 제거
  • 5NF : 조인 종속 제거
두부이걸다줘? = 도부이결다조

 

💡 병행제어
다수 사용자 환경에서 / 여러 트랜잭션을 수행할 때 / 데이터베이스 일관성 유지를 위해 / 상호작용을 제어하는 기법

 

 

💡 EAI 구성요소
  • EAI 플랫폼
  • 어댑터(연결해준다)
  • 브로커
  • 메시지 큐
  • 비즈니스 워크플로우

 

💡 고가용성 유형
  • Hot Standby : 상시 대기, 장애 시 전환
  • Mutual Take-Over : 둘 중 하나 장애 시 -> fail over , 상부상조
  • Concurrent Access : 둘 중 하나 장애 발생하더라도 fail over 하지 X

 

💡 MAC vs MDC
  • MAC : Message Authentication Code, 키O, 인증
  • MDC : Modification Detection Code, 키X, 감지

 

💡 병행제어 기법
  • 로킹
  • 낙관적 검증
  • 타임스탬프 순서
  • MVCC
로 낙타다!

 

💡 소프트웨어 생명주기 프로세스
요구사항 분석 → 설계 → 구현 → 테스트 → 유지보수  
요설구테유

 

 

💡 논리적 데이터 모델링
  • 관계 데이터 모델 : 2차원 테이블 형태
  • 계층 데이터 모델 : 트리 형태
  • 네트워크 데이터 모델 : 그래프 형태

 

💡 SQL 제약조건 
  • CHECK
    CHECK(참이 되는 조건)
    ⇒ CHECK(성별 IN('M', 'F'))
    또는
    CHECK(성별 = 'M' OR 성별 = 'F')
  • DEFAULT
    기본값
    DEFAULT 3 ⇨ 3으로 초기화한다.

 

💡 SW 개발 보안의 3대요소
  • 기밀성
  • 무결성
  • 가용성
기무가

 

💡 IT 업무 프로세스 관련 용어
  • ITSM : IT Service Management
  • SLA : Service Level Agreement , 고객과 서비스 제공자 간 계약

 

💡 시스템 보안 공격 (정보보호론에서 배운 것 생각!!!)
  • 스택 버퍼 오버플로우 공격
    solution :
    스택 가드 활용(카나리라고 하는 체크용 값을 확인),
    스택 쉴드 활용(리턴 주소를 비교)

 

💡 소프트웨어 아키텍처 패턴 유형
  • 계층화 패턴 = 레이어 패턴 : 서로 마주보는 두개의 계층
  • 클라이언트-서버 패턴
  • 파이프-필터 패턴 : 스트림, 다음으로 넘겨주는 과정 반복
  • MVC 패턴 : 별도의 컴포넌트, 대화형 애플리케이션
  • 브로크 패턴 : 통신 조정

 

💡 분석 자동화 도구 (CASE)
  • 상위 CASE : 자료 흐름도
  • 하위 CASE : 구문 중심

 

💡 REVOKE 명령에 CASCADE CONSTRAINTS 
REVOKE 명령문 끝에 CASCADE CONSTRAINTS 를 붙이면 
연쇄적 권한 해제를 의미 = WITH GRANT OPTION 으로 부여된 사용자 권한까지 해제

 

💡 유스케이스 다이어그램 구성요소와 구성요소 간 관계
  • 유스케이스 : 서비스
  • 액터 : 역할
  • 시스템
  • 구성요소간 관계 : 확장관계 / 포함관계 / 일반화관계

 

💡 데이터베이스 고립화 수준 (ISOLATION LEVEL)
  • READ UNCOMMITTED
  • READ COMMITTED
  • REPEATABLE READ
  • SERIALIZABLE READ

 

💡 애플리케이션 공격 기법 유형
  • HTTP GET 플러딩 : 서버 자원 소진
  • Slow HTTP Header DoS : 개행 문자열
  • Slow HTTP POST DoS : 헤더의 content-length를 비정상적으로 크게
  • Slow Read Attack : TCP윈도 크기 ↓, 데이터 처리율↓
  • Hulk DoS : 웹 페이지 주소를 지속적으로 변경
  • Hash DoS : 해시충돌

 

💡 데이터 웨어하우스 vs 데이터 마트
  • 데이터 웨어하우스 : 통합 관리 DB
  • 데이터 마트 : 특정 조직

 

💡 프로세스 관련 용어
  • TPS : TRANSACTION PER SECOND
  • 반환시간(Turnaround Time) : 프로세스의 입력~결과 산출 까지 소요 시간

 

💡 UI 화면 설계
  • 와이어프레임 : 화면 단위의 레이아웃 설계
  • 스토리보드
  • 프로토타입 : 정적 화면 → 동적 시뮬레이션 모형
와 스프!!

 

💡 객체지향 설계 원칙 (SOLID)
  • 단일 책임의 원칙
  • 개방-폐쇄의 원칙
  • 리스코프 치환의 원칙
  • 인터페이스 분리의 원칙
  • 의존성 역전의 원칙

 

💡 SWITCH-CASE 문 주의 할 점
int num = 10;
switch(num){
   case 10:
   case 9 : return 'A'; break;
   case 8 : return 'B'; break;
   default : return 'C'; 
}

위와 같은 상황에서 case 10이 실행되지만, 아무것도 하지 않고 break문도 없다. 이럴 경우 case 9로 넘어가서 A를 반환하고, break문을 만났으므로 swich문을 빠져나온다.
case 10에서 break이 없다고 해서 default로 가는 것이 아님을 명심하자!!!
반응형

+ Recent posts