Luavis' Dev Story

생계코딩 이야기

  • 반성문 올 한해에는 개인적으로 많은 일들이 있었습니다. 해의 시작은 이직준비로 부터 시작되었고 TL로 마무리 지어야하는 프로젝트들도 있었습니다. 현재는 새로운 직장에서 비교적 하던 일과는 다른 다양한 플랫폼을 맡으면서 일하고 있는데 병특도 시작하고 회사일도 매우 바빠서 항상 핑계대면서 또 스스로 공부해야하는 방향도 살짝 잃어서 블로깅을 게을리 했습니다. 이 블로그는 스스로 무언가 깊게...

  • 메쉬코리아 부릉에서는 라이더분들이 배달을 실행하기 위해서 배달 요청을 잡는 일을 AI가 가장 효율적인 배차가 가능하도록 자동으로 할당해주는 시스템인 “추천배차”라는 시스템이 있습니다. 이 추천배차 시스템에서 사용하는 메모리량이 꾸준히 증가하고 있는 이슈가 생겨서 NewRelic과 sysfs를 이용해서 원인을 파악해보고 누수가 생긴 이유까지 찾은 이야기를 글로 적은 내용입니다. 문제를 찾아가는 과정 [꾸준히 상승하는 메모리...

  • 올해 3월에 물류중점 회사 메쉬코리아로 이직하고 개인 사정도 있어서 블로그 작성을 게을리 했는데, 최근에 성능 개선한 case는 블로그 글로 작성해둘 필요가 있다고 생각되고, 이 글외에도 사내에서 공유했던 글들에 대해서도 잘 정제해서 블로그 글로 작성해야다는 생각이 들었습니다. 메쉬코리아는 음식, 화장품, 편의점 상품과 같은 상품을 실시간으로 배달하는 서비스, 부릉(Vroong)을 운영하는 회사입니다. 배달...

  • 최근에 Presto를 쓰면서 G1 GC를 기본값으로 설정하라는 설명을 보고선 2015년경에 번역을 허락 맡았던 글이 기억났다. 그 당시에는 무슨 객기로 번역을 허락 맡았는지 모르겠지만 지금에 와서 자바의 GC는 Parallel GC를 기본으로 사용했지만, Java 9부터는 G1 GC가 기본값으로 설정되면서 번역을 할 원동력이 생겨서 번역을 해본다. 다만 원본 글이 오래된 글이고, 이를 보충하기...

  • 제니퍼소프트에서 진행하는 프로젝트에서 Webpack과 TypeScript, React를 사용하고 있다. SPA는 필수적인 선택지였다. classic한 개발 방식으로는 web page는 몰라도 web application을 개발하기엔 부적합하다. 그 중에서도 React를 선택한 이유는 훌륭한 레퍼런스들과 안정적인 소스 관리, 무엇보다 가장 잘 쓸줄 아는 것을 선택했다. Webpack은 그 외의 선택의 여지가 약하기 때문에 webpack을 선택했지만, 이 프로젝트를 시작하면서...

  • 회사 업무 중에 대용량의 데이터를 조회하고 분석할 일이 생겼다. 데이터는 DynamoDB에 쌓여있다. DynamoDB에서는 복잡한 조건을 갖고 쿼리를 할 수 있는 구조가 아니고, 가격과 성능 문제도 있기 때문에, 선택할 수 있는 도구에 대해서 수소문 해봤고, Google cloud platform에서 제공하는 BigQuery나 AWS에서 제공하는 Athena가 가장 편하고 흔하게 사용하는 듯 하다. 하지만 모든...

  • AES나 DES와 같은 암호화 알고리즘을 이용해서 보안 통신을 하기 위해서는 암호키가 필요하다. 암호키를 통해서 제 3자가 이를 해독하기 어렵게 만드는것이다. 암호키를 제 3자가 알면 암호를 깨고 데이터를 복호화할 수 있기 때문에 안전하게 암호화 키를 공유할 필요가 있다. 디피 헬만은 위와 같은 암호화 통신에서 안전하게 키를 교환하는 방법 중 하나로 TLS에서...

  • 이 글은 계간 잡지 마이크로소프트웨어 394호에 기고된 글입니다. TLS 우리가 개발하는 서비스 중에서 인터넷에 연결이 필요 없는 서비스는 거의 없다고 봐야한다. 이런 서비스는 우리가 만든 앱 혹은 웹을 통해서 데이터를 받아 서버에 저장한다. 오프라인 모드로 즐기는 게임마저도 장애 로그 또는 통계 데이터를 인터넷 연결로 받는 사례가 늘고있다. 다만 이 데이터에는...

  • Static type의 맹점

    Aug 10, 2018

    이 글은 “Programming JavaScript Applications” (O’Reilly)의 저자 Eric Elliott의 The Shocking Secret About Static Types을 번역한 글 입니다. TL;DR 정말 버그를 줄이고 싶다면 TDD를 사용하세요. 멋진 툴과 함께 하고 싶은것 이라면 static type을 사용해보세요. static type은 만병통치약인가? Typescript의 인기는 폭발적으로 증가해왔습니다. 저는 Typescript와 static type을 좋아합니다.(사내 프로젝트를 Typescript로 진행했고 typing을...

  • TLS란, 초기에 HTTP 통신은 암호화되지 않은 통신이었다. 당연히 문제가 되었고, 이 문제를 보완하고자 Netscape사는 browser에서 사용하기 위한 규격인 SSL을 제작했다. SSL은 널리 보급되었고, 나중엔 HTTP 외에 다른 Application layer protocol에서도 사용가능하도록 만든 protocol이 TLS(Transport Layer Security)다. TLS는 크게 2단계로 구분할 수 있는데, 서로 protocol 버전과 암호화할 키를 주고 받는 handshake...