분류 전체보기
-
Mysql 개요Database/Mysql 2023. 2. 17. 20:54
개요 MySQL은 세계에서 가장 많이 쓰이는 오픈 소스의 관계형 데이터베이스 관리 시스템(RDBMS)이다. 다중 스레드, 다중 사용자 형식의 구조질의어 형식의 데이터베이스 관리 시스템으로서 오라클이 관리 및 지원하고 있으며, Qt처럼 이중 라이선스가 적용된다. 하나의 옵션은 GPL이며, GPL 이외의 라이선스로 적용시키려는 경우 전통적인 지적재산권 라이선스의 적용을 받는다. 위와 같은 지원 방식은 자유 소프트웨어 재단이 프로젝트에 저작권을 적용하는 방법과 비슷한 JBoss의 모델과 유사하다. 그러나 기반코드가 개인의 소유자에게 저작권이 있고 커뮤니티에 의해 개발되는 아파치 프로젝트와는 다르다. MySQL AB는 또한 MaxDB라고 불리는 MySQL AB와는 기반코드가 다른 데이터베이스 관리 시스템을 판매..
-
CURL 활용Language/C & C++ 2023. 2. 17. 20:35
Windows 와 Linux 에서 활용할 수 있는 크로스플랫폼 HTTP Library 중 하나인 CURL의 사용법에 대하여 안내합니다. Windows 환경에서는 multi_perform 진행시 로직에 따라 메모리에 문제가 발생되는 것으로 확인되어 따로 안내하지않습니다. 해당 라이브러리는 HTTP 의 기본적인 Header, Body, Action 에 대한 지정히 가능하며 각기 콜백을 통하여 진행률 표기, 디버그 로깅, Response 데이터 확인이 가능토록 지원하고 있습니다. CURL Lib 을 별도로 Wrapping 하여 보다 편하게 활용토록 하는 오픈소스들도 존재합니다. 아래는 Header 지정, Body 지정, 각 설정에 대하여 활용하는 방안에 대하여 가이드하는 코드입니다. CURL* CURL_ = ..
-
WebSockify jsLanguage/Javascript 2023. 2. 17. 20:18
WebSocket 와 TCP 간 미들웨어로써 동작하며, 각 프로토콜간 Conversion 을 통해 전달하는 역활을 합니다. nodejs 를 기준으로 작성된 스크립트로써 바이너리화도 가능합니다. 해당 소스를 기준으로 Websocket이나 TCP Socket 단의 동작을 다른 프로토콜로 대체하여도 활용가능할 것으로 보입니다. 로그는 파일로그를 남기게끔 되어있으며, 필요에 따라 파라미터를 환경변수에서 읽어오는 형태의 스크립트로 변경가능합니다. 일반적으로는 연동단에서 필요에 따른 코드를 작성하는것이 맞으나, 프로젝트 진행중 긴급하게 변경해야하는 경우나 고객사의 강력한 요구로 인한 조치시 단기간에 활용가능할것으로 확인됩니다. 아래는 해당 스크립트의 Websocket 메시지 처리 및 연결 종료, 에러처리에 대한 코..
-
Replicaset & DeploymentMSA/Kubernetes 2023. 2. 16. 20:42
ReplicaSet ( self-healing ) 파드를 식별하는 방법이 명시된 셀렉터, 유지해야 하는 파드 개수를 명시하는 레플리카의 개수, 그리고 레플리카 수 유지를 위해 생성하는 신규 파드에 대한 데이터를 명시하는 파드 템플릿을 포함한다. 레플리카셋은 필드에 지정된 설정을 충족하기 위해 필요한 만큼 파드를 만들고 삭제한다. 레플리카셋이 새로운 파드를 생성해야 할 경우, 명시된 파드 템플릿을 사용한다. 레플리카셋은 파드의 metadata.ownerReferences 필드를 통해 파드에 연결되며, 이는 현재 오브젝트가 소유한 리소스를 명시한다. 레플리카셋이 가지고 있는 모든 파드의 ownerReferences 필드는 해당 파드를 소유한 레플리카셋을 식별하기 위한 소유자 정보를 가진다. 이 링크를 통해 ..
-
Kubernetes 개요MSA/Kubernetes 2023. 2. 15. 19:35
Kubernetes k8s , kube 등으로 불림 한국어 매뉴얼을 제공한다. 테이너화된 애플리케이션을 자동으로 배포, 스케일링 및 관리해주는 오픈소스 시스템입니다. 내용추가 필요 용어 Node : 노드는 클러스터에 따라 가상 또는 물리적 머신일 수 있다. ( 장비를 뜻함 ), 노드는 마스터에 의해 관리된다. 하나의 노드는 여러개의 Pod 를 가질 수 있고, 마스터는 클러스터 내 노드를 통해서 파드에 대한 스케쥴링을 자동으로 처리한다. Pod : Cluster 에서 실행 중인 Container 집합으로 일부 자원을 공유한다. 볼륨과 같은, 공유 스토리지 클러스터 IP 주소와 같은, 네트워킹 컨테이너 이미지 버전 또는 사용할 특정 포트와 같이, 각 컨테이너가 동작하는 방식에 대한 정보 Control Pla..
-
Kafka Golang 예제Language/Golang 2023. 2. 12. 14:38
Example For Sarama call_topic 이라는 이름을 가진 Topic 에 Partition 0 번에 Event를 전달하는 예시 // ProducerTest package main import ( "fmt" "time" "github.com/Shopify/sarama" ) //Reference : https://pkg.go.dev/github.com/shopify/sarama func SyncWriter(brokerList []string) sarama.SyncProducer { // For the data collector, we are looking for strong consistency semantics. // Because we don't change the flush setting..
-
Kafka Consumer Group 및 RebalancingMSA/Kubernetes 2023. 2. 10. 21:42
Consumer Group Consumer 의 집합을 뜻하며, Consumer 대비 Partition 수에 따라서 동작이 발생된다. Consumer > Partition 의 경우 Partition 수량을 초과하는 Consumer 는 동작하지 않는다. Consumer < Partition 의 경우 1개의 Consumer 에서 다수의 Partition 에 대하여 지정된 방식에 따라 동작한다. ( ex . (P1,P2,P1,P2) - RoundRobin etc.. ) Consumer 와 Partition 은 1:1 맵핑관계이다. ( Partition 입장 ) Consumer 와 Partition 은 1:n 맵핑관계이다. ( Consumer 입장 ) 단일 Partition 에서 다수의 Consumer 를 사용하..
-
Kafka 설치MSA/Kubernetes 2023. 2. 10. 21:37
Kafka Installation # Java 1.8.0 Upper install needed $ yum install java $ curl -o kafka_2.13-2.8.0.tgz https://mirror.navercorp.com/apache/kafka/2.8.0/kafka_2.13-2.8.0.tgz $ tar -xzf kafka_2.13-2.8.0.tgz $ cd kafka_2.13-2.8.0 # Startup $ bin/zookeeper-server-start.sh config/zookeeper.properties & $ bin/kafka-server-start.sh config/server.properties & # Topic Create ( Default ) $ bin/kafka-topics..