전체 글
-
golang struct 이해하기Language/Golang 2023. 9. 18. 06:50
- 목차 * 소개 struct 는 go 에서 커스텀 타입의 데이터를 표현하기 위해서 사용됩니다. 다른 프로그래밍 언어의 class 와 견줄 수 있습니다. 데이터 타입으로써 중점을 두기 때문에 method 를 가지진 않으며 여러 타입의 field 들을 가집니다. * 사용법 간단하게 animal 이라는 struct 를 정의해보겠습니다. string 타입의 name 만을 가지는 struct 입니다. type animal struct { name string } go 에서 struct 를 정의할 땐, type 키워드를 사용합니다. type + struct name + struct 조합의 선언을 통해서 struct 를 정의할 수 있습니다. 이제 정의된 animal 이라는 커스텀 타입 객체를 생성해보겠습니다. pa..
-
[Linux] SSH (Secure Shell)Linux & Shell 2023. 9. 17. 11:39
- 목차 관련 글 https://westlife0615.tistory.com/296 RSA 암호화 이해하기 - 목차 * 소개 RSA 는 Rivest-Shamir-Adleman 의 약자입니다. 암호화 방식의 하나로 Rivest, Shamir, Adleman 세 사람에 의해서 개발된 암호화 방식이라 세 사람의 이름의 첫 글자를 따서 RSA 라고 불립니다. RSA westlife0615.tistory.com * 소개 SSH 는 Secure Shell Protocol 의 약자입니다. 두 컴퓨터 간의 통신을 위한 프로토콜로써 보안상 안전하게 다른 컴퓨터에 접근할 수 있게 도와주는 프로토콜입니다. SSH 는 Client - Server 구조로 동작하며, Client 컴퓨터가 Server 컴퓨터에 접근하는 방식을 취..
-
Nginx HTTP Upstream 알아보기Nginx 2023. 9. 16. 20:56
- 목차 관련된 글 https://westlife0615.tistory.com/341 Nginx 구조 알아보기 - 목차 관련된 글 https://westlife0615.tistory.com/45 TCP Socket 알아보기 - 목차 소개. TPC 소켓에 대해서 가볍게 알아보는 시간을 가지려고 합니다. 소켓은 TPC 소켓과 같은 네트워크 통신 뿐만 아니라 IPC (In westlife0615.tistory.com Upstream 이란 ? 데이터의 흐름을 스트림이라고 부르기도 합니다. 실제 스트림의 사전적 의미는 흐르는 강물을 뜻하는데요. 데이터의 흐름이 마치 흐르는 강물과 같다고 하여 데이터 스트림이라고 불립니다. Nginx 은 Reverce Proxy 로써 클라이언트와 어플리케이션 서버 사이에 위치하게 ..
-
Linux /etc/resolv.confLinux & Shell 2023. 9. 13. 23:03
- 목차 소개 * resolv.conf 파일은 네임서버의 ip 를 등록하는 설정 파일입니다. 아래의 예시와 같이 네임서버 의 ip 를 등록할 수 있습니다. nameserver 219.250.36.130 nameserver 210.220.163.82 위 예시에서 nameserver 219.250.36.130 구문은 nameserver 라는 directive 를 사용하여 네임서버의 IP 를 등록하는 과정인데요. nameserver 219.250.36.130 은 첫번째 네임서버의 ip 로 219.250.36.130 를 설정하고, nameserver 210.220.163.82 은 두번째 네임서버의 ip 로 210.220.163.82 를 설정함을 뜻합니다. nameserver directive 는 여러번 설정될 ..
-
Kafka Consumer 개념Kafka 2023. 9. 13. 17:14
- 목차 * 소개Kafka Consumer 가 Kafka Broker 로부터 메시지를 읽어들이는 전반적인 과정을 설명하고자 합니다. * partition - consumerKafka Producer 가 생성하는 메시지들은 Topic 의 여러 Partition 에 분산저장됩니다. Kafka Consumer 가 특정 Topic 을 조회한다는 의미는 Topic 의 Partition 들을 개별조회하는 것을 뜻합니다. 만약 Topic A 의 Partition 이 4개라면 Kafka Consumer 들은 각각의 Partition 을 조회하게 됩니다. 그리고 Partition Consumer 의 매칭의 대전제는 N : 1 으로 적용되어야 한다는 것인데요. 하나의 Partition 을 2개 이상의 Consumer 가 ..
-
[linux] jq 사용법Linux & Shell 2023. 9. 12. 22:07
목차 [json] key 로부터 value 추출 echo '{"a":1}' | jq '.["a"]' >> 1 [json] netsted json 의 value 추출 echo '{"outer-key" : {"nested-key" : true}}' | jq '.["outer-key"]' >> { "nested-key": true } echo '{"outer-key" : {"nested-key" : true}}' | jq '.["outer-key"] | .["nested-key"]' >> true echo '{"outer-key" : {"nested-key" : {"inner-key": false}}}' | jq '.["outer-key"] | .["nested-key"] | .["inner-key"]' >>..
-
MySQL ReplicationDatabase 2023. 9. 11. 15:32
소개 * binary log 는 데이터의 변형 사항을 기록하는 로그 파일입니다. Table 에 대한 create, drop, truncate 와 Row 에 대한 insert, update, delete 에 대한 쿼리을 모두 기록합니다. 해당하는 쿼리들은 binary format 으로 기록되기 때문에 binary log 라고 불립니다. MySQL Replication 은 Source MySQL 에 저장된 binary log 를 적극 활용합니다. Replica MySQL 이 Source MySQL 의 binary log 내용들을 읽어들여 복제를 시도하죠. 이렇게 복제된 2개 이상의 데이터베이스가 가지는 여러 이점들이 있습니다. 먼저, 복제된 서버가 존재하기 때문에 가용성을 높일 수 있습니다. 그리고 읽기 요..
-
MySQL my.cnfDatabase 2023. 9. 11. 09:24
소개 my.cnf 라는 이름은 MySQL 의 설정파일의 이름입니다. cnf 라는 확장자명은 유닉스 환경에서 사용되는 MySQL 설정 파일의 확장자이며, 윈도우 계열에서는 my.ini 라고합니다. 설정 파일은 mysql 의 설정을 위한 내용을 포함하는데요. mysql 을 구성하는 여러가지 요소들이 존재하기 때문에 각각의 구성요소 별로 설정이 가능합니다. 예를 들어, [client] default-character-set = utf8 socket=/var/run/mysqld/mysqld.sock [mysqld] bind-address = 0.0.0.0 soket = /var/mysql/mysql.sock port = 3306 위 예시는 client 와 mysqld 의 설정을 각 block 별로 적용합니다. ..
-
[ pytorch ] ConvTranspose2d 알아보기AI-ML 2023. 9. 11. 09:19
- 목차 키워드.- Convolution- CNN- AutoEncoder 들어가며.CNN 이나 AutoEncoder, VAE (Variational Auto Encoder) 등을 구현할 때에 Convolution Layer 을 위해서 Con2d 레이어가 사용됩니다.Convolution Layer 로 구성된 Neural Network 는 필연적으로 뉴런의 사이즈가 작아지는 방향으로 이어집니다.예를 들어, 아래의 이미지처럼 36x36 사이즈의 이미지는 9x9 커널과 콘볼루션 연산을 통해 28x28 사이즈로 크기가 줄어듭니다.그리고 14x14 사이즈의 텐서 또한 5x5 커널과 연산되어 10x10 크기의 텐서로 변환됩니다. 즉, CNN 을 통한 Classification 이나 Auto Encoder 의 En..
-
Kafka Producer Process (카프카 프로듀서 과정)Kafka 2023. 9. 9. 00:09
소개kafka producer 가 kafka broker 에게 메시지를 전송하는 과정에 대한 설명을 해보겠습니다. kafka 는 binary wire protocol 이라는 네트워크 프로토콜을 활용하여 브로커와 통신합니다. 여러가지 언어로 작성된 kafka client library 들 또한 binary wire protocol 을 구현한 결과물입니다. 효율적인 통신을 구현하기 위해서 여러가지 단계를 거치게 되는데 각 단계에 대해서 알아보겠습니다. ProducerRecordProducerRecord 는 kafka producer 와 kafka broker 가 통신하기 위해서 사용되는 데이터의 기본적인 형태입니다. ProduerRecord 의 형태는 대략 아래와 같은 구조체의 모양을 가지며, topic 부..