본문 바로가기

JAVA

(6)
Java 제네릭 기본 출처: https://www.baeldung.com/java-generics The Basics of Java Generics | Baeldung A quick intro tot he basics of Java Generics. www.baeldung.com 리액티브 프로그래밍을 스터디 중인데.. 함수형 프로그래밍, 제네릭 개념에 대한 이해가 부족하다는 것을 알게 되었다. 기본부터 다시 공부하고자 위 사이트를 방문하게 되었다. ​ 1. 소개 Java Generic (자바 제네릭)은 JDK5.0 에서 추가되었는데 버그를 줄이고 타입들 위에 추상레이어를 추가하는 것이 목적이었다. 이 기사는 제네릭에 대한 간단히 소개하고. 제네릭의 목적과 코드의 질을 향상시키기 위해 어떻게 사용해야 하는지에 대해 다룬다. 2..
자바 함수형 프로그래밍 기술 7가지 출처: https://deepu.tech/functional-programming-in-java-for-beginners/ 7 Functional programming techniques in Java - A primer Functional programming concepts in Java for beginners. deepu.tech 일단 제네릭의 기본은 알게 되었고, 그 다음은 함수형 프로그래밍이다. 함수형 방식은 자바스크립트에서나 단순하게 사용해본 상황에서 여러 함수들이 난무하는 리액티브 프로그래밍에서는 작성된 코드 자체를 이해하기 쉽지 않았다. 급할 수 록 돌아가라는 말이 있듯이 일단 함수형 프로그래밍에 대한 기본부터 공부해 보고자 위의 사이트를 방문하였다. 추가: 재귀가 나오는 부분 부터는 개..
Apache Pulsar 정리 (kafka와 비교) Apache Pulsar가 kafka 보다 나은 이유를 아래의 참고자료에서 간단히 요약했다. Latency and Throughput kafka 대비 약 2.5배 빨라 졌으며, 카프카보다 레이턴시(딜레이)가 40% 가 낮다. Scalability Issues kafka는 토픽을 전용 파일과 디렉토리에 저장하면서 확장에 문제를 겪는다. 이유는 이 파일들이 주기적으로 페이지 캐시에서 디스크로 플러시 되는데 이렇게 되면 I/O가 여러 디스크에 걸쳐 발생될 것이기 때문이다. 반면에 Pulsar는 bookies (BookKeeper 서버들을 말함)에 저장한다. 여기에는 서로 다른 토픽들로 부터 받은 메시지들을 대용량 파일들에 모이고, 정렬되고 저장되고 나서 인덱싱 된다. Pulsar는 수백만개의 토픽들로 확장할 ..
XSD 를 Java 소스로 변환하기 - 메이븐 프로젝트 활용 나의 경우 외부에서 제공하는 웹서비스를 사용하는 프로젝트를 하게 되면 보통 매우 복잡한 수많은 XSD 문서를 전달받게 되는데 내용이 방대하다 보니 웹서비스를 호출 결과를 직접 파싱하여 객체에 담는 대신 전달 받은 XSD 를 Java 소스로 변환 하여 웹서비스 응답이 생성된 객체로 매핑되도록 한다. 아마도 이렇게 작업하는 사람이 많지 않을까 한다. 기존까지는 커맨드 창에서 xjc 명령어를 이용해 xsd 를 java 소스로 만들었는데 .. 이렇게 하다보니 한가지 불편한 부분이 있었으나 개션하지 않고 있었던 부분이 있었다. 소스코드파일이 주석으로 인해 굉장히 커지는 문제다. 생성된 Java 소스를 확인해 보면 각 클래스마다 주석으로 그 클래스에 대한 스키마 구조가 그대로 붙여 있는데 XSD 가 큰경우 이 양이..
Calendar 예제 mport java.util.Calendar; import java.util.Date; public class TimeTest { /** * @param args */ public static void main(String[] args) { String[] week = {"일", "월", "화", "수", "목", "금", "토"}; Date d = new Date(); System.out.println(d.getTime()); Calendar cal = Calendar.getInstance(); System.out.println(cal.get(Calendar.YEAR)+"년" + (cal.get(Calendar.MONTH)+1)+"월" + cal.get(Calendar.DATE)+"일" + week[c..
JSON 테스트 mport java.util.HashMap; import java.util.Map; import org.codehaus.jettison.json.JSONObject; public class JsonTest { public static void main(String[] args) { Map map = new HashMap(); map.put("aa", "aaaa"); map.put("bb", "bbbbb"); JSONObject json = new JSONObject(map); System.out.println(json.toString()); } } 결과: {"aa":"aaaa","bb":"bbbbb"}