Item 1. 생성자 대신 정적 팩터리 메서드를 고려하라
서론개발자가 클래스의 인스턴스를 생성하는 방법은 new 키워드를 통한 생성자 호출이다.이외에도 생성자와 별도로 정적 팩터리 메서드를 이용해서 메서드 내부에서 생성자나, 이미 생성된 인스턴스를 반환하여 클라이언트 코드에서 인스턴스를 사용 할 수 있다. 정적(Static) ...
Read more
Mybatis 조회 시, All Element Are Null 이슈
들어가며사내 시스템 운영 중, SMS를 전송해 주는 부분에서 장애가 발생 하였다.어디에선가 NullPointer Exception이 발생하고 있었다. stacktrace기준으로 추적해 보니,Mybatis를 통해 데이터를 조회 한다음 데이터를 가공하는 과정에서 NullP ...
Read more
2018년 회고
새 직장으로 이직2017년 8월 중순 중소 SI업체를 용기있게(?) 뛰쳐나왔다.그 곳에서는 오직 나 한명으로 여러 프로젝트를 돌리고 있었고, 같이 일할 선임개발자도 없었기 때문에굉장히 나름대로 스트레스를 받고 있었다.그리고 모든 프로젝트가 나에게 의존적이었기 때문에 관 ...
Read more
Docker기반 Redis 구축하기 - (11) Redis-Cli Docker로 사용하기
들어가며Redis를 운영하다 보면 redis-cli를 주로 사용하게 되는데항상 docker exec 명령을 통해 docker container 내의 redis-cli를 사용하여 불편한 점이 많았습니다. 찾아보니 간단하게 Docker로 Redis-cli를 사용할 방법이 ...
Read more
Docker기반 Redis 구축하기 - (10) Redis Cluster Mode 설정하기
들어가며이전 장 까지 했던 Redis 구조는 Redis Replication + Redis Sentinel을 이용한 failover 기능을 구성하고 있었습니다. Spring Application에서 Jedis를 이용하여 Application sharding을 구성하여 ...
Read more
Docker기반 Redis 구축하기 - (9) Redis-Stats을 이용한 모니터링
Redis-statsRedis-stat은 대표적인 오픈소스 Redis 모니터링 도구입니다. Ruby 기반으로 동작하는 프로그램이며, Ruby만 설치되어 있다면 설치가 간편하고 Web 또는 Console로 Redis 서버를 모니터링 할 수 있습니다.비슷한 모니터링 도구로 ...
Read more
Docker기반 Redis 구축하기 - (8) HAProxy를 이용한 분산처리 환경 구축하기
HAProxy란?HAProxy는 기존의 하드웨어 스위치(L4/L7)을 대체하는 소프트웨어 로드밸런서입니다.로드 밸런싱이란 부하 분산을 위해서 가상IP를 통해 여러서버에 접속하도록 트래픽을 분배해 주는 기능을 의미합니다. Redis-Cluster에 HAProxy ...
Read more
Docker기반 Redis 구축하기 - (7) Docker를 이용한 Redis Sentinel 설치하기
Redis Sentinel이란?Redis Cluster 운영환경에서 Master-Slave 관계를 가진 Redis가 있습니다.시스템 오류나 알수 없는 원인으로 인해 Master Redis가 down되어 연결이 중단 되면, 사용자나 Application에서는 Redis ...
Read more
Docker기반 Redis 구축하기 - (6) Docker를 이용한 Redis Cluster 설치하기
Redis Cluster 구성도 간단하게 정리하면. 각 서버 별로 Redis 3대를 설치. Master 1개, Slave 2개로 구성하여 Replication을 지원할 수 있도록 Cluster를 구성하였습니다. 각 서버 별로 Sentinel 3대를 설치. 양대비 원리 ...
Read more
Docker기반 Redis 구축하기 - (5) Docker Network구조
Docker Network 모드Docker에서 제공하는 Network 모드는 총 4개 입니다.(추가적으로 2개의 모드가 더 있습니다. Overlay, Macvlan 모드가 있지만 Docker Swarm과 관련된 내용이므로 이번 장에서는 기술 하지 않겠습니다.) Bri ...
Read more