🪩/기타

도커(Docker), 메시지큐(Message Queue)

S0 2024. 3. 26. 21:50

 

 

최종 프로젝트를 준비하며 팀원들과 기술 스택에 대해 이틀동안 이야기를 나누고 있다.

낯선 기술이 많아서 먼저 기술을 알아가는 시간을 가지기로 했다.

각자 배우지 않았던 기술을 한두개씩 담당해서 30분동안 공부해온 뒤 서로에게 알려주는 방식으로 진행해봤다.

나의 담당 기술은 도커와 메시지큐였고, 이때 정리한 내용을 올리려고 하는데 30분동안 정말 감만 잡은!! 감도 100% 잡은게 아니고 어떤 상황에 어떤 기술과 연계가 되는지 정도만 아주 대략적으로!! 담긴 내용이기 때문에 정보성 글보다는 그냥 개인 기록정도로 보는 것이 맞을 것 같다.

 

 


도커

컨테이너 기반의 오픈소스 가상화 플랫폼

여기서 컨테이너는 항구에서 볼수있는 그 컨테이너를 떠올리면 이해가 쉬울 것 같음

 

  1. 프로그램, 실행환경을 컨테이너로 추상화
  2. 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순화

 

어떤 프로그램도 컨테이너로 추상화할 수 있고, 어떤 환경에서도 실행할 수 있다

 

이미지는 컨테이너를 실행하기 위해 필요한 파일, 설정값 등을 포함하고 있는 것

package.json 파일의 상위호환같은 건가?

 

새로운 서버가 추가됐다

-> 미리 작성된 이미지를 다운받고 컨테이너를 생성만 하면

 

 

메시지큐

먼저 메시지+큐에 대해 나눠서 생각해보기

출처 링크는 여기

큐는 이전 TIL에서 작성한 내용이 있어서 그 부분을 가져왔다.

 

메시지란?

애플리케이션에서 다른 애플리케이션을 이용할 수 있도록 생성하는 데이터를 말함

요청, 응답, 오류 메시지 혹은 단순한 정보 등의 작은 데이터를 의미

 

그럼 메시지큐는?

프로세스나 프로그램 간에 데이터를 교환할 때 쓰는 통신 방식

메시지 지향 미들웨어라고도 한다<<미들웨어!

 

요약하면 임시로 저장하는 간단한 버퍼

언젠가는 큐에 있는 메시지가 소비되어 처리될 수 있는 작업들을 대상으로 처리하는 것이 좋음
응답은 어느정도로 지연이 허용되더라도 핵심기능이 아닌 경우에 사용

예시로는 이메일 전송, 카카오톡 전송

 

메시지 큐는 "메시지", 즉 애플리케이션에서 다른 애플리케이션이 이용할 수 있도록 생성하는 데이터 패킷을

전송되는 순서대로 이용하는 애플리케이션에서 해당 메시지를 처리할 수 있는 상태가 될 때까지 저장한다

그러면 메시지는 수신 애플리케이션에서 준비될 때까지 대기하게 된다

즉, 네트워크나 수신 애플리케이션에 문제가 생기더라도 메시지 큐에 있는 메시지는 사라지지 않게 된다

대용량 트래픽을 다룰 때 수신 과정에서 문제가 생길 수 있는 부분에 대기공간을 보험처럼 한번 더 걸어두는 것이라고 이해

(결국 비동기)

 

 

큐에 메시지를 생산한다<핵심

'🪩 > 기타' 카테고리의 다른 글

최종프로젝트 오류  (0) 2024.04.05
[DB] RDBMS, SQL, NoSQL  (0) 2024.03.29
[NestJS] 기본 로직  (0) 2024.03.15
[NestJS] 컨트롤러, 핸들러, 서비스  (1) 2024.03.14
[Nest.js] Select 'Retry as Sudo' to retry as superuser. 에러  (1) 2024.03.07