일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 데이터야놀자
- datalake
- 함수형 사고
- 단위테스트
- clean code
- 테스트주도개발
- Raw-Request-URI
- 개발자로살아남기
- 알고스팟
- 코딩인터뷰
- 2017회고
- 개발자
- 켄트백
- 데이터레이크
- 해커컵
- spray
- 개발7년차매니저1일차
- functional thinking
- 동시성
- 데이터유통
- 회고
- 2016년회고
- 클린코드
- 데이터플랫폼
- wait region split
- coursera
- 실전사례
- kafka
- hackercup2017
- 박종천
- Today
- Total
목록전체보기 (97)
Software Engineering Note
TF+서포터즈. 우리가 흘린 땀.이 사진과 함께 남으리.이제 역사속으로.. 몇 개월 동안 달려온 종착역..
데이터레이크 번역본 - http://jinson.tistory.com/284(원문 - https://martinfowler.com/bliki/DataLake.html) 4월쯤이었나 페이스북에 KSUG 번역단을 모집한다는 글이 올라왔고 의미가 있는 일이라고 생각해서 지원했다. 관심있는 아티클을 구석구석 이해할 수 있게되고, 번역 경험도 쌓고, 다른 사람들이 조금 더 편하게 읽으면 좋겠다는 생각이 들었던 것같다. 이 글은 과거에 한번 훑어본적이 있었는데 아무래도 데이터를 처리하는 업무를 하다보니 완전히 이해하면 도움이 될것같았다. 결과적으로 도움이 되었고 어쨌든 끝을 봐서 뿌듯하다. 그런데 이제사 이야기 하면 내 기준에서 이 글은 좀 어려웠다. 보통 영어로 된 문서를 볼때 필요한 부분만 읽고 나머지는 신경 ..
TDD에서는 테스트를 먼저 작성하고 코드를 작성하라고 하죠. 오늘 그렇게 해야 하는 이유가 두 가지 느껴져서 적어봅니다. 첫 번째 이유는 테스트를 "완벽히" 실패 시키기 위해서입니다. 왜 실패를 시켜야 할까요? 그건 "운이 좋아서 패스하는 경우" 를 피하기 위해서입니다. 로직을 먼저 작성하고 테스트를 만든다고 가정 해봅시다. 새로운 if가 생겼고 필요한 코드를 모두 작성했습니다. 테스트를 돌려보니 파란불이 뜨네요. "역시 내 실력이란 훗" 그런데 알고보니 다른 if로 빠져서 테스트가 운좋게 통과 된것입니다. 이러한 우연은 가끔씩 찾아오기때문에 무시할 수가 없습니다. 그래서 지금 상태에서 실패되는 상황을 완벽하게 재현해줄 필요가 있는 것입니다. 두 번째 이유는 불필요한 코드를 작성하지않기 위해서입니다. 로..
상황HBase DataNode 재시작 실패. 50010 포트로 띄우려고 하는데 이미 사용중이라고 함netstat 등등 명령으로 사용중인(LISTEN) 프로세스를 확인하려고 했는데 확인이 안됨 발생이유외부에서 요청이 있을때 다른 프로그램에서 50010포트로 통신을 한것으로 보인다.이론상 이럴 가능성이 없는건 아닌데 처음 당하는 일이라 황당했다 -_-;; 해결방법/etc/sysctl.conf 에 net.ipv4.ip_local_reserved_ports 설정. 여기에 50010 포함시킴 참고https://charsyam.wordpress.com/2014/04/14/%EC%84%9C%EB%B2%84%EB%A5%BC-%EB%A7%8C%EB%93%9C%EC%8B%A4%EB%95%8C%EB%8A%94-%ED%8F%..
특정한 조건을 갖는 값들만 리전으로 분리하려고 split 하다가 연속으로 split을 호출하면 먹혀버리는(?) 현상을 겪고 해결책을 찾아보았다. 결국은 이 코드를 참고https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/hadoop/hbase/util/RegionSplitter.java#L670-L757 1. 분할된 리전이 온라인 상태로 올라왔는지 확인하고2. major compaction이 끝났는지 체크한다. 위 코드를 이용해서 현재 상황에 맞게 수정해서 해결. 분할된 리전을 다시 쪼개려고 할때 유용하겠다.
드디어, 마침내 다봤다. 재작년에 동영상 보면서 스터디 끝내고, 책은 다 보지 못했었는데 이제서야 다 봤다. 말이 필요없다... 클린코드정리
클라이언트/서버 예제에서는 단일 스레드로 동작하던 서버를 다중 스레드로 변경하는 것과 코드를 깨끗하게 변경하는 내용을 다룬다. 다중 스레드를 적용하기전에 어플리케이션이 어디서 시간을 보내는지 알아야 한다. I/O - 소켓 사용, 데이터베이스 연결, 가상 메모리 스와핑 기다리기 등에 시간을 보낸다. 프로세서 - 수치계산, 정규표현식 처리, 가비지 컬렉션 등에 시간을 보낸다. 프로세서 연산에 시간을 보내는 프로그램은 스레드를 늘인다고 빨라지지않는다. CPU 사이클은 한계가 있기 때문이다. 다중 스레드 프로그램을 깨끗하게 유지하려면 잘 통제된 몇 곳으로 스레드 관리를 모아야 한다. 아니, 스레드를 관리하는 코드는 스레드만 관리해야 한다. 비동시성 문제까지 뒤섞지 않더라도 동시성 문제는 그 자체만으로도 추적하기..
간단한 방법이 없나 찾아봤더니 이런게 있었다. http://serverfault.com/questions/82857/prevent-duplicate-cron-jobs-running/82863#82863 난 처음보는거라...ㅋ "/usr/bin/flock -n /tmp/my.lockfile /bin/sh test.sh" 이런식으로 실행해보면 test.sh이 실행중인 경우, test.sh은 중복 실행이 안된다. man page -n, --nb, --nonblock Fail (with an exit code of 1) rather than wait if the lock cannot be immediately acquired.
1월 1주, 2주에 페이스북에서 주최하는 해커컵 Qualification Round와 Round1 이 지나갔습니다. 주말에 귀찮음을 간신히 부여잡고, 각각 가장 쉬운 한문제씩 풀어봤습니다. 1. Progress Pie 보시면 아시겠지만, 이 문제는 입력으로 점이 주어졌을때, 특정 영역에 속하느냐를 묻는 문제입니다. 그런데 하필 원이라, 수학지식을 동원해야 할것같습니다. 두 가지를 만족하면 되겠죠. - 주어진 점과 중심의 거리가 반지름보다 작아야한다.- 중심점과 주어진점 사이의 각도가, 주어진 각도보다 작아야한다. (주어진 각도라 함은 진행률을 각도로 환산한 값을 의미) 두 점 사이의 각도? 검색하면 잘 나옵니다. (예를들면, http://yangpro.github.io/play-with-canvas-tr..
올해는 기술적으로 회고할 내용이 크게 없는 것같다.아무래도 포스가 흔들렸던 한 해여서, 다시 회복하는데 시간이 필요했던 것같다. 코드잼은 예선통과까지.온라인 강의로 Functional Programming Principles in Scala 를 수강했다.처음으로 프로젝트리더 역할을 수행했다.akka, kafka 작년과 비슷하게 기술셋을 사용했다. 서비스에 대한 관심이 좀 더 생긴 것같고, 내가 무엇을 할 수 있는지 더 고민하게 되었다. 아이디어도 좀 내고 있고. 내년에는 올해보다 훨씬 많은 공부를 하고싶다.이게 습관화 되어야 속도가 붙고, 나중에 더 많은 내용을 더 짧은 시간에 소화할 수 있게 되리라.그렇게 되기위해 익숙해지는 것이 목표다.