전체 글 42

wsl2에 설치한 kafka 와 윈도우 로컬에서 접근하기.

1. $KAFKA_HOME/config/server.properties listeners=PLAINTEXT://0.0.0.0:9092 advertised.listeners=PLAINTEXT://172.25.17.57:9092 #wls2 ip는 ipconfig로 확인하기나 윈도우에서 wsl hostname -I 로 확인가능. 2. $KAFKA_HOME/config/producer.properties bootstrap.servers=0.0.0.0:9092 3. $KAFKA_HOME/config/consumer.properties bootstrap.servers=0.0.0.0:9092 4. 윈도우에서 연결 netsh interface portproxy add v4tov4 listenport=9092 liste..

개발환경 2023.05.12

자바로 SSL 구현시 다양한 private file 처리.

self signed 인증서로 서버 ssl을 처리하면 client에서는 해당 파일로 ssl 처리를 해야 통신이 가능하다. 참고로 구매한 CA인증파일로 서버 ssl을 처리하면 아래와 같은 처리를 하지 않고도 ssl 통신이 가능하다. 관련내용은 아래 url 참고바람. https://lloydkwon.tistory.com/entry/javs-ssl javs ssl !!! 1. self-signed 인증파일로 서버 셋팅을 하면 client에서 ssl 인증 파일 설정을 해 주어야 함. 2. 하지만 CA 인증파일 ( 운영서버에 사용할 수 있는) 로 서버 세팅하면 client에서는 ssl 관련 설정을 SKIP할 수 lloydkwon.tistory.com 다양한 확장자를 가진 인증서가 있다. cer, csr, pem,..

개발환경 2023.03.21

스프링배치로 전환

외부 API 사용 목록 작성 외부API 오류 구분. 재처리가능? api 변경으로 로직 재구성필요? spring service 작성 Retryable annotation 작성 Recover annotation 작성 오류시에 텔레그램에 관련 메세지 전송. 재처리 위한 정보 필요. spring batch 작성 기존 jobs 에서 Scheduled 어노테이션은 그대로 사용가능함. Scheduled 밑의 메소드 안에 있는 로직을 하나의 tasklet으로 구현하면 스프링배치로 전이가 쉬워짐 spring 재처리 api controller api 에서 스프링배치 재기동을 위한 코드 필요 관리자 화면에서 재처리 api 호출하는 식으로 처리.

개발환경 2022.05.18

윈도우에서 리눅스 파일 시스템 접근하기.

최근에 지인의 리눅스서버에서 적출한 하드디스크에 있는 데이터를 백업할 일이 있었습니다. 윈도우10에서 해당 하드디스크를 마운트 하는 것은 어렵지 않습니다. 여러 유틸이 있지요. 그런데 한글로 된 디렉토리나 파일을 읽지 못합니다.. 그래서 이것저것 시도를 해 보았는데요... 위에서 읽지 못한 디렉토리나 파일을 읽을 수는 있는데 한글인식이 되지 않는 문제가 있네요.. 한글인식이 되면서 읽을 수 있게 하는 유틸이 필요하게 되었는데요.. http://www.chrysocome.net/explore2fs chrysocome.net - Explore2fs Explore2fs Explore2fs is a GUI explorer tool for accessing ext2 and ext3 filesystems. It r..

개발환경 2020.06.17

HttpClient timeout ...

HTML 크롤링하여 스크래핑할 때 Jsoup 을 많이 사용합니다. 하지만 Jsoup에는 크게 두가지 문제가 있어 보입니다. 1. 큰 HTML 파일을 크롤링 제대로 하지 못합니다. 2. 잘못된 HTML 파일의 경우 텍스트만 발라내다가 행(Hang)이 걸립니다. 21세기에 이런 황당한 일이... 1번 문제는 크롤링은 HttpClient 같은 오픈소스를 이용하여 해결할 수 있습니다. 2번 문제는 Swing에 있는 모듈로 처리할 수 있습니다. 대충 아래처럼 하면 HTML에서 텍스트를 얻어낼 수 있습니다. StringBuilder sb = new StringBuilder(); ParserDelegator parserDelegator = new ParserDelegator(); HTMLEditorKit.Parser..

개발환경 2019.11.13

spring mvc favicon 에러..

일반적인 브라우징에서는 딱히 문제가 없는데 로그인이후에 favicon 파일로 인해 여러 가지 문제가 발생했습니다. 구글링해보면 여러가지 방법이 제안되어 있습니다. 1. Controller에서 /favicon.ico을 처리하는 메소드에 리턴값이 없게 합니다. @GetMapping("favicon.ico") @ResponseBody public void returnNoFavicon() { } 2. Configuration에 custom 하게 favicon.ico 위치를 직접 처리합니다. @Bean public SimpleUrlHandlerMapping customFaviconHandlerMapping() { SimpleUrlHandlerMapping mapping = new SimpleUrlHandlerMa..

개발환경 2019.11.13

jsoup 사용시 애로사항

자바로 html을 파싱할 때 jsoup을 주로 사용합니다. 오늘까지 jsoup ( 1.11.3 ) 사용할 때 크게 문제가 없었는데요. 오늘 장애가 발생하면서 문제를 인식하게 되었습니다. jsoup을 통해 여러가지 작업을 수행중인데요. 그중에 html에서 text를 추출하는 게 있습니다. html 파일이 정상이 아닌 경우 text 추출할 때 HANG 이 걸립니다. ( 예외도 발생하지 않고 HANG 이 걸립니다... @.@) rabbitmq 에서 ack 를 받아야 이후 큐 처리를 하는 경우 해당큐가 HANG이 걸립니다. 놀랍게도 어드민 화면에서 제어가 저같은 경우 불가능했습니다. 그래서 HANG이 걸린 듯 보이는 큐는 삭제하고 재생성했습니다. 이후 처리하지 못한 데이터는 재처리해서 겨우 복구했습니다. 1.1..

개발환경 2019.10.29

spring boot rabbitmq 장애..

rabbitmq 설정은 아래와 같습니다. spring.rabbitmq.listener.simple.concurrency=4 spring.rabbitmq.listener.simple.max-concurrency=8 spring.rabbitmq.listener.simple.retry.initial-interval=5000 spring boot 설정중에 아래와 같은 설정이 문제 였습니다. #spring.task.scheduling.pool.size=8 #spring.task.scheduling.thread-name-prefix=news springboot의 task thread pool 사이즈를 아래처럼 설정하여 문제 해결하였습니다 @Bean public TaskExecutor taskExecutor() { ..

개발환경 2019.10.23