엘키의 주절 주절

소소한 개발 이야기

특수화와 범용성

처음 프로그래밍을 시작한 시점부터 얼마나 많은 코드를 작성해왔는지, 그 코드들 중 얼마나 많은 코드가 아직도 실행되고 있는지를 알 순 없지만, 내가 짠 꽤나 많은 코드가 아직 현역일 것이다. 그 과정에서 자주 고민하게 되는 이슈 중 하나는 바로, 특수화와 범용성이다. 혹자는 특수화 자체를 나쁘다고 규정 짓곤 하지만, 투입되는 코스트가 작아지고 예외...

2018년 회고

다사 다난한 일이 꽤 자주 있는 편인지라, 평소와 같았다 볼 수 있는 한해가 또 저물어 간다. 과연 나에겐 어떤 일들이 있었고, 어떠한 생각들을 가지고 살았으며, 내년엔 무엇을 하고 싶은지 간단히 정리해보고자한다. 블로그 한해 동안 꽤나 많은 글을 썼다. 10월 초 이후의 글을 못썼음에도 35개의 글을 썼다. 사람에 대한 글, 기술에 대한 글 ...

MySQL LIMIT + Offset 쿼리 성능 문제

페이징 처리시 자주 사용되는 Offset. 단순히 쿼리로 OFFSET을 수행하면 성능 저하가 일어난다. offset 사용시 성능 저하 이슈에 대해 검토와 관련 글들 http://devoluk.com/mysql-limit-offset-performance.html https://explainextended.com/2009/10/23/mysql...

Ubuntu vs CentOS

종종 언급했지만, 나는 자의적으로 서버 프로그래머가 된 케이스는 아니다. 반 강제 서버 프로그래머로 전향한 2006년 당시만해도 대다수의 게임 개발은 윈도우 기반의 온라인 게임이었다보니, 당연히 게임 클라이언트 개발도 윈도우가 지배적이었다. 더군다나 게임 서버 개발자 중 반절 이상은 클라이언트 개발을 하다가 인원 부족이나 전문 인력 부족으로 전향한...

Vue.js 참고 자료

가이드 공식 https://kr.vuejs.org/v2/guide/ 입문서 https://joshua1988.github.io/web-development/vuejs/vuejs-tutorial-for-beginner/ 왜 43%의 프론트엔드 개발자들은 Vue.js를 배우고...

JavaScript 적응기 01 - Vue.js

최근 새 팀에 합류했다. 합류한 팀에서 풀 스택 개발 추구하고 있었고, 그 과정에서 웹 프론트엔드 개발에 vue.js를 사용하고 있었다. 자연스레 자바 스크립트를 사용해야 했는데, 2009~2012년경 윈도우 배치 스크립트 짜기 괴로워, Jscript (윈도우 내장 자바 스크립트 엔진을 이용한 스크립팅)을 했던 뒤로 오랜만에 실무에 사용하게 됐...

MongoDB 서버 구축 및 아키텍쳐

MongoDB를 실 운용해본 후기 및 상황에 따른 권장 구성에 대해서 설명해보고자 한다. 최종 데이터는 1.3TB였고, read & write node 역할을 함께 하게끔 구성해서 3대로 운용하다가, read node, write node 각각 3개씩으로 나누어 운용하며 겪었던 경험에 대한 이야기다. 1.3TB데이터는 모두 단일 콜렉션에...

MongoDB 장단점, 활용시 고민할 사항들

장점 비동기 드라이버를 사용할 수 있다. 현재 JDBC의 경우 동기 드라이버만 존재해 블러킹 포인트가 된다. RDB와 개념이 유사해, 쿼리 변환기가 있을 만큼 개념적으로 어색하지 않다. 사용법도 마찬가지로 이질감이 없다. RDB에 비해 성능이 100배 이상 빠르다. ...

JWT 사용기

JWT란 Json Web Token으로써, JSON으로 이루어진 데이터를 token화 한 것을 말한다. JWT의 특징은 여럿이 있는데, 정보를 token 내에 보유하고 있는 (self contained) 독특한 토큰이다. 만료 시간은 부여할 수 있으나 강제 만료는 불가능하다. JWT를 이용한 강제 만료를 구현하기 위해선 이를 검증하는 저장소를 한번...

Java 적응기 06 - Netflix Zuul

이번에는 Netflix Zuul 도입기에 대해서 이야기 해보고자 한다. 지난 MSA 그리고 API Gateway 글을 읽고 오면 더 이해가 쉽게 될 것이다. 내가 합류했던 팀은 MSA로 구성되어 있었다. 반면 API Gateway가 존재하지 않았다 보니, frontend에 바로 물려 있는 서버에서 proxy 처리를 해주고 있었고, 그 서버에 ...