본문 바로가기

전체 글156

메시지 큐(Message Queue)란? 메시지 큐의 기본 개념을 간단히 소개*자세한 설명 생략  ▷ 메시지 큐(Message Queue)란?     - 메시지 지향 미들웨어(MOM : Message Oriented Middleware)를 구현한 시스템    *미들웨어 : Application들을 연결해 서로 데이터를 교환할 수 있게 해주는 소프트웨어    *메시지 지향 시스템 : 메시지 API를 통해 각 분산되어 있는 Application 간 데이터를 교환할 수 있도록 하는 시스템    *비동기방식, Publisher/Subscribe 로 구성     - 프로세스(프로그램) 간 데이터를 교환할 때 사용하는 기술    - 대용량 데이터를 처리하기 위한 배치 작업이나, 채팅 서비스, 비동기 데이터를 처리할 때 활용    *모든 요청을 메시지 큐에.. 2023. 2. 6.
서블릿(Servlet) 이란? 서블릿의 기본 개념을 간단히 소개*자세한 설명 생략  ▷ 서블릿(Servlet) 이란?     - 클라이언트 요청을 처리하고, 그 결과를 반환하는 자바 웹 프로그래밍 기술     - Java로 구현된 CGI        *CGI(Common Gateway Interfac) : 웹서버와 외부 프로그램 사이에서 정보를 주고받는 방법이나 규약  ▷ 서블릿(Servlet) 특징     - 정적인 웹 프로그램의 문제점을 보완하여 동적인 여러 가지 기능을 제공     - 웹 브라우저에서 요청시 기능을 수행     - Thread를 이용해 동작     - HttpServlet 클래스를 상속받아 활용     - 보안 기능 적용 용이         *인증(Authentication), 인가(Authorization), .. 2023. 2. 3.
Spring 이란? Spring의 기본 개념을 간단히 소개*자세한 설명 생략  ▷ Spring?     - JAVA 웹 프레임워크로 JAVA를 이용한 기술들을 더 쉽게 사용할 수 있게 해주는 오픈소스 프레임워크     - Srping 프레임워크는 20여 개의 모듈로 구성   ▷ Spring 주요 특징     ▶ IOC(Inversion Of Control), 제어반전         객체생성, 생명주기, 의존성 관리를 직접 제어하지 않고 외부에서 관리     ▶ IOC Container 분류         - DI(Dependency Injection), 의존성 주입             개발자가 객체 내부에서 직접 호출(new)하지 않고 외부(Spring Container)에서 객체를 생성해서 넣어주는 방식         .. 2023. 2. 1.
SpringBoot Maria DB + MyBatis 설정 *자세한 설명 생략  ▷ Project 전체 구조*파일 이름으로 검색 가능*이전 MQTT Client + WebFlux 구축 관련 Project에 이어서 진행(아래 관련 글 참고)   ▷ Table Create*example을 위한 Table CREATE TABLE `test`.test ( topic VARCHAR(255) NOT NULL, message VARCHAR(255) NOT NULL);INSERT INTO `test`.test (topic, message)VALUES ('1','HELLO-1'), ('2','HELLO-2'), ('3','HELLO-3'), ('4','HELLO-4'), ('5','HELLO-5');SELECT * FROM `test`.test;  ▷ build.grad.. 2022. 12. 6.
SpringBoot에서 MQTT Client + WebFlux 구축 WebFlux를 적용한 MQTT Client를 구축하고Topic 메시지 도착 시 Callback으로 Bean을 통해 서비스 구분*Mqtt Broker(mosqitto) 아래 관련 글 참고*자세한 설명 생략  ▷ Project 전체 구조*파일 이름으로 검색 가능   ▷ build.gradle   ▷ application.properties   ▷ MqttApplication.java*아무 작업하지 않음   ▷ MqttPublishVO.java*MqttController 발행 요청 VO   ▷ MqttSubscribeVO.java*MqttController 구독 요청 VO   ▷ MqttController.java   ▷ UserController.java   ▷ MqttService.java   ▷ A/B.. 2022. 12. 2.
SpringBoot JSP 설정 Spring Boot에 내장된 Tomcat은 JSP을 지원하지 않는다.*gradle 사용*자세한 설명 생략  ▷ build.gradle*의존성 추가 implementation 'javax.servlet:jstl'implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'  ▷ application.properties*Spring Boot Jsp View 경로 설정 spring.mvc.view.prefix=/WEB-INF/jsp/spring.mvc.view.suffix=.jsp  ▷ Jsp 파일 생성*위 설정한 경로와 맞게 생성   ▷ 결과 확인 2022. 12. 1.
Sinks.many() 란? EmitterProcessor가 @Deprecated 돼서 Sinks.many()로 대체 사용*EmitterProcessor 내부에서 Sinks를 사용하고 있음*Processor : 처리 단계를 나타내며 발행자 인터페이스와 구독자 인터페이스를 모두 상속*자세한 설명 생략  ▷ Sinks.many() - 데이터를 구독 받고, 구독한 데이터를 다시 발행할 때 사용- 여러 subscriber가 사용할 수 있는 구독과 발행이 동시에 일어나는 프로세서- 내부 queue를 가지고 있어 subscriber가 없더라도 해당 데이터를 큐에 쌓음 종류설명unicast()하나의 Subscriber만 허용(즉, 하나의 Client 만 연결)multicast()여러 Subscriber를 허용multicast().onBackpr.. 2022. 11. 29.
Spring WebFlux Non-Blocking 방법 Mono, Flux를 이용했다고 Non-Blocking이 되진 않는다.*Thread Pool을 통해서도 가능*WebClinet 생략*자세한 설명 생략  ▷ Reactor Thread 지정* 동일한 Thread를 사용하지 않도록 Reactor에게 Thread 지정 종류설명subscribeOn()- 스트림을 구독할 때 동작을 지정한 Thread Pool에서 수행할 수 있도록 설정*subscription process에 적용publishOn()- publishOn 이전의 모든 것은 Main Thread에 의해 실행*subscribeOn 과 유사하지만 중요한 차이점은 다운스트림에서 실행- subscriber가 처리하는 부분인 onNext() / onComplete() / onError()를 지정한 Thread .. 2022. 11. 29.
스레드 풀(Thread Pool) 이란? *자세한 설명 생략  ▷ 스레드(Thread) 란?프로세스 내에서 실제로 작업을 수행하는 주체  ▷ 스레드 풀(Thread Pool) 이란?병렬 처리가 잦은 프로그램에서 사용하기 적합스레드를 미리 생성하고, 작업 요청이 발생할 때마다 미리 생성된 스레드로 해당 작업을 처리하는 방식*이때, 작업이 끝난 스레드는 종료되지 않으며 다음 작업 요청이 들어올 때까지 대기  ▷ 스레드 풀(Thread Pool) 주요 용어용어설명초기 스레드생성될 스레드코어 스레드남아있을 최소 스레드최대 스레드스레드의 최대 개수  ▷ 스레드 풀(Thread Pool) 생성종류설명CachedThreadPool- 초기 스레드 수, 코어 스레드 수가 0개, 최대 스레드 수(Integer.MAX_VALUE) - 작업이 들어올 때 마다 스레드.. 2022. 11. 22.
728x90
728x90