Home
Afdddd.Blog
Cancel

Rabbitmq로 mqtt 메시지 수신하기

진행중인 프로젝트에서 RabbitMQ를 사용해서 MQTT 프로토콜을 통해 데이터를 받을 일이 있어 정리한다. 들어가기전에 RabbitMQ와 MQTT에 대해 간단하게 정리하고 가겠다. RabbitMQ란? 메시지 브로커(Message Broker)로, 서로 다른 애플리케이션 간에 데이터를 주고받을 수 있도록 중개 역할을 하는 소프트웨어이...

[algorithm] dfs(깊이 우선 탐색)

깊이 우선 탐색(Depth-First-Search)은 그래프 완전 탐색 기법 중 하나이다. 깊이 우선 탐색은 한 경로를 가능한 깊이까지 탐색한 후, 더 이상 갈 곳이 없으면 다시 돌아가면서 다른 경로를 탐색하는 방식이다. 재귀함수와 스택 자료구조를 이용해서 구현 할 수 있다. 시간 복잡도는 밑에와 같다. [O(V+E)] V : 노드 수 , E :...

[commercecore] 부하테스트 (1) 대용량 데이터 준비

서버의 부하 테스트를 위해 대용량 데이터가 필요하다. python을 사용해서 대용량의 데이터가 담긴 csv파일을 만들고 csv 파일을 mysql의 LOAD DATA INFILE 명령어를 사용해 Insert 하도록 하겠다. csv 파일 생성 우선 임의의 데이터를 만들기 위해 python을 사용해 스크립트를 만들자 python의 faker ...

[java] 라이브 코딩 테스트 풀이

문제 public class Subscriber { void send(String message) { //.... } } public class NotificationService { void publish(String topic, String message) { } void subscribe(String topic, Subs...

[test] 동시성 테스트에 관하여

서론 이커머스 프로젝트에서 주문 시 재고를 감소시키는 메서드를 구현했다. 재고는 들어오는 요청들에 따라 정확하게 값을 변경시켜야하기 때문에 동시성 문제에 주의해야한다. 만약 동시성 문제가 발생하면, 클라이언트가 실제로 존재하지 않는 재고에 대해 결제를 하게 되는 문제가 발생할 수 있다. 밑에는 재고를 감소 시키는 메서드다. public...

[jpa] n+1 문제 해결

이전에 프로젝트를 진행하면서 발생했던 문제를 정리하기 위해 작성한다. 팀 프로젝트에서 QnA 게시판을 맡아서 개발하게되었다. QnA 게시판은 게시글을 작성할 때 해시태그를 함께 작성 할 수있고 게시글에 댓글을 작성할 수 있다. 각각의 테이블의 관계를 살펴보면 하나의 게시글은 여러개의 댓글을 가질 수 있어 1:N 관계를 가진다. Questi...

[java] try with resource

면접에서 “try-with-resource에대해 설명해주세요” 라는 질문을 받은적이 있다. 당시에는 try-with-resource에 대해 이름만 들어봤지 어떻게 사용하는건지 몰랐기에 대답을 못했었다. 그래서 정리해본다. try with resource? 한줄로 설명하면 try에 선언된 객체의 자원을 자동으로 반납해주는 기능 이다...

[algorithm] hash

Hash Hash란 (Key + Value)를 한쌍으로 하고 데이터를 효율적으로 저장하고 빠르게 찾기위한 자료구조이다. 일반 배열과 Hash의 차이를 알아보고 HashMap의 원리에 대해 설명하겠다. 배열에서 데이터 찾기 일반 배열에서 데이터를 찾기 위해선 선형 구조로 모든 배열의 값을 조회해서 해당 값을 찾는 구조이다. ❓선형 구조...

[jpa] jpa란

JPA 배경 SQL 중심적인 개발의 문제점 public Member findById(String memberId) throws SQLException { String sql = "select * from member where member_id = ?"; Connection con = null; ...

[spring] 스프링빈 생명주기 콜백

콜백이란? 우선 콜백이란 프로그래밍에서 콜백(callback) 또는 콜백 함수(callback function)는 다른 코드의 인수로서 넘겨주는 실행 가능한 파일 말한다. 콜백을 넘겨받는 코드는 이 콜백을 필요에 따라 즉시 실행할 수도 있고, 아니면 나중에 실행할 수도 있다.(위키백과) 즉 조건에 따라 즉시 실행시키거나 실행...