개발하면서
-
Parquet 파일 잘 써보기개발하면서/타인글보면서 2018. 12. 2. 17:36
https://www.dremio.com/tuning-parquet Dremio is the Data-as-a-Service Platform. Get more value from your data, faster. Dremio makes your data engineers more productive, and your data consumers more self-sufficient. www.dremio.com Parquet 파일 하나는 1개 이상의 Row group이 있고 Row group은 Column 별로 저장되어있다. Row group 크기를 크게 하면 Column 데이터가 연속적으로 저장이 되는 부분이 커져 연산 속도나 압축 효율이 좋아진다. 하지만 Disk block 크기까지 고려한다면…. A: ..
-
Go 명분 찾기개발하면서/etc 2017. 10. 26. 19:36
Go에 관심을 갖은 건 2012년 정도로 생각된다. 하지만!! 지금까지 Go 관련 글을 Evernote나 workflowy에 저장만 하고 딱히 Go를 이용해서 뭘 만들어 보지도 않을뿐더러 문법도 애매하게 안다... 지금까지 행동 없이 관심만 가지고 지내면서 너무나 무뎌진 나의 개발 능력을 체감했고, 날카롭게 만들고 싶었다. (물론 무뎌짐을 느낀게 처음은 아니지만 이번엔 세게 왔다. 결심은 큰 의미 없으니 어느 정도 생각이 잡히면 바로 행동) 우선 내가 날카롭게 만들고 싶은게 무엇인지 적어보면 다양한 데이터를 손쉽게 수집하기, 수집한 데이터와 사용 용도에 적합한 DB solution을 찾을 줄 알고, 장/단 점 파악 및 설정 값들이 어떤 의미가 있는 정도, 마지막으로 저장된 데이터를 쉽게 관리할 수 있는 ..
-
Tapjoy에서 실시간으로 중복 제거하기개발하면서/타인글보면서 2017. 8. 2. 21:29
메시지 전송은 3가지 타입이 존재한다. at-most-once at-least-once at-exactly-once at-most-once은 유실이 있어도 괜찮을 때 사용하고 대부분 at-least-once(유실은 없지만 중복 존재)를 사용한다. 하지만 메시지 처리된 결과가 고객의 돈과 관련된 경우(금융, 광고 집행비 등) at-least-once로 메시지 전송이 이루어진다면 회사 운영에 큰 어려움이 생길 것이다. 개발자 유우머에도 있는 메시지 전송 타입 https://twitter.com/mathiasverraes/status/632260618599403520 Mathias Verraes on Twitter “There are only two hard problems in distributed syst..
-
RethinkDB shutdown 관련 글을 읽으면서개발하면서/etc 2017. 2. 5. 22:07
평소 데이터 저장소 관련해서 CockroachDB, ArangoDB와 RethinkDB를 관심있게 보고 있었습니다. CockroachDB는 확장성과 Consistency를 ArangoDB는 다양한 모델 지원(K-V, Doc, Graph), RethinkDB는 real time 을 무기로 본인들의 DB가 좋다고 내세웠다. (순전히 저의 생각이에요.) 어느날 RethinkDB가 shutdown 했다는 트윗을 보게 되었습니다. 기술적으로 꽤 괜찮았다고 생각했는데 어떤 이유로 문을 닫는지 궁금해서 관련 글을 찾아보게 되었습니다. 부족한 영어지만 찾은 글들을 정리해보려고 합니다. https://rethinkdb.com/blog/rethinkdb-shutdown/ 공식 홈페이지 블로그에 올라온 shutdown 된다..
-
코드 리뷰, 커밋 메시지, 코드 컨벤션 정리개발하면서/etc 2015. 12. 31. 23:31
간만에 쉬는 시간을 갖게되어 branch 전략이나 커밋 메시지, 코드 컨벤션에 대해 다른 사람들은 어떻게 했는지 살펴보고 정리 하려 한다. (그동안 정말 구현하기에 급급...ㅜ,ㅜ) 우선 이런 마음가짐으로 팀원과 맞춰가자 빡빡하게 하나부터 열까지 규칙 정하지 않고 널널하게 하자.(말이 애매한데, '굵은것만 정하자...'정도로 생각함) 실력있는 동료이니 조금 다른 규칙도 충분히 이해되기 때문에 그렇다. 조금 다르더라도 익숙해지도록 노력하고, 정~~말 익숙하지 않은 코드 스타일이 있다면 같이 얘기해서 수정해 나가면 좋겠다. 상대방을 존중하고 각자 성장을 원하는 개발자들이니까!! 존중과 신뢰, 그리고 코드 얘기만 해야지 사심이 들어가지 않도록 조심하자 . 코드 리뷰 토스랩] 코드리뷰, 이렇게 하고 있습니다. ..
-
3부 마무리했다.개발하면서/etc 2015. 3. 1. 00:09
와~!!! 콘솔쉘 마무으리!!! 키보드, 인터럽트, 타이머에서 원하는 동작을 하기위해 해당 포트에 정의된 데이타를 주고 받는다. 디바이스 드라이버에 대해 자세히는 몰라도 대략적으로 어떻게 코드를 짜야되는지 맛을 봤던 좋은 시간이었다. 읽을때는 이해했는데 시간 지나고 다시 읽으려고하니 기억이 나질 않는다. 양도 많고, 기억력도 썩 좋질 않아서... 4부 가기전에 1, 2, 3부 정리 좀 하고 가야지 하나 아쉬운건 CS, DS와 실제 코드나 데이타가 메모리에 올라가는 관계에 대하여 명확하지가 않다... 써놓고도 뭔말인지...우선 직진이다!! ㅋㅋㅋㅋ
-
드디어 IA-32e모드로 넘어갔다!!!!개발하면서/etc 2015. 2. 19. 22:41
아~!! 드디어 IA-32e 모드로 넘어갔다. 의지가 약해서 듬성듬성 하다보니까 오래걸렸다. 이젠 놀만큼 놀았다고 생각해서 우직하게 준비해야되는데 동기부여가 아직 덜 됐나보다. ImageMaker때문에 이틀정도 걸렸다... WriteKernelInformation 함수에 lseek부분에서 오류가 발생! 이틀동안 삽질하다가 포기하는 마음으로 #include 추가해줬더니 정상동작했다!! : ) asm이나 간단한 C소스는 직접 입력했는데 ImageMaker, makefile, elf_xxx.x파일은 복붙했다. 앞으로 뭐가 있나 다시 봤는데...타이핑하는게 더 줄것같다ㅋㅋㅋㅋㅋ 10장에서 IA-32e 모드에 스택을 지정하는 부분이 있는데 Stack Segment를 0x10으로 설정하고 주석으 다음과 같다. 스택..
-
QuickList개발하면서/코드보면서 2015. 2. 4. 22:53
2015년 1월 초에 unstable에 merge된 QuickList에 알아본다.https://matt.sh/redis-quicklist 에서 나온 얘기를 조금 하고 코드를 보자 Redis에 List 자료구조는 일반적인 Linked list와 메모리를 절약을 위한 Ziplist두개가 있다.포인터를 이용하여 리스트 구현한것과 배열을 이용하여 리스트를 구현한것이라고 생각하면 쉽다. list-max-ziplist-entries 512 list-max-ziplist-value 64 (노드 갯수가 512개 이상 || 저장하려는 값의 길이가 64 byte 초과)면 Linked list로 저장이 되고(노드 갯수가 512개 미만 && 저장하려는 값의 길이가 64 byte 이하)면 ziplist로 저장이 된다.재미진건 ..