목록분류 전체보기 (67)
The Boxer
전체 구조 거대한 양의 데이터 처리가 가능한 분산 스트리밍 플랫폼 높은 스루풋, 확장성, 장애 내성 제공 데이터를 실시간으로 처리, 저장 하도록 하는 플랫폼 저장소가 아니다. 메세지 플랫폼 producer(sender, publisher): 메세지를 카프카에 기록하는 역할 consumer(receiver, subscriber): 카프카로부터 메세지를 소비하는 역할 broker: 데이터 저장, 관리, 중개 역할 이벤트 kafka에서 데이터로 취급 되는 것 event = record = message kafka에 기록되는 모든 데이터는 다음의 메세지 형식을 따른다 key value timestamp (optional) metadata header 이벤트는 소비되지 않는다. 읽음 행위로 인해 삭제되지 않음 토..
개발 과정에서 RSA 암호화 방식이 자주 등장하는데, 원리에 대한 이해를 하고 사용하고자 공부한 내용을 적습니다. 비대칭키 암호화에 사용하는 키와 복호화에 사용하는 키가 다른 암호화 방식 대칭키 암호화 방식은 암호화에 사용하는 키와 복호화에 사용하는 키가 동일합니다. 공개키 암호화(public key cryptography) 비대칭키 기반의 암호화 방식으로, 암호화키와 복호화키가 분리된다. 원칙 암호화키, 복호화키는 같은 사람의 키쌍이어야 한다. 키는 암호화 복호화 중 한 번만 사용해야 한다. 암호화 복호화에 다른 사람의 개인키는 사용할 수 없다. 송신자 암호화수신자 복호화사용 송신자의 개인키 송신자의 공개키 인증, 부인방지(전자 서명) 송신자의 개인키 송신자의 개인키 X - 3원칙 위배 수신자의 개인키..
인코딩 사용자가 입력한 문자, 숫자, 특문 등의 데이터를 컴퓨터에 저장할 수 있는 이해하는 이진 데이터로 변환하는 것 문자, 숫자, 특문 등은 사람이 이해할 수 있지만, 이진 체계 저장소에 이를 저장하기 위해서는 0,1의 이진 데이터로 변환해야 한다. 현재 이 글도 문자로 출력되고 있지만, 저장소에 저장된 데이터 자체는 결국 0,1의 이진 데이터이며, 이를 OS가 읽어 문자로 출력한다. 반대로 이진 데이터를 사람이 읽을 수 있는 데이터로 변환하는 것을 디코딩이라고 한다. 코드표 문자 데이터를 이진 데이터로 변환하기 위해서는 서로 합의된 약속이 필요하다. 여기서 사용하는 것이 코드표이다. 컴퓨터에서 문자를 표현하기 위해 문자 - 코드가 1:1로 매핑된 표 코드표에는 우리가 사용하는 문자와 그에 해당하는 코..
AWS IAM은 AWS의 리소스에 대한 접근 권한을 설정할 수 있는 서비스입니다. IAM은 다음의 세가지 요소를 통해 접근 권한을 설정할 수 있습니다. 접근 주체: AWS의 리소스에 접근하고자 하는 주체(유저, AWS 리소스, 그룹 등...) AWS 리소스: EC2, storage, secret manager, 사용자 등의 접근 주체가 접근하고자 하는 AWS 서비스 접근 권한: AWS 리소스에 대한 조회, 추가, 수정.. 등의 접근 주체가 수행하고자 하는 권한 예를 들어 새로 생성한 유저가 EC2 인스턴스에 대한 연결 권한이 없는 경우 연결 권한을 부여하여 연결이 될 수 있도록 해야 합니다. 여기서 새로 생성한 유저가 접근 주체에 해당하고, EC2 인스턴스가 AWS 리소스가 되며, 연결 행위 가 접근 권..
ec2 인스턴스에 볼륨을 추가하는 방법을 공유합니다. 볼륨 추가 방법 1. 볼륨 생성 EC2 메뉴 -> EBS -> 볼륨 추가 생성하고자 하는 볼륨의 크기와 유형 등 기본 설정을 입력하여 추가하고자 하는 볼륨을 생성합니다. 2. 볼륨 연결 EBS -> 연결하고자 하는 볼륨 선택 -> 작업 -> 볼륨 연결 생성된 볼륨을 EC2에 연결합니다. 디바이스 이름은 기본 루트 볼륨의 이름을 피해 지정하여 입력합니다. 3. 볼륨 마운트 볼륨은 EC2인스턴스에 연결(매핑) 되었지만, 시스템에 마운트 되지는 않은 상태이므로 추가적으로 마운트 하는 과정이 필요합니다. 마운트: 물리적인 디바이스를 특정 디렉토리에 연결하는 작업 즉 디바이스(물리 장비) 자체는 EC2에 연결이 되었지만, OS에서 접근은 불가능한 상태입니다. ..
4. TCP 특징 point to point 소켓 한 쌍 끼리의 통신만 책임짐 reliable, in order byte steam full deplex: 데이터가 양방향으로 이동함 각 point가 sender buffer, receiver buffer를 소유함 connection oriented flow control: receiver의 buffer가 넘치지 않는 수준으로만 데이터 전송 congestion control: 내부 네트워크가 받아들일 수 있는 수준으로만 데이터 전송 계층간 이동 단위 application: message - 실제 전송하고자 하는 데이터 transport: segment - message(DATA) + Header(부가 정보) network: packet - segment(D..
1. multiplexing, demultiplexing tansport layer에서 multiplexing, demultiplexing을 수행한다. multiplexing: application layer의 소켓에서 요청한 여러 데이터를 감싸, 헤더를 포함하여 segment로 만들고 network layer로 내림 demultiplexing: segment를 풀어 데이터를 목적지 process에 데이터를 전달함. input(segment)은 하나 output(process)은 여러개 segment는 data부 header부로 구성된다. header부의 destination port를 확인하여 목적지 process(소켓)에 데이터를 전달한다. Connection oriented demultiplexin..
1. application layer 실제 컴퓨터에서 작동하는 프로세스가 속한 계층 네트워크는 다른 컴퓨터의 프로세스간 통신 클라이언트 - 서버의 프로세스간 통신 socket: 통신을 위한 interface. 프로세스가 OS에 네트워크 통신을 요청할 때 사용하는 interface IP: 네트워크상 host 연결을 위한 주소. host를 식별하는데 사용 port: 프로세스의 socket 연결을 위한 주소. host의 프로세스를 식별하는데 사용 socket 프로세스는 소켓을 통해 통신한다. application layer에서 transport layer에서 제공하는 소켓에 의존한다. 소켓은 process에서 전달하는, process로 전달되는 데이터 제어 transport layer에 대한 요구 applic..
1. 통신 서비스 protocol 컴퓨터 네트워크를 위한 약속 모든 통신은 프로토콜에 의해 제어됨 TCP 연결지향 신뢰성있는(reliable), 바이트 순서를 지켜서 전달되는 스트림 데이터 전달 흐름 제어: 수신자 송신자 사이에서 흐름 제어 송신측에서 수신측의 허용 데이터 처리량 보다 많은 데이터를 보내는 경우 TCP가 제어 혼잡 제어: 네트워크 회선에 따라 제어 UDP 어떠한 제어 없이 데이터 전송 데이터 유실 가능성 발생 2. 라우터 라우터의 데이터 전달 방식 circuit switching: 목적지 까지의 회선을 미리 연결해서 유저에게 제공 e.g 유선 전화망 packet switching: 패킷 단위의 데이터를 네트워크 링크를 통해 목적지로 전송 인터넷에서 사용하는 방법 packet delay 패..
B tree B tree는 root에서 leaft 노드 까지 모든 path의 길이가 동일한 tree 이며, Balanced 의 약자를 사용하여 B tree라 합니다. 인덱스를 조직하는 용도로 사용되며, m-원 탐색 트리로 키 값을 효율적으로 탐색할 수 있습니다. m-way search tree m-원 탐색 트리(m-way search tree) 혹은 다원 탐색 트리(multi search tree)라고도 합니다. 다원 탐색 트리는 하나의 노드가 최대 m개의 서브 트리를 가질 수 있습니다. 이진 탐색 트리는 m=2인 m-원 탐색 트리로 볼 수 있습니다. 특징 B tree는 탐색을 효율적으로 하기 위한 몇 가지 특징이 있습니다. 높이가 h인 m-원 트리는 최대 m^h - 1 개의 키 값을 저장할 수 있습니다..