반응형

Web/스프링부트(SpringBoot Framework) 13

Spring Batch란? 이해하고 사용하기(예제소스 포함)

https://khj93.tistory.com/m/entry/Spring-Batch%EB%9E%80-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B3%A0-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0 Spring Batch란? 이해하고 사용하기(예제소스 포함)들어가기 앞서.. Spring Batch에는 굉장히 많은 설정과 기능들이 존재합니다. 해당 포스팅에서는 기초적인 Spring Batch에 대해서 설명하고 사용하는 예제에 대해서 설명을 하려고 합니다. Spring Batch를 khj93.tistory.com

(2) @Autowired와 @Bean 차이점

@Autowired 와 @Bean 어노테이션의 구분@Autowired와 @Bean의 역할은 다르지만, 함께 작동하여 의존성 주입과 객체 생성을 처리합니다. 하지만 두 어노테이션의 차이를 명확히 알아야 합니다 @Autowired의 역할: @Autowired는 의존성 주입을 위한 것이며, 직접적으로 객체를 생성하지 않습니다. 이 어노테이션은 Spring 컨테이너에게 해당 타입의 빈을 찾아 주입하라고 지시합니다. 객체 생성 과정: 객체 생성은 주로 Spring 컨테이너에 의해 이루어집니다. @Component, @Service, @Repository, @Controller 등의 어노테이션이 붙은 클래스들은 자동으로 빈으로 등록되고 생성됩니다. @Bean의 ..

(1) @Autowired와 @Bean 차이점

@Autowired 와 @Bean 은 스프링에서 의존성 주입과 빈 관리를 위해 사용되지만, 그 목적과 사용 방식에는 차이가 있습니다. 1. @Autowired역할: 스프링이 자동으로 의존성을 주입할 때 사용하는 애노테이션 입니다.스프링 컨테이너가 관리하는 빈 중에서 해당 타입의 빈을 자동으로 주입합니다.사용 시점: 주로 필드, 생성자, Setter 메서드에 사용됩니다.@Autowired 사용 예시:@Servicepublic class MyServiceImpl implements MyService { // 필드 주입 방식에 사용한 @Autowired @Autowired private MyRepository myRepository; @Override public void perf..

(2) Kafka, Spring Boot, 리액트를 사용하여 쇼핑몰 사용자의 결제정보 실시간 처리 구현하기

도커를 사용하여 Kafka 를 설치하는 방법앞 장에서 로컬인 윈도우에 Kafka를 설치하였습니다. 로컬에 설치된 Kafka를 사용할 경우 이 과정은 생략하여도 됩니다.추가로 도커를 사용하여 Kafka를 설치하는 방법을 설명하겠습니다.docker-compose.yml 파일을 다음과 같이 작성합니다.version: "3.8"services: kafka-0: image: bitnami/kafka:latest container_name: kafka-0 user: root ports: - "10000:9094" environment: - KAFKA_CFG_NODE_ID=0 - KAFKA_KRAFT_CLUSTER_ID=M2fxHJLvSO2xWi1DpTnikg ..

(1) Kafka, Spring Boot, 리액트를 사용하여 쇼핑몰 사용자의 결제정보 실시간 처리 구현하기

1. 로컬 환경에 Kafka 설치 및 구성하기실제 Kafka를 서비스에 이용하는 회사의 경우 별도의 서버에 Kafka를 설치하겠지만, 스프링부트에서 Kafka 서비스를 이용하는 것을 목적으로 하기 때문에 여기선 간단하게 내 윈도우 로컬 환경에 Kafka를 설치해 실습을 진행해 보도록 하겠습니다.설치 환경: Windows 11다운로드:  kafka.apache.org Apache KafkaApache Kafka: A Distributed Streaming Platform.kafka.apache.org1) 다운로드Kafka 공식 홈페이지 오른쪽 상단의 'DOWNLOAD KAFKA' 버튼을 클릭합니다.가장 최신 버전은 안정화가 안 되어 있을 수 있으므로 3.6.2 버전을 받았습니다.  2) 로컬PC의 윈도우에..

(3) @RequestParam과 @PathVariable 차이점

