도커의 network 설정 중 bridge는 docker0이라는 네트워크를 사용한다. 



$ docker network inspect bridge

[

    {

        "Name": "bridge",

        "Id": "2b3831fb8f909d0a44d7a74f4f0df3327f1f02409096b4b8f4ba5a2ce5a5a7d6",

        "Created": "2019-06-28T22:52:24.973773315Z",

        "Scope": "local",

        "Driver": "bridge",

        "EnableIPv6": false,

        "IPAM": {

            "Driver": "default",

            "Options": null,

            "Config": [

                {

                    "Subnet": "1.1.0.0/16",

                    "Gateway": "1.1.0.1"

                }

            ]

        },

        "Internal": false,

        "Attachable": false,

        "Ingress": false,

        "ConfigFrom": {

            "Network": ""

        },

        "ConfigOnly": false,

        "Containers": {},

        "Options": {

            "com.docker.network.bridge.default_bridge": "true",

            "com.docker.network.bridge.enable_icc": "true",

            "com.docker.network.bridge.enable_ip_masquerade": "true",

            "com.docker.network.bridge.host_binding_ipv4": "0.0.0.0",

            "com.docker.network.bridge.name": "docker0",

            "com.docker.network.driver.mtu": "1500"

        },

        "Labels": {}

    }

]




host라는 모드가 있는데 이는 eth0을 사용하는 것이다. 

$ docker network inspect host

[

    {

        "Name": "host",

        "Id": "ee9bddcf9dc5a7804f63522a9740d3226e8df3ce31575cfc9a7ebbd0f7d5a23d",

        "Created": "2018-10-15T07:14:31.9624055Z",

        "Scope": "local",

        "Driver": "host",

        "EnableIPv6": false,

        "IPAM": {

            "Driver": "default",

            "Options": null,

            "Config": []

        },

        "Internal": false,

        "Attachable": false,

        "Ingress": false,

        "ConfigFrom": {

            "Network": ""

        },

        "ConfigOnly": false,

        "Containers": {},

        "Options": {},

        "Labels": {}

    }

]


또한 17.06부터 docker container create를 사용할 때 --network host를 사용하면 eth0을 바로 사용할 수 있다. 



kubernetes에서도 이와 비슷한 기능이 있다. 

pod의 모든 컨테이너에서 노드의 eth0을 사용할 수 있도록 HostNetwork(즉 hostNetwork: true)을 설정할 수 있다.  








Posted by 김용환 '김용환'

댓글을 달아 주세요


카프카의 MirroMaker



https://cwiki.apache.org/confluence/display/KAFKA/KIP-3+-+Mirror+Maker+Enhancement

카프카 브로커의 특정 topic을 다른 곳으로 다른 브로커로 보낼 수 있는 간단한 기능이다.

복제가 된다는 점에서 훌륭한 툴이다.


(최근에 elasticsearch도 cross cluster replication를 선보였다.)



 replicator에 비하면 약한 부분이 있기는 하지만 무료이다.


https://docs.confluent.io/current/multi-dc-replicator/mirrormaker.html


사용법은 원체 간단하다. 

> bin/kafka-mirror-maker.sh

      --consumer.config consumer.properties

      --producer.config producer.properties --whitelist my-topic


특이할 점은 consumer 쓰레드 개수를  조절할 수 있다.


소스를 살펴보면,

https://github.com/apache/kafka/blob/trunk/core/src/main/scala/kafka/tools/MirrorMaker.scala


중요한 부분은 consumer는 multi-thread로 실행되고

producer는 while문에서 flush이 이루어지기 때문에. consumer 쪽 보다는 데이터가 많아진다면 producer쪽 이슈가 생길 수 있다. 


Posted by 김용환 '김용환'

댓글을 달아 주세요



pipenv 실행시 pkg_resources.DistributionNotFound가 발생하면

재설치를 진행한다. 



brew를 사용 중이라면

brew uninstall pipenv를 실행 후 

brew install pipenv를 실행한다

Posted by 김용환 '김용환'

댓글을 달아 주세요


최근에 국세청에 "종합소득세 경정 청구"를 올려 환급받았다. 

세무사 없이 공부겸사 도전해 봤고 괜찮았다. 도움이 될만한 링크를 작성한다.





경정 청구 개념에 대한 설명이 잘 나온 글이다.

