Java (30) 썸네일형 리스트형 [Java] 고정 길이 레코드 처리 유틸리티 (언젠가 필요한 순간에 빠르게 찾으려고 작성합니다.) 이 코드는 고정 길이 레코드 처리 유틸리티입니다.주로 레거시 시스템 연동, 금융권 전문 통신, EDI(전자문서교환) 시스템에서 활용되는 코드로 사용될 것 같아요. 이 코드를 **"데이터 변환 계층(Data Transformation Layer)"**으로 보면 이해하기 쉽습니다.입력: 가변 길이 문자열 (사람이 읽기 쉬운 형태)출력: 고정 길이 바이트 레코드 (시스템이 처리하기 쉬운 형태) 아래와 같은 경우에 활용할 수 있을것 같네요. :)1. 금융권 전문 통신계좌번호: "1234567890" → 20바이트 고정 길이로 패딩거래금액: "1500000" → 15바이트 우측 정렬 + 제로 패딩2. EDI 시스템 연동상품 정보를 고정 포맷으로 변환하여 파트너.. [Spring] ehCache2와 달라진 ehCache3 사용 ehCache 3 을 Spring Boot 에 적용해보겠다. ehCache 3 버전부터는 JSR-107 cache manager를 구현했다고 한다. 다만, ehCache 2.x 버전과 3.x 버전의 환경설정 포맷 및 사용방법이 조금 달라졌기에 tti, ttl, expiry 등 캐시 유지 기간에 대한 속성을 적용하려면 버전과 환경설정이 일치해야 한다. ⌗ ehCache 3 적용 고려사항 Database Selection Query 대상으로 비지니스 특성상 Hit 확율이 높은지 확인이 필요하다. cache는 기본적으로 Hit 확율이 높을 경우 쓰는 의미가 있다. 만약 Hit 확율이 현저히 떨어지는 경우 적용 하지 않는 편이 성능적으로 더 유리하다. Hit 확율이 높은지, 낮은지에 대해서는 해당 cache의 .. [Java][Circuit breaker] Hystrix 이해와 사용 방법 서론 MSA 기반을 둔 Application은 클라이언트 회복성이 고려되어야하고, 핵심적인 클라이언트 회복성 패턴은 주로 회로 차단(Circuit breaker), 폴백(fall back), 벌크 헤드(bulk head) 이다. Circuit breaker Pattern은 느리게 실행되고, 성능이 저하된 시스템 호출을 종료해 빨리 실패시키고 자원 고갈을 방지한다. Fall back Pattern은 개발자가 원격 서비스 호출이 실패하거나 호출에 대한 회로 차단기가 실패할때 대체할 코드 경로를 정의할 수있다. Bulk head Pattern은 원격 호출을 서로 격리하고 원격 서비스 호출을 자체 스레드 풀로 분리한다. 즉, 일련의 서비스 호출이 실패할 때 Application container의 모든 자원이 .. [Java] 스레드 일시정지, Thread sleep /** * 특정 스레드 Loop당 1초 sleep 실행 */ @Slf4j public class mThread implements Runnable{ @Override public void run() { try { Thread.sleep(1000); } catch (InterruptedException e) { log.error(e.getMessage()); } // Thread가 실행중인 경우 종료 if (Thread.interrupted()) { Thread.currentThread().interrupt(); } } } [Java] String 문자열 자르기 : substring() 이용 DB에 저장 데이터 타입이 text로, 저장할 데이터 길이가 정해져있기 때문에 글자 제한에 맞춰 데이터를 잘라서 저장해야 했다. text 타입이 65,535 bytes 이하의 값만 가능해서 일정 글자수 만큼 잘라서 사용하는 방법(substring)을 이용했다. public void setText(TextData textData) { String fullText = textData.getText(); // text 타입이 65,535 bytes 이하의 값만 가능 int max = 65535; int textSize = fullText.length(); int loopCnt = textLength / max + 1; for (int i = 0; i < loopCnt; i++) { int firstIndex .. [Docker] Jenkins version upgrade ## 실행중인 jenkins 컨테이너 확인 % docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 40d2ef954604 jenkinsci/jenkins:2.142-slim "/sbin/tini -- /usr/…" 4 hours ago Up 4 hours 0.0.0.0:8080->8080/tcp, 50000/tcp master 47fdbde9415d jenkinsci/ssh-slave "setup-sshd" 4 hours ago Up 4 hours 22/tcp slave01 ## jenkins container bash 접근 % docker container exec -u 0 -it 40d2ef954604 bash ## jenkins v.. [Docker] 젠킨스 SSH 키 생성 및 master-slave 컨테이너 설정 실제 관리 기능이나 작업 실행 지시등은 마스터(Leader) 인스턴스가 맡고, 작업을 실제로 진행하는 것은 슬레이브(Follower) 인스턴스가 담당한다. 이러한 구성의 컴포즈로 만들어 보겠다 !! :) 1 ) master 젠킨스 컨테이너에 접속할 수 있는 SSH 키 생성 - TERMINAL % docker container exec -it master ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/var/jenkins_home/.ssh/id_rsa): Created directory '/var/jenkins_home/.ssh'. Enter passphrase (empty for .. [Docker] 도커 컴포즈로 여러 컨테이너 실행 및 젠킨스 연동 도커 컨테이너는 = 단일 애플리케이션 도커는 애플리케이션 배포에 특화된 컨테이너이다. 가상 서버와는 대상 단위의 크기 자체가 다르다. 즉 애플리케이션 간의 연동 없이는 실용적 수준의 시스템을 구축할 수 없다. 다시 말해, 도커 컨테이너로 시스템을 구축하면 하나 이상의 컨테이너가 서로 통신하며, 그 사이에 의존관계가 생긴다. 그러면 컨테이너의 동작을 제어하기 윈한 설정 파일이나 환경 변수를 어떻게 전달할지, 컨테이너 가느이 의존관계를 고려할 때 포트 포워딩을 어떻게 설정해야하는 지 등의 요소를 적절히 관리해야한다. 이때 필요 한 것이 ★ 도커 컴포즈(Docker Compose) 이다. compose는 yaml 포맷으로 기술된 설정파일로, 여러 컨테이너의 실행을 한번에 관리할 수 있게 해준다. docker-.. 이전 1 2 3 4 다음