Spring 프레임워크에서 @RequestParam과 @PathVariable 어노테이션은 모두 컨트롤러 메서드에서 요청 파라미터를 처리하는 데 사용되지만, 그 목적과 사용 방식이 다릅니다. 각각의 차이점을 자세히 설명하겠습니다.  @RequestParam용도: HTTP 요청 파라미터를 메서드 매개변수에 바인딩할 때 사용합니다. 주로 쿼리 스트링 또는 폼 데이터에서 파라미터를 추출할 때 사용됩니다.사용 예: URL에 포함된 쿼리 파라미터나 폼 데이터에서 값을 추출할 때.기본값: 제공하지 않으면 기본값을 설정할 수 있습니다. 파라미터가 필수가 아닐 경우 required = false로 설정할 수 있습니다.예시코드:@GetMapping("/api/users")public String getUserByRequ..

(2) @Autowired와 @AllArgsConstructor 차이점

@Autowired와 @AllArgsConstructor는 둘 다 스프링 프레임워크에서 의존성 주입을 지원하는 방식이지만, 사용하는 방식과 상황에 따라 적절히 선택해야 합니다. @Autowired@Autowired는 스프링에서 의존성 주입을 위한 애노테이션으로, 필드, 생성자, 또는 메서드에 사용할 수 있습니다. 이를 통해 스프링 컨테이너가 적절한 빈을 자동으로 주입하도록 합니다. 1. 필드 주입(Field Injection):가장 단순한 방법으로, 필드에 직접 주입합니다.@Componentpublic class MyService { @Autowired private MyRepository myRepository; // ...}단점:테스트하기 어려움순환 의존성 문제 발생 가능의존성..

(1) @AllArgsConstructor과 @NoArgsConstructor 차이점

@AllArgsConstructor와 @NoArgsConstructor는 둘 다 롬복(Lombok) 라이브러리의 애노테이션으로, 각각 클래스에 대해 모든 필드를 매개변수로 받는 생성자와 기본 생성자(매개변수가 없는 생성자)를 자동으로 생성해줍니다.두 애노테이션의 주요 차이점은 생성하는 생성자의 종류와 용도입니다. @AllArgsConstructor기능: 클래스의 모든 필드를 매개변수로 받는 생성자를 생성합니다.사용 목적: 주로 의존성 주입이나 객체 생성 시 모든 필드를 초기화해야 할 때 사용됩니다. 예시 코드:import lombok.AllArgsConstructor;@AllArgsConstructorpublic class MyClass { private String name; private ..

(2) 스프링부트, JPA로 구현한 로그인을 시도한 사용자의 접속 시간 저장

Formatter를 이용한 LocalDateTime 처리 웹에서 전달되는 데이터는 JSON 형식의 데이터일 수도 있고 첨부파일 등이 포함되는 경우에는 form-data 혹은 일반적인 웹에서 사용하는 x-www-form-urlencoded 일 수도 있습니다. 이러한 처리 과정에서 날짜/시간은 항상 주의해야 합니다. 날짜/시간은 브라우저에서 문자열로 전송되지만, 서버에서는 LocalDate 혹은 LocalDateTime 으로 처리됩니다. 그렇기 때문에 이를 변환해 주는 Formatter를 추가해서 이 과정을 자동으로 처리 할 수 있도록 설정합니다.   addFormatters 메서드는 스프링의 WebMvcConfigurer 인터페이스에 정의된 메서드 중 하나로, 애플리케이션에서 사용하는 데이터 형식을 일관되..

(1) 스프링부트, JPA로 구현한 로그인을 시도한 사용자의 IP 저장

추후 Redis로 이 기능을 변경하기 전 단계로 관계형 DB인 MariaDB에 로그인을 시도한 사용자의 IP를 저장하는 기능을 스프링부트, JPA로 구현하여 보자. 사이트를 유지보수 하다보면 로그인을 시도한 사용자의 ip정보나 로그를 수집할 필요가 있기도 합니다.사용자가 웹브라우저를 통해 접속을 하거나 혹은 다른 HTTP 클라이언트를 통해 웹서버에 요청을 할 경우, Spring MVC에서 HttpServletRequest 객체에는 다양한 정보가 포함됩니다. 이 정보는 클라이언트의 HTTP 요청과 관련된 다양한 속성 및 헤더를 포함합니다.몇 가지 주요한 정보는 다음과 같습니다.요청 URL 및 메소드 정보:request.getRequestURL(): 요청 URL을 가져옵니다.request.getMethod(..

반응형