maxscale 은 DB 프록시로 로드밸런서의 역할을 한다. 이거는 mysql 과는 상이한 프로그램으로 플러그인이라늗가에 포함되지 않고 DB 와 완전히 별개의 프로그램으로 동작한다. 전 글을 참고해도 좋을 것 같다. maxscale 상속 과정maxscale 은 master 로 write 쿼리가 들어가고 동기화 설정으로 인해 slave 까지 해당 변화가 넘어간다. (이때 주의해야 할 점은 maxscale 은 mysql 에 소속되어 있지 않기 때문에, 동기화 작업은 DB 단에서 이루어진다!) read 쿼리는 slave 로 넘겨주거나 분산해서 받거나 하는 식으로 너무 많을 경우 분산해서 받을 수 있다. maxscale 은 master 가 있고 master candidate 를 설정할 수 있는데 이 후보들은 m..
Maxscale 은 mariadb 에서 사용하는 이중화 툴로, 분산된 DB 서버를 관리하는 일종의 확장팩같은 느낌이다. 주된 기능은 DB 쿼리 IO 를 로드밸런싱하는 기능으로, 한 DB 에 과한 부하가 가해지는 것을 막는 것을 목적으로 한다. master, slave 동기화우선 maxscale 을 진행하기 전에 DB 끼리 master-slave 로 동기화를 시켜야 한다. master-slave 구조를 간단히 설명하자면 master 는 DB 의 주체이며, 모든 변경이 여기서부터 이루어진다고 가정하고 본인의 DB 를 slave 에 복제하는 것을 autocommit 해준다. 그리고 master 가 다운될 경우 slave 가 master 역할을 하도록 수행하는 기능이 있다. 작동이 종료된 master 는..
https전자서명과 HTTPS 의 역할이 굉장히 헷갈렸다. 둘 다 공개키 암호화를 사용하기 때문이다. 하지만 둘은 사용되는 역할이 다르다.전자서명은 어떠한 권위 주체가 문서의 진위여부를 ‘서명’ 해주는 것이다. 이 과정에서 ‘공개키 암호화’ 가 쓰인다. 편의상 서명을 희망하는 객체를 C, 서명을 해주는 객체를 S 라고 부르겠다.C 가 ‘서명을 희망한다’ 는 것은 문서 내용을 MD 혹은 SHA 로 해쉬해서 문서 뒤에 붙여주는 과정을 의미한다.S 가 ‘서명을 해준다’ 는 것은 S 가 가진 비밀키로 해쉬값을 암호화해서 그 문서 뒤에 붙여주는 과정을 의미한다.C1 가 ‘서명을 확인한다’ 는 것은 S 가 뿌린 공개키(보통 OS 안에 내장됨)로 암호문을 복호화하고, 문서 내용을 해쉬해서 두 값을 비교하는 것을 의미..
static library, dynamic library라이브러리란 무엇인가? 우선 라이브러리는 나의 혹은 타인의 결과물을 패키징해서 쓰고 싶을때 사용하는 것이다.상황이 많기에 이에 따른 라이브러리의 종류도 많고 그에 따른 확장자도 많다. 이를 천천히 설명해 보겠다. 크게는 static library 와 dynamic library 로 나뉜다. TODO) 자세하게 들어가면 Compiler개념 JVM 개념과 opcode operand 개념 등 다룰게 많기에 간략하게 설명을 해보겠다. 어떤 코드가 실행되기 전에 컴퓨터가 알아듣게 만들려면 '컴파일' 이라는 단계가 필요한 static library 는 '미리 컴파일'을 해두는 놈이고 dynamic library 는 '실행시 그때그때 컴파일'을 하는' 놈이다. ..
machine code (instruction) opcode 와 operand 의 집합으로 구성되어 있다 opcode mov, sub, jmp 같은 명령어 operand 해당 명령의 대상이 되는 데이터를 찾는 주소. byte code compiler 에 의해 생성된 중간단계의 코드 JVM 이 해석할 수 있는 단계의 코드.
콜백 함수 란 콜백 함수는 나중에 수신 함수에 의해 호출될 것으로 예상되며 다른 함수에 인수로 전달되는 함수 입니다. 이 방식은 비동기식 혹은 이벤트 구동 함수에서 사용된다. 콜백 함수는 네트워크 통신이나 파일 입출력 작업과 같이 완료하는 데 오랜 시간이 걸릴 수 있는 작업을 처리하기 위해 주로 사용된다. 태스크가 완료될 때까지 프로그램 실행을 차단하지 않아도 된다. 이 예제는 네트워크 통신에서 service 와 어플리케이션 구성요소가 binding 하기 위해서 bindService 함수를 사용하는 예시이다. // get context context = getApplicationContext(); // bind service Intent intent = new Intent(context, Connecti..
가상화란 가상화란 애플리케이션이나 서비스를 실행하는 데 사용할 수 있는 하드웨어 플랫폼, 운영 체제, 저장 장치 또는 네트워크와 같은 리소스의 가상 버전 생성을 의미합니다. 가상화를 사용하면 단일 물리적 리소스에서 여러 가상 인스턴스를 생성하고 실행할 수 있으므로 리소스 활용도가 높아지고 확장성이 향상되며 IT 인프라의 유연성이 향상됩니다. 가상화의 유형 서버 가상화: 여기에는 단일 물리적 서버에서 여러 가상 서버를 실행하는 것이 포함됩니다. 각 가상 서버는 고유한 운영 체제, 응용 프로그램 및 리소스가 있는 독립 시스템으로 작동합니다. 데스크톱 가상화: 여기에는 단일 물리적 시스템에서 여러 가상 데스크톱을 실행하는 것이 포함됩니다. 각 가상 데스크톱은 고유한 운영 체제, 애플리케이션 및 사용자 인터페이..
포트 운영체제 통신의 종단점. 하드웨어에서에도 사용되고, 소프트웨어에서는 프로세스나 네트워크를 식별하는 논리단위로 사용됨. 포트를 사용하는 프로토콜을 전송계층프로토콜 이라 부르며 여기엔 전송제어프로토콜(TCP) 과 사용자데이터그램 프로토콜(UDP)가 있다. 동작 통신을 할 때 Client와 Server가 있는데, 두 기기가 통신을 할 때 IP주소로만 통신을 하면 통신의 종류(웹인지, 메일인지)를 파악하지 못함. 그래서 IP주소에 포트를 더한 소켓 주소로 통신을 하기로 함. 각 프로그램의 서버는 특정 포트에서 대기를 하며, 클라이언트가 약속된 포트로 접속하면 실행된다. 이를테면 HTTP의 포트번호는 80번인데 어떤 사이트를 8080포트로 들어가면 어떻게 될까? 웹서버는 80번 포트에서 대기중인데 클라이언트..
블록암호 블록 암호는 고정 길이의 평문 블록(Plain text)을 키를 사용하여 동일한 길이의 암호문 블록(Cipher text)으로 변환하는 암호화 알고리즘입니다. 양방향 암호화 중 대칭키 암호화 방식을 사용합니다. 해시함수 메시지 다이제스트(해시 함수)는 다양한 길이의 입력을 받아 원본 메시지의(Plain text) 고유한 디지털 지문을 나타내는 고정 크기 출력(Digest)을 생성하는 암호화 알고리즘입니다. 단방향 암호화인 Hash 함수를 사용합니다. 차이점 블록 암호가 메시지의 암호화 및 암호 해독에 사용되는 반면 메시지 다이제스트(해시함수)는 메시지 무결성 및 신뢰성을 확인하고 메시지에 대한 무단 수정을 감지하는 데 사용됩니다. 메시지 다이제스트는 종종 메시지의 디지털 서명을 만드는 데 사용되..
base64 Base64는 이진 데이터를 ASCII 문자열 형식으로 나타내는 이진-텍스트 인코딩 체계입니다. 일반적으로 이미지, 오디오 파일 및 기타 이진 데이터와 같이 일반 텍스트로 안정적으로 표현할 수 없는 데이터를 전송하고 저장하는 데 사용됩니다. Base64 인코딩 체계에서 3개의 이진 바이트(즉, 24비트)의 각 그룹은 64개의 가능한 문자 집합에서 4개의 문자로 변환됩니다. 이 64자는 영어 알파벳의 26개의 대문자와 소문자, 10개의 숫자, "+" 및 "/" 기호로 구성됩니다. 또한 "=" 기호는 인코딩된 문자열의 끝에 패딩 문자로 사용되어 마지막 바이트 그룹이 완료되지 않았음을 나타냅니다. Base64로 인코딩된 결과 문자열은 원래 이진 데이터보다 길지만 수신자가 동일한 Base64 알고리..
프로세스 실행중인 프로그램, 레지스터, 스택, 포인터, 데이터의 집합체이며 자원할당의 기본단위. 구성 CPU시간 (프로그램이 CPU 차지한 시간) 주소공간 (물리적 실체에 대응하는 주소의 범위를 정의한 공간) 독립된 메모리 stack 지역변수, 매개변수 등 임시메모리 저장. 함수 호출시 생성, 종료 시 반환 heap malloc, new 등 프로그래머 동적 사용 공간 data 전역변수, 정적변수, 배열, 구조체 등 메모리 저장. 프로세스 종료까지 유지 code 작성한 코드 저장. 프로세스 종료까지 유지 특징 프로세스 당 최소 1개 스레드 사용 별도 주소공간에서 실행 프로세스간 변수는 기본적으로 접근 불가하며 통신을 통해 접근해야함 스레드 프로세스 내에서 동작되는 여러 실행의 흐름으로 프로세스가 할당받은 ..
스트림암호화 데이터흐름을 순차적으로 처리해나가는 암호알고리즘 비트/바이트 단위 암호화, 고속 암호화 RC4, SEAL, OTP 블록암호화 평문을 일정한 크기의 블럭으로 잘라낸 후 암호화 알고리즘 적용해 암호화 고정된 입출력블록 변환 알고리즘 구조 Feistel SPN(Substitution Permutation Network) Feistel round function의 반복. 평문을 재배열해 K0, K1, .. ,Kn 키와 조합한 후 되돌리는 구조. 역추적가능, 암호화/복호화 키 동일 블럭길이 64bit 이상, 키 길이 64bit 이상, 라운드 16회 이상 권장. DES, 3DES, SEED SPN Substitution Permutation Network. 치환층과 재배열층으로 혼돈과 확산 제공. 역추..