물음을 이뤄보자

more

큐잉(Queuing)과 라우팅(Routing)

큐잉 (Queuing)메시지를 안전하게 저장하고, 소비자가 처리할 때까지 순서대로 보관·전달하는 것.포인트생산자(Producer)가 메시지를 브로커에 보냄 → 큐(Queue)에 쌓임소비자(Consumer)가 큐에서 메시지를 가져가 처리메시지는 소비자가 확인(200 ack)해야 큐에서 제거됨처리 실패 시 재전송 가능 (retry, dead-letter queue 활용)예시사용자가 주문 취소 요청 → 명령 메시지가 큐에 저장Command Service가 이 큐를 구독 → 순차적으로 처리 라우팅 (Routing)메시지를 어떤 큐에 보낼지 결정하는 규칙RabbitMQ에서 Exchange → Queue 바인딩 규칙을 기반으로 동작라우팅 유형Direct Routing : 라우팅 키 = 큐 키워드 일치 시 전달Fan..

CS 정리 2025.09.22 0

논동기와 비블로킹

익숙해서 당연하게 쓰는것도 돌아보면 뭔가 아이디어를 얻을 수 있지 않을까요?동기(Synchronous) & 비동기(Asynchronous) 블로킹(Blocking) & 논블로킹(Non-Blocking) 조합 조합 의미특징/활용블로킹-동기제어권 안 줌 + 결과 올 때까지 기다림가장 직관적. 파일 읽기, JDBC 쿼리, HTTP논블로킹-동기제어권은 바로 줌 + 하지만 결과 확인을 직접 계속 해야 함(polling)CPU 낭비가 있을 수 있음. NIO 소켓, IoT polling블로킹-비동기제어권 안 줌 + 결과는 나중에 콜백/알림으로 옴GUI 이벤트 루프, Future.get논블로킹-비동기제어권 즉시 반환 + 결과는 알림/콜백/Promise로 받음현대 시스템에서 가장 많이 쓰는 패턴, Node.js, Web..

CS 정리 2025.09.05 1

동기(Synchronous) & 비동기(Asynchronous)

"결과를 언제 받느냐"동기(Synchronous) 어떤 작업을 요청했을 때, 그 작업이 끝날 때까지 다음 작업이 시작되지 않고 순서대로 처리되는 방식. 앞의 결과가 나와야 뒤의 일이 진행됨. ex) 결제 버튼을 누르면, 결제가 끝날 때까지 화면이 멈춰 있고 다른 메뉴를 누를 수 없는 경우 비동기(Asynchronous) 작업을 요청하면 결과가 끝날 때까지 기다리지 않고 즉시 다른 작업을 처리할 수 있는 방식. 결과는 나중에 알림(콜백, 이벤트 등)으로 전달됨. ex) 결제 버튼을 누르면, 결제가 끝날 때까지 기다리지 않고 바로 다른 메뉴를 볼 수 있는 경우.카페에서 커피 주문 후, 커피가 나올 때까지 카운터 앞에서 서서 기다리는 것. (=동기)커피 주문 후, 진동벨을 받고 자리에 앉아 다른 일을 하다가 ..

CS 정리 2025.09.03 0

블로킹(Blocking) & 논블로킹(Non-Blocking)

"호출 시 제어권을 넘겨주냐 마냐" 블로킹(Non-Blocking)어떤 작업을 요청했을 때, 그 작업이 끝날 때까지 프로그램이 멈추고 기다리는 방식. 대기 중 다른 작업 불가ex) 파일 읽기 요청을 했을 때, 데이터가 다 읽힐 때까지 CPU가 기다림. 논블로킹(Non-Blocking)작업을 요청하면 즉시 제어권을 반환하고 다른 일을 할 수 있는 방식, 결과는 나중에 확인하거나 이벤트/콜백으로 발생ex) 파일 읽기 요청을 해두고, 데이터가 준비되면 알림(콜백, 이벤트 루프)으로 결과를 받음. 카페에서 커피 주문 후, 커피가 나올 때까지 카운터 앞에서 서서 기다리는 것. (=블로킹)커피 주문 후, 진동벨을 받고 자리에 앉아 다른 일을 하다가 커피가 준비되면 벨이 울려 찾으러 가는 것. (=논블로킹) 비교구분..

CS 정리 2025.09.02 0

Feign 사용해보기

(발음은 페인)Feign은 Java에서 HTTP 클라이언트를 선언형(Declarative)으로 작성할 수 있게 해주는 라이브러리주로 Spring Cloud에서 Spring Cloud OpenFeign 형태로 사용REST API 호출을 인터페이스로 선언하면, 런타임 시 구현체를 자동 생성API 호출 시 HTTP 요청 생성, 전송, 응답 파싱 과정을 프록시 객체가 대신 처리java 8 이상, spring cloud와 연계하기 위해선 java 17이상기존 미사용 코드 환경 content(XML)을 만들어 전송해야 함sign = base64(MD5(content + keyValue))를 전송 직전에 생성공통 파라미터: sign_type=MD5¬ify_type=ORDER_CREATE&input_charset..

CS 정리 2025.08.11 1