https://1boon.kakao.com/moneyplus/taxKyunga2


경정 청구 방법

https://blog.naver.com/you_wish/221461237647
(경정 청구할 때 통장 번호를 입금했으면 통장으로 입금된다. 이 방법이 좋은 이유는 따로 우체국 갈 필요가 없다. 7월 2일 통장으로 입금되었다)


5월에 경정 청구를 진행한 후, 6월 쯤에 세무소 직원에게서 연락이 와서 이런 부분은 이렇다. 저런 부분은 이래서 실제는 이렇게 될 것이라고 얘기해 주었다.


그리고 7월 경에 세무서에서 경정 청구 결과에 대한 편지가 왔다.


홈택스의 세금 신고 결과 조회에서 경정 청구 신고 내용을 확인할 수 있다.

https://www.hometax.go.kr/websquare/websquare.wq?w2xPath=/ui/pp/index_pp.xml&tmIdx=01&tm2lIdx=0107000000&tm3lIdx=0107010000



국세환급금 통지서 재발급은 다음을 참고 한다.

https://youandyou1.tistory.com/556

(국세환급금 통지서를 못받으면 재발급 가능하다. 경정 청구시 환급받을 계좌를 등록했으면 바로 통장으로 들어온다)




검색을 해보면 환급된 국세 외에 지방세(10%)를 환급받으려면 따로 '지방소득세 소득세분 환급청구서'를 별도 작성한다고 한다고 하나..

https://cafe.naver.com/ak573/428032

https://m.blog.naver.com/PostView.nhn?blogId=sofushgdma39&logNo=221217593100&proxyReferer=https%3A%2F%2Fwww.google.com%2F


세무서에 전화를 해보니, 지자체에 알려줬으니 따로 신청할 필요가 없다고 알려준다.

하지만 종합 소득세 환급이 된 후, 2주일이 지나도 지방 소득세가 환급되지 않으면 

세무서와 지차체(구청)으로 전화해서 환급 일정을 알아본다.



그러나 중간에 이슈가 있어서 세무서-구청으로 전달되지 않는 경우가 있다. 

지자체 지방세과에 전화해서 확인해보니 경정 청구건을 못 받았다고 한다. 



결국 이차저차 두 군데 전화하고 담당자 확인해서 세무서에서 지자체 지방세과로 전달이 안된 부분이 생겼다.  좀 늦게 전달될 것 같다고 세무소 직원이 다음 달 안에 지방 소득세 환급이 될 것이라 얘기해주었다.


(참고로 동마다 담당자가 있으니.. 담당 공무원 전화번호를 알아두면 좋다. 참고할 것!!)






Posted by 김용환 '김용환'

댓글을 달아 주세요

컬럼에 "COLLATE utf8mb4_unicode_ci" 를 삭제하고 싶다면 다음을 진행한다.


1. 테이블 스키마에 COLLATE utf8mb4_unicode_ci 를 먼저 삭제한다.
> ALTER TABLE samuel_test DEFAULT CHARACTER SET utf8mb4;


2. 그다음에 컬럼에 COLLATE utf8mb4_unicode_ci 삭제한다 (먼저 컬럼 속성을 변경하지 않는다)

> ALTER TABLE samuel_test CHANGE `SESSION_ID` `SESSION_ID` char(36) NOT NULL; 




예시는 다음과 같다.  아래와 같은 테이블이 있다.



DROP TABLE samuel_test;


# dummy

CREATE TABLE `samuel_test` (

  `id` char(36) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL,

  `name` bigint(20) NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;



# 안바뀐다. 

ALTER TABLE samuel_test CHANGE `id` `id` char(36) NOT NULL;



# 먼저 테이블 스키마에 COLLATE 부분을 먼저 정리

ALTER TABLE samuel_test DEFAULT CHARACTER SET utf8mb4;


# 테이블 스키마에 COLLATE 부분이 정리된 것을 확인할 수 있다.

SHOW CREATE TABLE samuel_test;


ALTER TABLE samuel_test CHANGE `id` `id` char(36) NOT NULL;


SHOW CREATE TABLE samuel_test;



이제 제대로 정리되었음을 알 수 있다.



samuel_test, CREATE TABLE `samuel_test` (

  `id` char(36) NOT NULL,

  `name` bigint(20) NOT NULL,

  PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4


Posted by 김용환 '김용환'

댓글을 달아 주세요