개발/spring
-
spring batch개발/spring 2023. 6. 30. 19:15
spring batch Spring batch 는 대량의 데이터를 처리하기 위한 배치 처리 프레임워크. ItemReader, ItemWriter, ItemProcessor, Execution Context 와 같은 스프링부트의 구성요소를 이용해서 작업을 쉽게 처리할 수 있다. 처음에는 복잡해보이지만 사용해보면 간편하다. ItemReader 데이터 소스에서 데이터를 읽어오는 역할을 함. 데이터베이스나 파일, 메시지 큐등에서 다양한 데이터 소스를 읽어올 수 있으며 한번에 하나씩 또는 청크 단위로 읽어오는 것이 가능하다. 예제 코드에서는 final 로 선언된 배열의 데이터를 순차적으로 읽어오도록 작성했다. 더이상 읽을 값이 없는 경우 null을 리턴해서 reader를 종료한다. public class Cust..
-
IoC container and Bean개발/spring 2021. 9. 6. 21:00
IoC Containner and Bean In Spring, the objects that form the backbone of your application and that are managed by the Spring IoC container are called beans. A bean is an object that is instantiated, assembled, and otherwise managed by a Spring IoC container. Otherwise, a bean is simply one of many objects in your application. Beans, and the dependencies among them, are reflected in the configura..
-
@Bean vs @Component개발/spring 2021. 9. 6. 20:00
Spring IoC 컨테이너 내에서 관리하는 객체들을 Bean 이라고 하고 Bean으로 사용 될 수 있는 객체는 XML이나 코드상에서 지정이 가능하다. 어노테이션을 사용하는 경우 @Bean, @Conponent 같은 어노테이션을 이용해 Spring IoC 컨테이너에 클래스를 객체로 등록할 수 있다. @Bean @Bean 어노테이션은 method 레벨 어노테이션으로 개발자가 수정할 수 없는 3rd 라이브러리 객체를 IoC Container에 등록하고 싶을 때 사용한다. 예를 들면 아래 코드처럼 애플리캐이션 전체에서 공통적으로 사용하고 싶은 Kafka 클래스를 만드려는 경우 아래와 같은 코드로 Bean을 등록 할 수 있다. @Bean을 사용할 때는 @Configuration 어노테이션이 추가된 클래스 내부에..
-
Node.js vs Spring Boot개발/spring 2021. 3. 13. 22:32
현재 서버 애플리케이션 플랫폼의 큰 두 축은 Spring Boot 와 Node.js 인것 같다. 각각의 플랫폼마다 고유한 장점이 있을 텐데 정작 나는 '일하고 있는 곳에서 사용중이다', '요새 이게 트렌드라고 한다'는 이유로 본질을 망각한채 공부만 해왔던 것 같다. 그래서 이번 포스트에서는 spring boot와 nodejs 각각의 장점과 단점을 늦었지만 다뤄 보고자 한다. Node.js Node.js하면 자바스크립트로 짤 수 있는 서버 애플리케이션을 가장 먼저 떠오르는데 사실 Node js는 Non-blocking I/O를 처리하는데 최적화된 플랫폼이다. Non-blocking I/O는 다른 작업이 처리되는 걸 기다리는 도중에 다른 작업을 하는 것을 말하며 이러한 형태는 짧은 시간에 여러 작업을 처리할..
-
Spring 테이블 칼럼이 아닌 필드 데이터 받아오기개발/spring 2021. 3. 5. 20:00
Spring으로 쿼리를 만들다보면 여러개의 테이블을 조인한 쿼리에서 다른 테이블 칼럼의 값까지 읽어올 필요가 있다. 예를 들면 글정보를 받아 오는 api가 있는데 내가 그 글을 좋아요 했는지, 안했는지 유무까지 알려주는 요구 사항의 경우 두 개의 테이블을 조인해야한다. 쿼리문을 짜면 다음과 같다. tb_post에 있는 모든 필드를 가져오고, 좋아요 유무는 liked 필드 이름으로 받아오는 것으로 뒀다. select tb_post.*, when tb_post_user_like.post_id > 0 then true else false end as liked from tb_post left join tb_post_like on (tb_post.post_id = tb_post_user_like.post_id ..