개발(9)
-
cron으로 스케쥴러 만들기.
스케쥴러를 추가해야할 일이 있었다. 근데 요구사항이 미묘했다. 무조건 2주 간격으로 작동해야한다고 한다. cron은 시각, 날짜, 요일 등을 특정해서 스케쥴을 돌릴 순 있어도, 일정 간격을 지정해서 돌리는 기능은 없는것으로 알고있다.(단순히 시간마다 한 번, 하루에 한 번, 일주일에 한 번, 달에 한 번 정도는 정할 수 있지만) 즉, 기존에 사용하던 방식이 아니라 다른 방식으로 사용할 필요가 있었다. 2주 간격으로 스케쥴을 진행하려면 여러가지 방법을 채택할 수 있다. 스케쥴 자체를 crontab에서 2주 간격으로 돌린다.일단 stackoverflow를 찾아보았다.https://serverfault.com/questions/633264/cronjob-run-every-two-weeks-on-saturday..
2019.02.15 -
MongoDB, Morphia - 같은 도큐먼트 내의 두 필드 비교 쿼리 (Query - Comparing two fields in Same Document)
MongoDB에 같은 도큐먼트 내의 두 필드를 비교하는 쿼리를 보내야 할 상황이 있었다. 비교해야 하는 두 필드를 A, B라고 하자. 평소 비교 쿼리를 만들 때 처럼, "find" 와 "$lt" 조건을 통해 쿼리를 만들었다. 해당 쿼리에서, "$lt" 다음에 써 주어야 하는 비교 대상이 상수인 경우는 문제가 생기지 않는다. 하지만 이번에는 비교 대상도 변수가 되어야 했다. 그래서 "$lt" 에 변수값을 상수값처럼 "this.B" 와 같은 형태로 써주었는데, 에러가 발생하였다. 에러 내용은 인티저 값인 A와 String인 "this.B"를 비교할 수 없다는, 결국 타입이 맞지 않다는 에러였다. 그래서 where("this.A < this.B") 와 같은 형태의 쿼리로 바꾸어서 실행했는데, 원하는 결과를 얻..
2018.11.17 -
Chrome Extension - response를 보여주는 chrome extension 작성
운영팀에서 요청이 들어왔다. CS 처리를 할 때에 SpreadSheet 테이블에서 값을 찾는 경우가 많은데 이 상황에서 시간이 많이 걸린다고, 간단한 툴을 제작해 줄 수 없냐는 요청이었다. Chrome Extension이 적절할 것 같아서 찾아봤는데 마침, Chrome Extensions 개발자 모드를 사용하면 직접 만든 크롬 익스텐션 zip만 업로드해주면 사용에 아무런 제약이 없을 것 같아서, 채택하기로 했다. 내가 만든 Chrome Extensions은 테스트 서버에 만들어둔 모든 테이블 조회용 API를 호출하여 그 결과를 Extensions 팝업에 띄워주는 것이 전부이다. 기능이 단순하기에, Json, Html, Js 파일 1개씩 ( ThirdParty로 JQuery가 있지만 이건 내가 짠게 아니므..
2018.11.12 -
Redis - Jedis 사용 시 겪었던 문제.
최근, Redis 의 java 프레임워크인 Jedis를 사용하면서, "Could not get a resource from pool" 이라는 메시지를 받으며, 서버와 Redis 연결이 끊기는 문제가 발생하였다. Redis의 상태를 보니 Clients의 갯수가 1000개 언저리에서 머물고 있었다. 하지만, Redis 서버의 Config에는 "maxclients" 값이 default (4096)로 설정되어 있었다. 그럼에도 Clients는 1000개를 넘지 못하고 있었다. 이는, Redis의 Client가 되는 서버 소스 상에서 JedisPool의 설정값이 1000으로 설정되어 있어서 생기는 문제였다. 위와 같은 상태로 JedisPool에서 resource를 받아오고 있었다. 위 소스코드에서 "setMaxT..
2018.10.13 -
Unity 2017 - Composite Collider 를 사용하며 생긴 일들
여러 플랫폼의 컬라이더가 겹치면서 여러가지 문제가 발생했다. 애니메이션이 꼬이는 문제와, 컬라이더가 겹치는 부분에서 걸리는 문제가 발생하였다. 이를 해결하기 위해 Composite Collider를 사용하였다. 원래는 아래와 같이 컬라이더 간에 겹치는 부분이 있어서, 겹치는 부분을 지날 때에 잠깐 점프하는 애니메이션이 나오는 문제가 생겼다. 이를 Composite Collider를 사용하여 아래와 같이 바꾸었다. 그 후로 컬라이더가 겹치는 부분에서 애니메이션이 버벅이는 문제가 발생하진 않았다. Composite Collider 컴포넌트를 Object에 추가하면 Rigidbody와 Composite Collider 컴포넌트가 동시에 추가된다. 여기서 중요하게 보아야 할 것은 Geometry Type 과 G..
2018.10.13 -
Elasticsearch - ELK 스택을 사용하면서 겪었던 이슈들
키바나가 죽었어요. 복구해주세요. 라는 질문을 자주 받는다. ELK(Elasticsearch-Logstash-Kibana) 스택을 사용할 때에, Kibana에서 로그 조회가 불가능한 경우에 위같은 질문이 쏟아진다. Kibana는 로그를 조회하는 곳이니 문제를 일으킨 경우가 거의 없었다. 하지만 ES와 Logstash는 여태까지 여러 문제를 겪은 경험이 있다. 이번 글에서는 내가 겪었던 문제들에 대해 어떤 것이 원인이었고, 어떤식으로 이를 해결할 수 있었는지 다루려고 한다. 먼저, ES가 장애를 일으킨 문제에는 아래와 같은 것들이 있었다. 1. Request Time-out 루씬 쿼리가 복잡하거나, 검색 날짜의 텀이 길면 생기는 문제인 듯 하다. 대부분 일정 기간을 기다리면 다시 살아난다. 하지만 살아나지..
2018.09.01