일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 알고스팟
- 2017회고
- 2016년회고
- 실전사례
- Raw-Request-URI
- 동시성
- 코딩인터뷰
- 개발자로살아남기
- 개발7년차매니저1일차
- 데이터유통
- datalake
- 데이터야놀자
- hackercup2017
- 클린코드
- spray
- functional thinking
- 켄트백
- coursera
- 회고
- 함수형 사고
- 테스트주도개발
- 박종천
- 데이터레이크
- 해커컵
- kafka
- wait region split
- 데이터플랫폼
- 개발자
- clean code
- 단위테스트
- Today
- Total
목록전체보기 (96)
Software Engineering Note
파일 다운로드 > 압축 해제 > hdfs 업로드 > hdfs to storage 업로드 이런 플로우로 데이터를 처리할 일이 있었다. (n = 0 ... ?) shell script로 구현을 하고 돌려보는데 속도가 너무 느렸다. 어디가 병목일까? 보니 압축 해제하는 부분이 특히 느렸다. 그래서 그 부분부터 병렬화 하기로 했다. 병렬화는 script 파일을 나누고 백그라운드(&) 로 돌리면 된다. ex) hdfs_uploader.sh ... & 여기서 다시 아래와 같은 문제가 발생했다. 1) unzip 하는 작업이 많아지면 cpu를 너무 많이 차지한다. 2) storage upload 작업이 너무 빈번해지면 문제가 된다. 이제 다시 한 번 정리를 해보자. 1) 파일 다운로드는 빠르다. 문제없는 부분 2) u..
CRDTs with Akka Distributed Data - akka 는 분산된 환경에서 데이터 일관성을 어떻게 지원하는가- CAP 이론도 살짝 나온다. https://www.slideshare.net/markusjura/crdts-with-akka-distributed-data 좋은 자료다.
데이터 엔지니어 생각해보니 내 경력이 데이터 엔지니어에 해당하는 것이었다.데이터 저장과 조회를 위한 시스템을 개발하고 있고 저장소를 운영하고 있다.점점 더 도전적인 이슈를 처리하고 있는 것 같다. 머리는 아프지만 성장하고 있는거라고 믿는다. 그외, 공채신입 멘토링 코드페스티벌- http://tech.kakao.com/2018/09/12/code-festival-2018-round-2/ 2019년 신입공채- http://tech.kakao.com/2018/09/21/kakao-blind-recruitment-for2019-round-1/ 그리고 코딩 인터뷰어를 시작했다. 내년에는 데이터 엔지니어가 갖춰야할 지식과 경험을 더 쌓아야겠다.좋은 인터뷰어가 되기 위한 노력도 더 많이 해야겠다. 그리고 두 번째 번..
클래스를 나누고 싶어질 때는 물론 하나의 클래스가 너무 커질 때입니다.하지만 크다고 해서 무조건 나누지는 않죠. 그냥 나누는 건 의미가 없기 때문입니다. "잘" 나눠야죠. 커져버린 클래스를 나누는 것 외에 클래스를 나누고 싶어 질 때가 있습니다.보통은 느낌상 코드가 예쁘지 않을 때인데, 최근에 경험한 것을 정리하자면 바로 "문맥"이 섞이는 때입니다.예를 들어, 클래스 A에서는 "취소"가 맞아 보이는데 메서드를 정리하다 보니 어떤 부분에서는 "삭제"라는 문맥이 발생하는 것입니다.이런 때는 문맥을 기준으로 클래스를 분리하면 역할이 명확해집니다.보통 하나의 클래스를 여러 개의 메서드로 분리하고 중복을 제거하다 보면 발견될 것입니다. 그런데 클래스를 나누고 나서 어떻게 잘 나누어진 것인지 확신할 수 있을까요?이..
FDD(Feeling-Driven Development)- 개발자의 촉으로 이상한 기운을 탐지하고 즉각 리팩터링을 실행한다. - 그리고, 그 느낌이 무엇이었는지 되도록 객관적으로 정리한다. 기존 이론과 엮으면 더 좋다.
KSUG 번역단 3기 활동 번역: 고통기반 프로그래밍 원문: http://nathanmarz.com/blog/suffering-oriented-programming.html
KSUG 번역단 3기 활동 번역: DataLake 원문: https://martinfowler.com/bliki/DataLake.html
개인적인 기술 향상보다는 회사와 연계된 일을 많이 했던 한 해였다. - 카카오 코드 페스티벌 문제 출제/검토- 2018 개발 신입 공채 문제 출제/검토 코드 페스티벌 준비하면서 본의 아니게 알고리즘 공부를 하게 되었다. 그 외, KSUG 번역 활동을 했다. (아직 한 편만 공개되었지만) 그리고 akka를 다룬 책 베타 리딩 1건 ㅎㅎ 업무에서는 계속해서 HBase, kafka, akka, scala를 사용하고 있고 점점 친해지고 있다. 내년에는 전공책을 한 권이라도 제대로 끝까지 읽어보고 싶다.
spray에서 (reserved characters) 를 내려줄 때 character에 따라서 렌더링을 다르게 해준다. 디코딩 되는것 => !, *, ', (, ), ;, :, @, &, =, +, $, ,디코딩 안되는것 => /, ?, #, [, ] 사용자가 날린, 날 것의 인코딩된 문자를 이용하고 싶다면 "Raw-Request-URI" 헤더를 이용하면 된다. 설정 파일에 "spray.can.server.raw-request-uri-header = on" 으로 설정 해주면, spray에서 요청을 받을때 "Raw-Request-URI" 헤더를 붙여서 올려준다. 그런다음, optionalHeaderValueByName(`Raw-Request-URI`.name) { hv =>....} 이런식으로 이용하면 되..