SW Engineering 264

Zookeeper 세션(Session)

Zookeeper 세션(Session) · Version : Zookeeper 주키퍼에서 세션(session)은 주키퍼 서버와 클라이언트의 연결을 의미한다. 세션 상태는 5가지가 있다. · Connecting : 클라이언트가 주키퍼 서버와 연결을 시도하고 있는 상태이다. · Connected : 서버와 연결된 상태로, z노드에 연산을 수행할 수 있는 상태이다. · Closed : close() 메소드에 의해 명시적으로 연결을 종료했거나, 세션 타임아웃, 인증 실패 등으로 서버와 연결이 종료된 상태 · Disconnected : 시스템 장애, 네트워크 장애등으로 서버와의 접속이 끊긴 상태이다. Disconnected 상태에서는 클라이언트가 자동으로 파라메터로 받은 서버 중 한 대에 다시 접속을 시도하며, ..

SRE (Site Reliability Engineering)

SRE (Site Reliability Engineering) 사이트 안정성 엔지니어링(SRE, site Reliability Engineering)은 조직이 해당 시스템, 서비스 및 제품에서 “적절한” 수준의 안정성을 “지속적”으로 달성하도록 지원하는 엔지니어링 분야이다. 여기서 말하는 “적절한” 수준의 안정성은 무엇일까? IT 시스템이 발달할 수록, 더 나은 안정성을 추구 할수록, 안정성을 높이는 데 필요한 노력과 리소스(및 비용)는 빠른 속도로 증가하고 있다. 이를 다르게 표현한다면, 불필요한 안정성 추구는 시간과 돈의 낭비가 발생한다는 것이다. 결론적으로 안정성 수준은 비즈니스 수요에 적절하고 실용적이어야 하는 수준에서 트레이드오프를 해야한다. 예를 들어, 고객이 100% 안정적이지 않은 네트워크..

Zookeeper 접근제한(Access Control List)

Zookeeper 접근제한(Access Control List) · Version : Zookeeper 주키퍼의 패스와 노드에 대한 권한 관리는 상속되지 않는다. 이 뜻은 부모 노드와 자식 노드가 있을때, 부모의 노드의 권한 속성이 자식 노드로 권한 상속이 발생하지 않다는 것이다. 그리고 아무런 설정을 하지 않으면 누구나 접근이 가능하다. 접근권한은 [schema:id, permission] 같은 형태로 설정한다. Schema는 인증방법을 정의하고, id는 인증을 허용할 값을 정의, permission에는 처리할 수 있는 기능을 정의한다. ex) 특정IP를 가진 클라이언트에 읽기(read) 권한 부여 : ip:192.168.0.1, READ · CREATE : 자식 노드를 생성할 수 있는 권한 · REA..

ZooKeeper Stat Structure

ZooKeeper Stat Structure · Version : Zookeeper 주키퍼(Zookeeper)의 z노드에는 몇 가지 속성이 있다. · Stat : z노드의 상태 정보를 저장 · Watcher : 세션의 상태가 변경 되었거나 관심 있는 노드의 상태변경(생성, 수정, 추가, 삭제)이 발생했을때 클라이언트가 이벤트를 받아 처리할 수 있게 하는 기능을 제공 · Atomic : z노드에 대한 데이터의 조회와 저장은 원자성을 가진다. · Persistent Node : “Persistent” 옵션으로 생성된 z노드는 주키퍼 서버의 로컬 디스크에 영구히 저장되고 클라이언트의 삭제 요청에 의해서만 삭제된다. 따라서 주키퍼 서버가 재시작 되어도 데이터는 보존된다. · Ephemeral Node : 임시노..

ZooKeeper 시간 동기화와 네임스페이스 z노드

ZooKeeper 시간 동기화와 네임스페이스 z노드 · Version : Zookeeper 주키퍼(Zookeeper)는 하나 이상의 서버에서 수행되기 때문에 클라이언트의 처리 요청에 따라 버전 정보나, 시간정보등에 대해서 모든 주키퍼 서버가 공유해야한다. 주피커는 아래와 같은 방법으로 시간이나 버전 정보를 관리한다. · Zxid (Zookeeper Transaction Id) : 주키퍼 노드의 상태를 변경하는 요청에 대해 부여되는 트랜잭션ID로, 모든 변경 요청에 대해서 순차적으로 부여된다. zxid가 낮을 수록 먼저 요청되었다는 것을 보장한다. · Version numbers : 노드의 데이터가 변경될때 마다 버전 값이 증가. 버전에는 z노드 데이터 변경, 자식 노드의 변경, AC 변경이 있으며 각각 ..

Zookeeper 소개

