본문 바로가기
반응형

슬기로운 자바 개발자 생활63

Spring WebFlux, RX JAVA ReplaySubject 구독자가 새로 생기면 항상 데이터의 처음부터 끝까지 발행한다. 최근 구독자는 예전 구독자들이 받은 데이터들까지 받게 된다. 이거 위험하다. 데이터량이 엄청나면.... 다 받으니 메모리 문제가 일어나니까 조심해야 됨. 대략 RxJava 예) ReplaySubject subject = ReplaySubject.create(); subject.subscribe(data -> System.out.println(("Subscriber 1# => "+ data))); int value = 0; for(int i=0 ; i System.out.println(("Subscri.. 2022. 11. 8.
slf4j 설정. 평범한 자바프로젝트. 공부용 설정. 인텔리J 1. 메이븐 설정 2. pom.xml org.slf4j slf4j-api 1.7.25 ch.qos.logback logback-classic 1.2.3 org.slf4j jcl-over-slf4j 1.7.25 3. resource 폴더에 lgback.xml 작성 %d{HH:mm} %-5level %logger{36} - %msg%n ./application_log/application.log %d{yyyyMMdd HH:mm:ss.SSS} [%thread] %-5level [%logger{0}:%line] - %msg %n ./application_log/application_log.%d{yyyy-MM-dd}.%i.log 5mb 5 4.코딩 해보기 . com 패.. 2022. 6. 21.
jsonschema2pojo 사용하기 json데이터를 자바 클래스로 https://api.stackexchange.com/2.2/users?order=desc&sort=reputation&site=stackoverflow json 데이터를 아래 처럼 붙여 놓고 옵션 잘 선택하고 "Preview"를 클릭. 아래 처럼 자바 클래스로 변신~ 복사해서 자바 프로젝트에 class로 사용~ 2022. 5. 16.
나는 공부 중 Reactive Streams 첫 번째 우연히 MSA를 공부하다가 도서관에서 RxJava를 알게됨. RxJava 책을 빌려보다가 Reactive 프로그래밍에 대해 알게 됨. 리액티브 스트리밍, 리액티브 프로그래밍, 함수형 프로그래밍, 비동기, 백 프레셔, 논블록킹 ... 어디선가 지나치듯 들어봤고 Node.js 하면서 비동기 처리도 얼릿 들어보고 대충 이곳저곳 기웃거리며 조금 안다고 생각했는데 현실은 모르고 있었네요. "사건1" 제 기준에서 엄청난 량의 데이터를 뽑는 유저들이 있었습니다. 20만건 정도의 로우인데 컬럼이 50개가 넘고, 쿼리도 꽤 복잡했습니다. 그런데 조회를 하면 10 ~ 30분 정도 넘게 걸리면서 WAS가 먹통이 되더라고요. 모니터링 툴을 보며 돌려보니 힙이 80% 이상 차고 원래대로 돌아가지도 않고... WAS 메모리를 늘.. 2022. 4. 27.
RestTemplate Rest Api 호출해보기 스프링 버전에 따라 조금씩 사용법이 다르다. 최대한 심플하게 서버와 클라이언트를 만들어서 테스트를 해보며 기능을 확장하는 방법이 공부하기 좋다. 1. Rest Server를 하나 만들고. 멤버 VO하나 만들어 20개 정도 자료가 나오도록 만든다. 2. 잘 돌아가는지 확인해보기 크롬 API 툴로 사용해보니 잘나온다. 그러면~~~~ 이제 이클립스로 스프링 프로젝트를 만들어서 테스트 RestTemplate restTemplate = new RestTemplate(); ResponseEntity entity = restTemplate.exchange("http://codev.lgchem.com:8080/member", HttpMethod.GET, null,new ParameterizedTypeReference(.. 2021. 12. 8.
자바 SMTP 메일 송신 기능 구현. 파일 첨부 포함 이번 프로젝트에서는 SMTP 메일 송신 기능 구현이 필요했다. 3년 전 프로젝트에서 PDF를 만들고 그 파일을 메일에 첨부해 송신하는 요구사항이 있어서 구현했었는데 소스를 보관하지 않아 다시 만들어 봤다. 별 특별한 것은 없지만 회사내 개발자 PC와 메일시스템 포트를 막아버려 승인된 서버에서만 SMTP 발송이 가능하게 해놓았으므로 네이버 계정으로 개발을 했다. 구글도 가능하겠지. 프론트에서 Controller를 호출. 메일 발신 기능을 이용할 경우는 파일 첨부 방식이 약간 다를 것이다. 난 서버에 파일을 특정위치에 올려 두고 File 객체를 사용한다. 훗날 타 프로젝트 수행 시 같은 요구사항 들어오면 소스만 복붙해서 끝낼 마음으로 포스팅한다. 웹어플리케이션 서버, 자바버전 마다 mail.jar 문제가 있.. 2021. 7. 18.
반응형