전체 글
-
CouchBase 사용하기 ( part.1)NoSql/couchbase 2019. 7. 15. 10:27
CouchBase 를 사용 하기 위해선 생각보다 많은 준비가 필요하지 않다 . maven 으로 라이브러리를 추가해주고 클러스터와 버킷을 가져오는 부분을 구현해주면 된다. 기본적으로 카우치 베이스는 비동기식 처리로 진행 된다. 데이터를 넣은뒤 다시 조회시 타이밍에 따라 입력된 데이터가 조회 되지 않을수 있다. 공식사이트에서 sleep 처리로 그런 타이밍을 맞춰줘도 된다는 문장을 본기억이 있는데 일부 개발자들은 그런 방식을 선호 하지 않는경우도 있었다. Async 와 Sync 방식을 전부 지원은 된다고 하지만 확실히 동기식 처리는 제대로 처리 되지 않는거 같고, 얼마전에 카우치베이스에서 한국에 기술 세미나를 열었는데 ( 참가.. 신청했고 참가신청번호 2번이였는데 ㅠㅠ.. 약속된 일정때문에 못갔다 천추의 한...
-
Netty & Spring boot ( ft.Webflux)Java/No Blocking 2019. 7. 5. 10:34
Netty 를 겉핥기를 해놓고 이제와서 사용해 보는것 같다. 다행이 내 만든 API 서버중 하나를 고가용성의 서버로 만들 니즈가 생겼고 이참에 한번 해보자 ! 라는 생각으로 시작했다. 기존 프로젝트를 고치기로 했다. 기존 프로젝트는 아주 평범한 spring boot 2 기반의 spring mvc 프로젝트이다. 다행이란건 기록하면서 추가하겠지만 mysql 이나 기타 RDMS 와 연결하는 로직은 없고 , 카프카 나 couchbase 에게 데이터를 전송하는 부분만 존재한다. 프로젝트 자체를 maven 기반으로 만들었기 때문에 시작은 pom.xml 에 내용을 추가하는것부터 했다. org.springframework.boot spring-boot-starter-webflux org.springframework.b..
-
Logback - 특정 이름별로 로그 분리 하기Spring/Spring Boot 2019. 6. 26. 10:37
Logback 이 로그 파일을 쌓는 방식을 기본적으로는 패키지 명이나 로그 레벨 단위로 나누거나 하는 경우가 많다. 이번에 특이하다고 하긴 그렇지만 특정 이름별로 로그를 분리 할 이유가 생겼다. 여러가지 구글링을 해봤지만 앞서 말한 방식들로 대두분 이야기하고있었다. 나에게는 당장 그렇게 필요하지 않는 부분이여서 구글링능력 부족(?)을 한탄하며 그냥 기억나는대로 세팅을 했다. log/connection-%d{yyyy-MM-dd}.%i.txt.zip 100MB %d{HH:mm:ss.SSS}-%green(%-5level)-%logger{36} - %msg%n log/config-%d{yyyy-MM-dd}.%i.txt.zip 100MB %d{HH:mm:ss.SSS}-%green(%-5level)-%logger{..
-
Logback 시간과 system 시간이 다를때...Java/Basic 2019. 6. 25. 15:13
당황 스럽다. os 시간을 확인했을땐 kst 기준으로 잘 나오지만 java 기반의 서비스를 돌리면 약 3시간의 시간 차이가 났다 . 그래서 3가지 방식으로 java에서 시간정보를 가져와 보았다. /** * 현재 시간 가져오기 * @return */ public String getNow(String format){ LocalDateTime curDate = LocalDateTime.now(); DateTimeFormatter df = DateTimeFormatter.ofPattern(format); return curDate.format(df).toString(); } /** * 현재 시간 가져오기 * @return */ public String getSystemNow(String format){ long..
-
GrafanaDevops/Prometheus 2019. 6. 25. 15:02
https://grafana.com/ Grafana - The open platform for analytics and monitoring Data visualization & Monitoring with support for Graphite, InfluxDB, Prometheus, Elasticsearch and many more databases grafana.com 그라파나는 굉장히 고급지게 보여줄수있는 손쉬운 시각화 도구인거 같다. 프로메테우스와의 궁합이 좋을 뿐더러 설정도 아주 쉽다. 위에 사이트에서 다운로드를 받은 후 실행만 시켜주면 그 다음부터는 아주 쉽다. 로그인 화면이다. 기본적으로 로그인을 지원한다. 최초 설치시 admin/admin 으로 접속하면된다. 로그인뒤 진입시 화면이다. 각 단..
-
PrometheusDevops/Prometheus 2019. 6. 25. 14:40
모니터링 툴 - 프로메테우스 인류에게 불을 전해주었다는 프로메테우스와 같은 이름의 솔루션이다. 그래서 로고도 불꽃 모양을 가지고 있다. 기존의 모니터링 시스템들은 push 방식으로 구성된 경우가 많다. 서버의 상태를 직접 서버에 알려주고 서버는 그것을 취합하여 이미지화 하는 시스템들과 달리 프로메테우스는 구독 방식을 가지고 있다. 위 그림이 가장 구조를 잘 보여주는 그림인거 같다. 프로메테우스는 단일 서비스로 모든것을 처리하는것이 아니라, 데이터구독을 위한 클라이언트( Expoter) 가 있고 특정기준 발생시 알람을 발생시켜주는 AlertManager 가 있다. 그리고 기본적으로 Web UI 를 제공하여 간단한 서버 상태나 그래프를 볼수 있다. 프로메테우스의 특이점 중 또다른 하나는 프로메테우스 서버를 ..
-
Back-end & Framework...잡동사니/Developer 2019. 6. 7. 11:26
Back-end.. Server side... 나의 시작은 Front 개발자였고 엄밀히 말하면 안드로이드 개발자를 지향 하였다. 하지만 세상은 그렇게 녹녹치 않았다. 첫회사가 스타트업 이였고 서버 개발자가 필요 한 경우가 다 많았다. 갓 졸업한 나에겐 spring framework 는 생소했고 어려웠고 이해가 안갔다. 그래서 그냥 쌩~ 자바로 서버를 짰다. 쓰레드풀을 만들고 커넥션풀을 만들고 accept ... 되는 족족 쓰레드를 만들어서 돌리고 ... 로그는 어떻게 쓸까 고민하다가 로그 생성하는 자바 쓰레드를 만들고 ... 수정하고 또 수정하고 ... 그렇게 회사가 망했다. 내가 남은건 과연 성능적으로 괜찮은지 모를 프로그램 소스와 수제 유틸리티들 ... 힘들게 들어간 회사가 망해서 허망했지만 난 다시..
-
Kafka 사용이유 ( vs RabbitMQ )Devops/Kafka 2019. 5. 10. 11:29
카프카를 사용하기전에 과연 어떤 곳에 카프카를 사용해야 하는가에 대한 기본적인 분석이 간단하게라도 필요하다고 생각이 들었다. RabbitMQ 보단 카프카가 빠르니 카프카를 쓰자 !! 혹은 더 단순하게 카프카가 최고다!! 라고 말하는 사람들이 종종 있거나 카프카면 다되! 라는 식의 맹목적인 사람도 있었다. 난 개인적으로 신기술이나 트랜디한 기술을 사용할때는 아주 조심스럽게 신중하게 써야 한다고 생각한다. 내가 학생이라면 말리지 않는다. 고민도 하지 않는데 그냥 써보면 된다. 죽이 되든 밥이 되든 내가 아마추어인데 뭘하든 누가 관심이 있을 거라고 생각하지 않는다. 하지만 돈을 받고 이 일을 하고 있다면 적어도 프로라고 불리며 , 이해관계와 회사의 입장등 많은 것들을 고려하여 기술을 적용해야 한다고 생각한다...