본문 바로가기

전체 글

[MQTT] mosquitto 사용 1. 구독 mosquitto_sub -h {브로커IP} -p {port} -t {TOPIC} -h: MQTT 브로커의 호스트 지정. 브로커가 로컬에 있는 경우 localhost를 사용 -p: MQTT 브로커의 포트 지정. 기본 MQTT 포트는 1883이라 생략 가능하며, 만약 브로커가 다른 포트에서 동작 중이면 해당 포트를 사용하도록 지정 필요 -t: 구독할 토픽을 지정. 토픽에 대한 메시지를 수신하겠다는 의미. 2. 발행 mosquitto_pub -h localhost -t {TOPIC} -m "{message}" -m: MQTT 브로커에게 발행할 메시지 test 토픽 구독자에게 메시지가 오는 것을 확인 할 수 있음 더보기
[MQTT] mosquitto(모스키토) 사용자 등록/추가/삭제 1. 사용자 등록 1) 사용자/암호가 들어갈 파일 생성 mosquitto_passwd -c {파일명} {사용자이름(id)} 비밀번호를 입력하면 내가 입력한 암호가 암호화 되어 저장됨 생성된 파일 확인 2) mosquitto.conf 파일에 사용자 계정 추가 # mosquitto.conf password_file /etc/mosquitto/passwd 2. 사용자 추가 mosquitto_passwd -b {파일명} {사용자이름(id)} {비밀번호} 3. 사용자 삭제 mosquitto_passwd -D {파일명} {사용자이름(id)} 사용자 추가하면 발생하는 경고 관련 Warning: File passwd group is not staff. Future versions will refuse to load t.. 더보기
[MQTT] mosquitto(모스키토) 설치 및 실행 / m2 , 홈브루(homebrew) 1. 설치 brew install mosquitto 설치가 완료되면 아래와 같이 설명이 출력됨 /opt/homebrew/etc/mosquitto/mosquitto.conf 를 편집하여 configuration을 수정할 수 있음 sudo nano /opt/homebrew/etc/mosquitto/mosquitto.conf 2. 실행 서비스가 실행중이지 않을 경우 실행 됨, 실행중이라면 아무 변화 없음 brew services start mosquitto 백그라운드 서비스를 원하지 않으면 아래와 같이 실행 /opt/homebrew/opt/mosquitto/sbin/mosquitto -c /opt/homebrew/etc/mosquitto/mosquitto.conf 3. 중지 brew services stop .. 더보기
[Springboot] 스프링부트에서 로그(log) 설정/관리하기 - Logback 1. 로깅을 하는 이유 앱 개발 시 운영 중 발생하는 문제점을 모니터링 하거나 추적하는데 용이하고, 데이터를 분석해 통계를 낼 수 있음 2. 로깅을 위한 도구 SLF4J는 로깅에 대한 퍼사드(인터페이스) 역할을 하며 실제 로깅을 위한 구현체로는 Log4j, Logback이 있음 1) SLF4J(Simple Logging Facade for Java) 인터페이스 로깅에 관한 간단한 퍼사드(인터페이스)를 제공 실제로 로깅을 수행하는 것이 아닌 추상화 제공 코드에서 SLF4J 인터페이스를 사용하고 실행환경에서 로깅 라이브러리를 선택할 수 있도록 함 2) Log4j 구현체 가장 오래된 프레임워크이며 Apache 의 Java 기반 Logging Framework Log4j 1 버전은 자체 인터페이스 제공, Log.. 더보기
Azure VM 에 스프링부트 서버 올리기 1. Azure에 인바운드 포트 규칙 만들기 1) 좌측 메뉴 네트워킹 - 네트워크 설정 + 포트 규칙 만들기 -> 인바운드 포트 규칙 2) 인바운드 보안 규칙 추가 내용 작성 3) 인바운드 포트 규칙 추가 된 것을 확인할 수 있음 2. .jar파일로 빌드하기 1) 인텔리제이 우측 gradle 아이콘 클릭 -> Tasks -> build -> bootJar 더블 클릭 2) 빌드가 되면 우측 프로젝트 구조에서 build -> libs -> 빌드된 .jar 파일 확인 3) 빌드된 파일을 깃에 push 하기 3. VM 에서 서버 돌리기 1) 터미널 ssh 접속 2) 깃 클론해서 파일 받음 git clone {레포지토리 url} url로 깃 클론 받았었는데 ssh로 받을 수 있는 탭이 있는걸 나중에 봄.. 나중에.. 더보기
[Java] LinkedBlockingQueue 클래스 1. 정의 An optionally-bounded blocking queue based on linked nodes. This queue orders elements FIFO (first-in-first-out). The head of the queue is that element that has been on the queue the longest time. The tail of the queue is that element that has been on the queue the shortest time. New elements are inserted at the tail of the queue, and the queue retrieval operations obtain elements at the h.. 더보기
api 동시 요청 수 제한하는 방법 스프링부트에 내장되어 있는 서블릿 컨테이너인 톰캣이 다중요청을 처리해줌 톰캣은 다중 요청을 처리하기 위해 부팅 시 스레드 컬렉션인 스레드풀을 생성함 유저 요청이 들어오면 스레드 풀에서 하니씩 스레드를 할당 해당 스레드에서 부트에서 작성한 디스패처서블릿을 거쳐 유저 요청을 처리함 작업을 수행하고 나면 스레드는 스레드 풀로 반환 됨 스프링부트에서는 서블릿 컨테이너인 내장 톰캣에서 웹 애플리케이션을 실행하면서 여러 api 요청을 처리할 때 기본적으로 api 요청이 들어올 때마다 새로운 스레드를 생성하여 다중 스레드를 사용하여 병렬적으로 요청을 처리함 내부적으로 스레드 풀을 사용하여 효율적으로 스레드를 관리함 각각의 스레드는 독립적으로 해당 요청을 처리하므로 여러 요청이 동시에 처리될 수 있음 -> api 요청.. 더보기
[Spring] WebClient와 RestTemplate WebClient: 리액티브 프로그래밍: WebClient은 리액티브 프로그래밍 원칙에 따라 설계되었으며, Spring WebFlux 모듈의 일부입니다. 비동기 및 리액티브 스트림을 지원합니다. 비동기 작업: WebClient은 비동기 작업을 수행할 수 있어, 대규모 동시 요청을 효율적으로 처리할 수 있습니다. 플루언트 API: WebClient은 요청을 생성하는 데 사용되는 플루언트 API를 제공하여 간결하고 표현력있게 코드를 작성할 수 있습니다. 엑스체인지 메서드: RestTemplate과 마찬가지로 WebClient도 exchange 메서드를 제공하여 다양한 HTTP 메서드를 지원합니다. RestTemplate: 전통적인 방식: RestTemplate은 전통적인 방식으로 동기적으로 동작하며, Spr.. 더보기