도커의 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 김용환 '김용환'
댓글을 달아 주세요