일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |
- bootstrap.server
- kafka server
- 에라토스테네스의 체
- strlen()
- fwrite()
- 정보처리기사
- Kafka
- 도커
- 10989
- 백준
- 하둡 설치
- handling
- fread()
- 2025 1회
- ifdef
- fgets()
- 하둡3 설치
- sizeof()
- endif
- 카프카 서버
- 2025
- 합격 후기
- Docker
- EOF
- 하둡3
- 1929
- 카운팅 정렬
- scanf()
- SQLD
- half-close
- Today
- Total
목록study (29)
팥빵 먹으면서 코딩하는 블로그

도메인 이름(Domain Name)과 DNS 서버도메인 이름"영문"으로 표현되는 계층적 주소 체계 방식Human-readable addressIP주소를 대신해서 사용하는 서버의 주소 : www.google.com도메인 이름은 IP 주소로 변환이 된 이후, 서버에 접속이 가능함 -> 도메인이 있음에도 접속하려면 IP가 필수적으로 필요하므로.각 나라마다 존재하는 Network Information Center에서 관리한국은 KRNIC 담당Domain Name System(DNS)IP주소와 / 도메인 이름 사이에서 / 변환을 수행하는 시스템경북대 DNS 서버: 155.230.10.2DNS 서버도메인 이름을 IP 주소로 변환해주는 서버www.google.com > 해당 IP 주소로 변환DNS는 일종의 분산 데이..

일방적인 연결 종료의 문제점close() 함수의 기능소켓의 완전한 소멸을 의미소켓이 소멸되므로, 더이상의 입출력은 불가능상대방의 상태에 상관없이 일방적인 종료상대의 호스트의 데이터 송수신이 아직 완료되지 않은 상황이면, 문제 발생 가능성 증가half-close 기법일방적인 소켓 종료로 인해 발생되는 문제점 보완 소켓의 half-closeHalf-close입력 또는 출력 스트림 중 하나만 종료시키는 방법일반적을 half-close라고 하면, 출력 스트림만 종료하는 것을 의미한다.입력 스트림은 여전히 돌아가고 출력 스트림만 종료되므로, 전달할 데이터는 이미 소켓의 버퍼에 저장되어 있어서 연결이 끊겨도 flush() 되어서 전달이 된다.종료를 원한다는 것은, 더 이상 전송할 데이터가 존재하지 않는 상황따라서 ..

구조체 정렬이기종 시스템간 데이터 송수신구조체 정렬 방식구조체 내부에서 가장 큰 데이터 타입의 배수로 필드를 정렬이렇게 되면 메모리 낭비 및 네트워크 대역폭 손실을 초래한다.Zero padding: 0으로 채워진 데이터(낭비된 데이터)하지만 변수의 위치를 바꿈으로써 padding값을 줄일 수 있다.구조체 변수들의 가장 위에서부터 내려가며 변수의 maximum byte값을 적용한다.따라서 변수의 작은 값부터 큰 값까지 정렬하여 변수의 위치를 정하는 게 가장 효율적이다. 구조체 정렬 방법: #pragma packpack 지시자코드 상에서 pack 이후에 위치한 구조체의 정렬 방식을 지정한다.한마디로, 구조제의 바이트 정렬 값을 지정#pragma pack(push, 정렬 바이트수)정렬 바이트 수로 구조체를 정..

UDP 소켓의 특성과 동작원리UDP 소켓 데이터 송수신Flow control이 없음UDP 소켓은 SEQ, ACK과 같은 메세지를 전달하지않음단, 그러므로 데이터 전송이 빠름연결 설정과 연결 해제 과정이 없음단, (안전성보다) 성능이 우선시 될 때 UDP를 사용한다.송수신하는 데이터의 양은 작으면서 빈번한 전송이 필요한 경우 UDP가 훨씬 효율적TCP를 쓰든 UDP를 쓰든 IP는 반드시 거친다.패킷 전송에 있어 UDP와 IP의 역할 : 목적지를 찾기 위해서 IP를 거친다.UDP 소켓에서 port 번호 참조해서 최종 응용 프로그램에 전달한다.이건 TCP도 마찬가지UDP HeaderTCP와 달리 Source port와 Destination port번호밖에 없다. 이 두 가지를 가지고 응용 프로그램에 데이터를 ..

TCP 프로토콜 스택TCP/IP 프로토콜 스택인터넷 기반의 데이터 송수신을 목적으로 설계된 스택7계층으로 세분화 되며, 4계층으로 표현함 [ Application 계층 ] │ │[ TCP 계층 ] [ UDP 계층 ] └――――┬――――┘ [ IP 계층 ] │ [ LINK 계층 ] TCP/UDP 소켓의 프로토콜 스택 비교TCP 소켓의 스택 Flow -> sock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);UDP 소켓의 스택 Flow -> so..
이 과정은 kafka가 정상적으로 동작하는지 테스트하는 용으로 수행되었다. 테스트는 아래와 같은 명령어 사용을 시작으로 한다.root로 root권한을 얻을 수 있고(사용하지 않아도 무방하다), kafka-0은 kafka의 이름이다.docker exec -it --user root kafka-0 /bin/bash # 1. 현재 실행 중인 컨테이너 중단 및 제거 docker-compose down # 2. 변경된 docker-compose.yml을 기반으로 새로 빌드 및 실행 docker-compose up --build -d topic 생성하기일단 메세지를 보낼 토픽을 만들어 보기로 했다.$ bash# cd /opt/kafka/bin$ bash# kafka-topics.sh --create --zookee..
의문) docker-compose up -d로 실행한 컨테이너는 어떻게 종료해야 할까컨테이너는 그냥 놔둬도 되지만, 불필요한 리소스 사용을 피하려면 종료하는 것이 좋다.현재 컨테이너 내에서 Kafka를 실행하고 있음을 감안 컨테이너를 꺼야 하는 이유불필요한 리소스 소모Kafka와 같은 서비스는 계속 실행되며 CPU, RAM을 사용한다.Docker 컨테이너가 백그라운드에서 실행 중이라 모니터링 없이 방치될 수도 있다.포트 충돌 가능성Kafka는 9092 포트를 사용한다.다음 번 실습할 때 이미 해당 포트가 사용 중이라 실행 오류가 발생할 가능성이 있다.Docker 용량 관리컨테이너가 계속 실행되면 로그 파일이 쌓이고 디스크 공간 차지. 실습 종료 후 컨테이너 정리하는 방법1) 컨테이너 정지 (일시 중지)d..

소켓 타입과 프로토콜 설정프로토콜이란?컴퓨터 상호간의 데이터 송수신에 필요한 통신규약소켓을 생성할 때 기본적인 프로토콜을 지정한다.#include int socket(int domain, int type, int protocol);-> 성공 시 파일 디스크립터, 실패 시 -1 반환domain[PF_INET] : IPv4type[SOCK_STREAM] : TCPprotocol[0]***매개변수(domain, type protocol) 모두 프로토콜 정보와 관련이 있음 1. 프로토콜 체계 (protocol family)IP_INET은 IPv4 인터넷 프로토콜을 의미한다.socket()함수의 domain 파라미터에 적용2. 소켓의 타입데이터 전송방식을 의미한다. 소켓이 생성될 때 소켓의 타입도 결정되어야 한다..