본문 바로가기

[java] java에서 이미지 처리 들어가기 자바에서 이미지를 처리하기 위한 자체 라이브러리로 ImageIO가 있다. 그리고 추가적인 이미지 처리는 awt에 있는 라이브러리를 사용할 수 있다. 이를 이용해 이미지를 합성, 이미지 크기 변경 등 다양한 이미지 처리 작업을 할 수 있다. 별다른 라이브러리 설치나 프로그램을 사용하지 않고 쉽고 간단하게 처리할 수 있다는 장점이 있다. ImageIO을 사용하는 방법을 살펴보자. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) 지원하는 포멧 ImageIO는 만능 그래픽 처리 라이브러리가 아니다. 그래도 많은 포멧을 지원하고 있다. String readFormats = String.join(",", ImageIO.getReaderFormatNames().. 더보기
[java] POJO, JavaBeans, VO, DTO, PO, BO 들어가기 자바을 활용하다보면 간혹 책이나 검색 자료등에 POJO, VO와 DTO도 많이 보았고 또한 많이 사용하고 있다. 여기서는 여런 용어에 의미를 알아볼려고 한다. 여기서 내용도 절대적이지는 않다. 나름 나만의 해석이나 개인적 주관이 포함되어 있을 수 있지만 한번은 생각해보고 사용해야하지 않을까 생각한다. 그래야 적절한 객체를 정의해서 사용하거나 추후에 확장할 때에 일관된 방향으로 나아갈 수 있을 거라고 생각한다. 이제부터 하나씩 살펴볼려고 한다. 작성자: http://ospace.tistory.com/ (ospace114@empal.com) POJO란? POJO는 2000년 9월에 Martin Fowler, Rebecca Parsons 그리고 Josh MacKenzie에 의해서 만들어졌다. POJO.. 더보기
[java] spring에서 event 사용하기 들어가기 스프링에서 이벤트 처리하는 방법을 알아보자. 일반적으로 스프링에서 이벤트 처리하는 경우는 많지가 않다. 대부분 빈객체의 메소드를 직접적으로 호출하여 처리한다. 대부분 직관적이고 코드도 명확하기 때문에 많이 사용한다. 이는 스프링 세션을 처리하는 내부에서도 사용되고 있다. 이벤트 처리는 대부분 비동기적으로 처리되어 추적하거나 분석하기 쉽지 않다. 그래도 이벤트 처리로 서로 간에 종속성을 끊어주고, 동기적 처리로 인한 작업 지연이 최소화된다. 이벤트로 처리할 경우에 장점이 많기 때문에 알아두면 좋다. 작성자: http://ospace.tistory.com, (ospace114@empal.com) 기본 이벤트 정의 이벤트 처리하는 로직을 들어가기 전에 기본적인 이벤트 정의를 보자. 스프링에서는 이벤트.. 더보기
[java] Collections like SQL 들어가기 Java에 배열, 맵, 셋들 사용해서 자료를 처리하는 중에 여러 조건으로 값을 찾을 경우가 있었다. 그 조건에 중간에 조금씩 계속 바뀌는 상황으로 자료 구조를 생각하면서 수정하기에 번거롭기 시작했다. 혹시 가벼우면서도 SQL 비슷한게 없나 찾아보았다. 물론 메모리 DB를 사용할 수 있지만, 너무 덩치가 커서 배보다 배꼽이 커지는 상황이다. 그러던 중에 Java Collection 라이브러리 중에서 SQL 쿼리와 비슷한 기능을 제공하는 라이브러리가 있었다. Java에는 간단한 자료 구조로 단순한 기능만 가진다. RDBMS는 기능은 풍부하지만, 간단한 처리에는 부담이 크다. 간단하지만 쉽게 memory db같은 형태의 자료 처리가 필요해서 찾은게 CQEngine(Collection Query Eng.. 더보기
[java] CompletableFuture 사용하기 들어가기 java.util.concurrent 패키지에는 비 동기 처리를 하기 위한 JDK 라이브러리를 제공한다. 그 중에서도 가장 간편하고 기능도 풍부한 CompletableFuture에 대해서 살펴보자. 작성자: ospace114@empal.com, http://ospace.tistory.com/ 단순한 예제 CompletableFuture는 완료가능한 작업을 지원하는 Future이다. CompletableFuture 클래스 선언이다. public class CompletableFuture extends Object implements Future, CompletionStage {...}Future와 CompletableFuture 인터페이스를 구현하고 있다. 대표적인 메소드인 complete()와 .. 더보기
[Springboot] Spring boot WebFlux 사용하기 들어가기 Spring WebFlux은 Spring Framework의 모듈로서 비동기와 반응형 프로그래밍을 지원하며 작은 하드웨어 리소스에서 적은 수의 스레드로 동시성을 처리하는 웹 스택이다. 기존 Servlet API는 동기식 I/O형태로 처리되었지만 이를 비동기식으로 구성된 서버(예: Netty)에 의해 새로 구성된 API이다. 비동기 처리로 자원 사용 효율이 좋아졌지만 성능이 좋아진다는 보장이 없다. 다음과 장점이 있다. 비동기 처리에 의한 다중 요청 처리 반응형 프로그래밍으로 데이터 스트림 처리와 이벤트 기반 처리 유용 함수형 라우팅으로 간결하게 코딩 작성 가능 WebFlux에서는 크게 두가지 방식으로 사용할 수 있는데, 하나가 어노테이션을 사용한 방법과 다른 하나는 직접 라우팅 설정을 통한 방법.. 더보기
[spring boot] 다중 DB 사용하기: ApacheShardingSphere 활용 들어가기 자바에서 샤딩용 라이브러리로 많이 사용하고 있는 Apache ShardingSphere을 사용해서 다중 DB사용하는 방법을 살펴볼려고 한다. 여기서는 간단하게 맞보기로 살펴볼 예정이다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ Sharding 이름에도 나오지만 Apache의 ShardingSphere는 샤딩에 많이 사용된다. 샤딩이란 데이터를 여러 DB 서버로 분산해서 처리량을 높이는 방법이다. 이런 샤딩은 데이터를 분산하는 방식에 따라 여러 종류로 구분할 수 있다. Vertical: 부하가 몰리는 테이블을 분리해서 다른 DB로 분산 Horizontal: 한 테이블 데이터를 여러 DB로 분산 샤딩하는 방법은 직접 연결 구현하거나 중간 프록시를.. 더보기
[spring boot] 다중 DB 사용하기: AbstractionRoutingDataSource 활용 들어가기 AbstractionRoutingDataSource을 사용해서 다중 DB를 구현하는 방식이다. 작성자: ospace114@empal.com, http://ospace.tistory.com/ 설정파일 구성 다중 DB에서 사용할 설정파일에 어떻게 설정값을 할당하는지 살펴보자. 다중 DB에 사용할 application.properties 내용은 아래와 같다. spring.datasource.master.jdbc-url = jdbc:mysql://127.0.0.1:3306/db1?serverTimezone=UTC spring.datasource.master.username = foo spring.datasource.master.pasword = foopass spring.datasource.slave... 더보기

반응형