[입 개발] SipHash의 사용, Data DDOS를 방지해볼까?
Python 3.3 부터는 내장 hash 함수가 RANDOM SEED를 이용하는 방식으로 바뀌었고, 내부 함수도 내부적으로 SipHash 를 쓰도록 바뀌었고, Redis 에서도 4.x 부터는 내부 해쉬 방식이 SipHash 를 쓰는 것으로 바뀌었습니다. 그러면 잘 쓰고 있던(?) 기존의 hash를 왜 siphash라는 구조로 바꾸는 것일가요? 아, 일단 먼저...
View Article[입 개발] Memcrashed DDOS에 대해서 살짝 아는척 해봅시다.
우와, 최근에 CloudFlare 에서 아주 재미있는 제목으로 글을 냈습니다. 제목은 Memcrashed – Major amplification attacks from UDP port 11211 로, UDP 11211 포트를 이용한 대규모 DDOS 어택 정도로 생각하시면 될듯합니다.(영어를 못해서 의역으로…) 사실 원문을 보시는게 더 쉽게 이해하실 듯...
View Article[입 개발] 전문가는 계속 공부하는 사람이다. –김창준님의 개발자 실력 평가 어떻게 할 것인가 후기
안녕하세요. 입개발 CharSyam입니다. 둘째가 100일을 넘어서 저녁 약속 없는 신데렐라 시간을 하다가, 김창준님이 “개발자 실력 평가 어떻게 할 것인가?” 에 대해서 강의하신다고 해서 마님에게 애교를 부리면 허락을 받고 세미나를 들으러 왔습니다. 평소 입개발자는 입개발의 단계를 올리기 위해서 부단히 노력해야 하며, 혀로 키보드 치기, 입에 발린...
View Article[입 개발] 신묘한 Python locals() 의 세계
오늘도 약을 팔러온 입개발 CharSyam 입니다. 오늘은 지인 분께서, Python에서 locals() 함수를 쓰면 local 변수를 참조할 수 있는데, 특정 현상은 이해가 안된다고 얘기를 하셔서, 한번 왜 그럴까에 꽃혀서 찾아본 내용을 정리할려고 합니다. 참고로, Python 쓰시는데 이런게 있구나 빼놓고는 아마 하등의 도움을 못 받으실 내용이니, 조용히...
View Article[입 개발] spring-security-oauth의 RedisTokenStore의 사용은 서비스에 적합하지 않습니다.
안녕하세요. 입개발 CharSyam 입니다. 저의 대부분의 얘기는 한귀로 듣고 한귀를 씻으시면 됩니다.(엉?) 일단 제목만 보면, 많은 Spring 유저들에게, 저넘의 입개발, 스프링도 모르면서라는 이야기를 들을듯 합니다.(아, 아이돌 까던 분들이 집단 따돌림을 당할 때의 느낌을 미리 체험할 수 있을듯 합니다. – 강해야 클릭율이 올라가는!!!) 먼저,...
View Article[입 개발] Redis 에서 zadd 와 zincrby 의 차이
안녕하세요. 입개발 CharSyam입니다. 오래간만에 포스팅을 하게 되네요. 오늘은 아주 간단한 것을 포스팅 할려고 합니다. 가끔씩 Redis의 sorted set 을 사용하는 명령중에 zadd 와 zincrby 가 있습니다. 과연 이 두 개의 명령은 어떤 차이가 있을까요? 결론부터 말하자면, zadd 와 zincrby 는 사실 같은 기능을 사용하는 아주...
View Article[입 개발] EXT4 에서 달라진 부분들 #1 – Flexible Block Group
사실 EXT4는 나온지 굉장히 굉장히 오래된 파일 시스템입니다. EXT의 역사를 보면 간략히 다음과 같습니다. EXT, 1992년 출시 EXT2, 1993년 출시 EXT3, 2001년 커널 2.4.15에 포함 EXT4, 2006년 커널 2.6.19에 포함 2008년 커널 2.6.28에 EXT4 안정 버전 포함 한마디로 굉장히 오래되었습니다. 거의 10년이...
View Article[입 개발] EXT4 에서 달라진 부분들 #2 –데이터 영역의 관리
EXT4가 들어오면서 크게 달라진 부분 그 두 번째는, 데이터 영역을 관리하는 방법입니다. 일단 기존에서 사용하던 방식을 알아보도록 하겠습니다. 파일시스템의 특성을 볼때는, 그 시기에 있던 기술의 한계를 알면 도움이 되는데, 최초에 ext가 나오던 시기는 그렇게 큰 파일이 많지는 않던 시기입니다. 즉 엄청 큰 파일을 처리할 일이 많지는 않던 시기입니다....
View Article[구글스터디잼] Kubernetes in the Google Cloud #1
해당 글은 현재 하고 있는 구글 스터디잼 Kubernetes in the Google Cloud 을 학습하는 과정에서 배우는 것을 정리하는 글입니다. 총 10개의 챕터가 있고 일단은 가장 처음 두 개인, Introduction to Docker, Hello Node Kubernetes 를 공부했는데… 1] Introduction to docker ->...
View Article[구글스터디잼] Kubernetes in the Google Cloud #2
해당 글은 현재 하고 있는 구글 스터디잼 Kubernetes in the Google Cloud 을 학습하는 과정에서 배우는 것을 정리하는 글입니다. 3장 부터 4장은 Kubernetes 에서 Pod, Service, Scaling과 deployment 를 보여주고, 5,6장은 젠킨스와 slackbot 예제를 보여주고 있습니다. 실제로 이 예제를 따라가다...
View Article[구글스터디잼] Kubernetes in the Google Cloud #3
해당 글은 현재 하고 있는 구글 스터디잼 Kubernetes in the Google Cloud 을 학습하는 과정에서 배우는 것을 정리하는 글입니다. * Setting up a Private Kubernetes Cluster 외부 IP를 가지고 않고 내부 네트워크 ip 대역만 가지고 동작하게 되는 쿠버네티스 클러스터를 설정하는 방법에 대해서 소개하는...
View Article[입 개발] spark-submit 시에 –properties-file 와 파라매터에서의 우선 순위
어쩌다보니… 갑자기 SparkSubmit 시에 사용되는 –properties-file(일종의 spark-defaults.conf)와 그냥 파라매터로 넘기는 것의 우선순위가 어떻게 적용되는지가 궁금해 졌습니다. 뭐, 당연히 일반적으로 생각하면 파라매터로 넘기는 것이 분명히 spark-defaults.conf 에 들어가있는 것 보다는 우선이 되는게 당연하겠지라는...
View Article[입개발] NAGLE 알고리즘과 TCP_CORK
어쩌다보니, 오늘 처음으로…(정말로 처음으로!!!) TCP_CORK라는 옵션에 대해서 찾아보게 되었습니다.(아니 이게 무엇이오 여러분!!!) TCP_CORK라는 옵션을 설명하기 전에 먼저 TCP_NODELAY라는 옵션이 있습니다. 원래 데이터 전송의 효율성을 취하기 위해서 기본적으로 TCP 전송에 Nagle이라는 알고리즘이 적용되어 있습니다. 대용량 파일을...
View Article[입 개발] Spark DataFrameWriter에서 saveAsTable 의 동작
s3 에 external table을 만들고 거기에 데이터를 넣는 작업을 하다가 이상한 현상을 경험했습니다. 다음과 같은 테이블을 만들고 create external table( id int, name varchar(22) ) LOCATION 's3://bucket/tmp/tmp1'; 아래 코드를 돌렸는데… val tb = spark.sql( """...
View Article[입 개발] Hive MetaStore 에서 Location은 어떻게 관리될까?
최근에 아주 이상한 에러를 경험했습니다. 다음과 같은 managed table 이 있다고 가정합니다. CREATE TABLE `test1`( `id` bigint PARTITIONED BY ( `datestamp` date) ROW FORMAT SERDE...
View Article[입 개발] Redis 버그 – Dataset 사이즈가 200GB가 넘어가면 죽는다구요?
오늘은 최근에 이슈가 되었던, Redis 버그에 대해서 분석해보는 시간을 가지도록 하겠습니다. 해당 이슈는 Redis issue 4493 를 보시면 됩니다. 실제로 해당 이슈는 2017년 11월 30일에 올라왔습니다. 실제로 현재 버전에는 다 패치가 되어있습니다. 그러나 DBMS나 캐시등의 툴은 큰 보안버그가 없는 이상 업데이트가 굉장히 느립니다.(성능에...
View Article[입개발] Spring-data-redis 에서 Jedis로 TLS를 쓰면서 인증서 체크는 Disable 하는 방법
흐음… 최근에 Redis를 TLS로 사용해야 할 일이 생겼습니다.(아시는 분은 아시겠지만, 저는 자바맹, Spring 맹이라…) Spring-data-redis 를 쓰는 서비스에서 TLS를 키는 것은 사실 아주아주아주 쉽습니다. 일단 저희는 spring-data-redis에서 Jedis를 쓰고 있는 상황입니다.(여기서 왜 lettuce 안쓰고 Jedis...
View Article[입 개발] redis-cli 에서 –rdb는 주의해서 사용하셔야 합니다.
최근에 지인에게서 문의가 왔습니다. 뭔가 특별히 한게 없는데, Redis 서버가 죽어버리고 재시작했다고, 이것저것 알아보니, 일단 메모리를 많이 사용하고 있던 상태였습니다. 웬지 느낌은, 아주 전통적인 Redis가 데이터 저장을 위해서 fork하면서 메모리를 추가로 사용하고, 이걸로 인해서 OOM등이 발생한게 아닐까라고 생각을 했는데… 지인의 얘기로는 다음과...
View Article[입 개발] 왜 Redis 응답이 느린데, slowlog에는 안찍히나요?
Redis를 쓰다보면, 확실히 응답이 늦게 와서, Client 에서는 timeout이 걸리는데, 실제 Redis의 slowlog를 보면 아무런 정보가 없을 때가 많습니다. 오늘은 Redis에서 느린건 확실한거 같은데 왜 slowlog는 남지 않는지 살짝 알아보도록 하겠습니다. 먼저 느리다는 것은 어떤 의미일까요? 느리다는 것 자체는 우리가 기대(또는 예상)...
View Article[입 개발] airflow 의 schedule_interval 에 대해서
일단 저는 airflow에 대해서는 초초초초초보입니다. 현재 airflow를 조금씩 사용해보고는 있지만, 아직 써본지 얼마 안된… 내부구조도 모르고 어떻게 돌아가는지도 잘 모릅니다. 그 전에는 pinball(pinball)을 몇년 썼지만, 아… pinball도 내부 구조는 거의 모르는 초초초초초초보입니다.(흑 나란 남자… 쓰레기…) airflow는 참 좋은거...
View Article