Zookeeper 소개 · Version : Zookeeper 주키퍼(Zookeeper)는 분산 코디네이터 서비스(Distributed Coordinator Service)를 제공하는 아파치 오픈소스이다. 분산 환경에서 락, 네이밍 서비스, 클러스터 멤버십 등을 쉽게 구현할 수 있는 기능을 제공한다. (주키퍼 자체적으로 기능을 제공하지 않으며, 기능을 쉽게 만들 수 있는 메커니즘을 제공) 주키퍼를 이용하는 대표적인 사례는 아래와 같다. · 네임 서비스, 환경설정, 그룹 멤버십 · Double Barriers · 우선순위 큐 (Priority Queues) · 공유 락 제어 · 두 단계 커밋 (Tow-phased commit) · 리더 선출 주키퍼는 n개의 서버와 클라이언트 API로 구성되어 있으며, 서버..

과대적합(Over fitting)과 과소적합(Under fitting)

과대적합(Over fitting)과 과소적합(Under fitting) 머신러닝에서 학습과정은 패턴을 발견하기 위해 모델링을 만드는 단계라고 할 수 있다. 일반적으로 모델을 만들 때에는 데이터를, 트레이닝 데이터 (training)와 테스트 데이터(test)를 나누어 사용한다. 트레이닝 데이터를 반복적으로 학습함으로써 테스트 데이터 또는 실제 데이터와 가장 유사한 결과를 만들어 내는 것을 목표로 하고 있다. 하지만 트레이닝 데이터와 테스트 데이터가 비슷하다면 모델의 정확도는 매우 높게 나올 것이다. 하지만 모델이 복잡하다면 트레이닝 데이터와 테스트 데이터의 결과는 다르게 나타날 확률이 높다. 일반적으로 트레이닝 데이터는 실제 데이터를 샘플링 하거나 특정 패턴을 인식시키기 위한 데이터로 트레이닝 데이터에 ..

경사 하강법(Gradient Descent)

경사 하강법(Gradient Descent) 경사 하강법(Gradient Descent)은 머신러닝 및 딥러닝 알고리즘을 학습시킬때 사용하는 방법 중 하나이며 1차 근삿값 발견용 최적화 알고리즘이다. 기본 개념은 함수의 기울기(경사)를 구하여 기울기가 낮은 쪽으로 계속 이동시켜 극값(최적값)에 이를 때까지 반복하는 것이다. 해당 함수의 최소값 위치를 찾기 위해 비용 함수(Cost Function)의 경사 반대 방향으로 정의한 Step Size를 가지고 조금씩 움직여 가면서 최적의 파라미터를 찾으려는 방법이다. 여기에서 경사는 파라미터에 대해 편미분한 벡터를 의미하며 이 파라미터를 반복적으로 조금씩 움직이는 것이 관건이다. 경사 하강법에서는 학습시 스텝의 크기 (step size)가 중요하다. 학습률이 너..

순전파(Feedforward)와 역전파(Backpropagation) 개념

순전파(Feedforward)와 역전파(Backpropagation) 개념 다층 퍼셉트론(Multi-layer Perceptron, MLP)으로 학습 한다는 것은 최종 출력값과 실제값의 오차가 최소화 되도록 가중치와 바이어스를 계산하여 결정하는 것이다. 순전파 (Feedforward) 알고리즘 에서 발생한 오차를 줄이기 위해 새로운 가중치를 업데이트하고, 새로운 가중치로 다시 학습하는 과정을 역전파 (Backpropagation) 알고리즘 이라고 한다. 이러한 역전파 학습을 오차가0에 가까워 질 때까지 반복한다. 역전파 알고리즘을 실행할때 가중치를 결정하는 방법에서는 경사하강법이 사용된다. [순전파 (Feedfoward)] 입력층에서 은닉층 방향으로 이동하면서 각 입력에 해당하는 가중치가 곱해지고, 결과..

다층 퍼셉트론 (Multi-layer Perceptron)

다층 퍼셉트론 (Multi-layer Perceptron) 퍼셉트론은 사람 뇌의 단일 뉴런이 작동하는 방법을 흉내내기 위해 환원 접근법 (reductionist approach)을 이용한다. 이 방법은 초기 가중치를 임의의 값으로 정의하고 예측값의 활성 함수 리턴값과 실제 결과값의 활성 함수 리턴값이 동일하게 나올 때까지 가중치의 값을 계속 수정하는 방법이다. 단층 퍼셉트론의 경우 AND, NAND, OR 논리회로를 계산할 수 있지만 XOR 게이트 연산을 할 수 없다. XOR 게이트는 베타적 논리합 이라 불리는 회로이다. 이 뜻은 한쪽이 1일 때만 1을 출력한다 퍼셉트론 이론은 선형 분류이다. 즉 직선을 이용한 분류는 가능하지만 XOR 게이트와 같은 경우 곡선으로 나눌 수 있기 때문에 비선형 분류이다. ..