인기 글
-
Backend
[RabbitMQ] 메시지 속성 뜯어보기
지난 글에서는 메시지를 발행하는 과정을 따라가면서 프레임의 단위에 대해 알아 보았다.이번 글에서는 메시지를 발행할 때 전송하는 프레임 중 콘텐츠 헤더 프레임에는 어떤 속성이 있는지 알아보고 각 속성 별로 사용 방법에 대해 소개하려고 한다. ✅ Header frame 속성, 한 눈에 보기Header frame 에 포함된 속성은 위 그림처럼 14개의 속성을 포함하고 있다. 지난 글에서 알게된 delivery_mode의 경우, 1로 설정하면 메시지를 디스크에 저장하는 것처럼 AMQP 스펙에서 정의한 의미를 가지는 속성도 있는 한편, 정확한 스펙이 없는 속성도 있다. 그럼 위의 속성 별로 어떤 특징을 가지는지 알아보자. ✔️ content_encodingAMQP를 통해 전달하는 메시지는 기본적으로 압축되지 ..
- Backend authentication & authorization 인증(authentication)과 인가(authorization)은 보안 시스템에서 가장 기본적인 요소로 종종 혼용되는 경우가 있다.밀접하게 관련이 되어 있기 때문이지만 엄밀히는 목적이나 역할이 다르기 때문에 명확하게 이해할 필요가 있다.이번 글에서는 이 두가지 개념에 대해 정리하려고 한다. ✅ authentication인증은 사용자가 스스로 주장하는 신원이 맞는지를 확인하는 절차이다.이 단계의 주요 목표는 신뢰할 수 있는 방법으로 사용자 정보를 확인하는 것이다. 이를 위해 다양한 방법이 사용되는데, 대표적인 방식을 알아보자. 지식 기반 인증사용자가 알고 있는 정보를 이용해 인증하는 방식 (아이디 및 비밀번호 등을 활용)쉽게 접근이 가능하기 때문에 비밀번호가 유출되는 경우 누구나 접근 가능 소유 기반 ..
-
Backend
[RabbitMQ] AMQP 통신 과정 속 프레임 구조 이해하기
이번 글에서는 지난 글에 이어서 메시지를 발행하는 과정을 따라가면서 저수준에서의 구현 방식을 이해해보고자 한다. ✅ AMQP의 RPC 프레임 구조 이해하기AMQP 스펙에는 클래스와 각 클래스 별 메소드가 정의되어 있다.통신을 위해 Connection이 필요하니 Connection을 맺는 것부터 클래스 / 메소드로 알아보면서 그 과정을 따라가보자. 클라이언트에서는 연결을 맺을 수 있는지에 대한 데이터 덩어리를 보낸다. 여기서 말하는 데이터 덩어리를 앞으로 프레임이라고 부를 것이다. 여기서 보내진 프레임은 하나의 요청으로 간주할 수 없고, 다른 통신과 다르게 명령의 성격을 가지지 않는다.여기서 전송되는 데이터 덩어리라는 프레임을 자세히 뜯어보자. 1. 프로토콜 헤더 프레임 첫번째 자리에 있는 1은 프레임의 ..
-
Backend
[RabbitMQ] RabbitMQ란
AI 분석 서버를 운영하게 되면 실시간으로 들어오는 요청을 처리해야 한다. 유저가 분석 요청을 하게 되면 서버는 데이터를 받아 처리하고 결과를 반환해야 한다. 그런데 분석 요청이 한두 건이 아니라 수백, 수천 건이 동시에 들어오게 된다면? 쉽게 예상할 수 있듯이 요청이 몰리면서 서버의 리소스가 한쪽에 치우친다거나, 특정 태스크가 오래 걸리면서 전체 요청의 지연으로 이어지게 된다거나 어쩌먼 특정 태스크의 분석이 실패하면 전체 작업이 중단되어 버릴 수 있다. 이때 문제를 해결하기 위한 도구가 바로 RabbitMQ다. 이번 글에서는 RabbitMQ가 무엇인지, 어떤 방식으로 구현이 되어 있는지에 대해 정리하고자 한다.글의 대부분은 각 컴포넌트에 대한 설명이 될 것이고, RabbitMQ를 사용하는 방법에 대해서..
-
개발
모니터마다 색상이 다른 이유: ICC Profile과 Color Gamut
'이 이미지는 전반적으로 색상이 왜 이렇게 진한 거예요? 제가 실제로 본 이미지는 이렇게 안 진했거든요.' 나의 지난 프로젝트에서 실제로 들었던 이와 같은 이야기는 디지털 색상 표현의 근본적인 문제를 보여준다. 실제로 여러 의류 판매 브랜드에서는 반품률이 오프라인의 경우보다 높은데, 색상이 일치하지 않는다는 것이 많은 비율을 차지하고 있다고 한다. 더 흥미로운 건, 요즘의 휴대폰 카메라가 포착할 수 있는 10억 개 이상의 색상 중 대부분의 모니터는 1,670만 색상만을 표현할 수 있다는 점이다. 물론 지금 표현할 수 있는 색상도 절대적으로 적은 것은 아니지만, 아날로그를 디지털화 하는 과정에서 발생하는 기술적 한계는 우리가 보는 디지털 이미지의 정확성에 근본적인 의문을 제기한다. 이번 글에서는 이러한..
최신 글
-
Backend [RabbitMQ] 메시지 속성 뜯어보기 지난 글에서는 메시지를 발행하는 과정을 따라가면서 프레임의 단위에 대해 알아 보았다.이번 글에서는 메시지를 발행할 때 전송하는 프레임 중 콘텐츠 헤더 프레임에는 어떤 속성이 있는지 알아보고 각 속성 별로 사용 방법에 대해 소개하려고 한다. ✅ Header frame 속성, 한 눈에 보기Header frame 에 포함된 속성은 위 그림처럼 14개의 속성을 포함하고 있다. 지난 글에서 알게된 delivery_mode의 경우, 1로 설정하면 메시지를 디스크에 저장하는 것처럼 AMQP 스펙에서 정의한 의미를 가지는 속성도 있는 한편, 정확한 스펙이 없는 속성도 있다. 그럼 위의 속성 별로 어떤 특징을 가지는지 알아보자. ✔️ content_encodingAMQP를 통해 전달하는 메시지는 기본적으로 압축되지 ..
-
Backend authentication & authorization 인증(authentication)과 인가(authorization)은 보안 시스템에서 가장 기본적인 요소로 종종 혼용되는 경우가 있다.밀접하게 관련이 되어 있기 때문이지만 엄밀히는 목적이나 역할이 다르기 때문에 명확하게 이해할 필요가 있다.이번 글에서는 이 두가지 개념에 대해 정리하려고 한다. ✅ authentication인증은 사용자가 스스로 주장하는 신원이 맞는지를 확인하는 절차이다.이 단계의 주요 목표는 신뢰할 수 있는 방법으로 사용자 정보를 확인하는 것이다. 이를 위해 다양한 방법이 사용되는데, 대표적인 방식을 알아보자. 지식 기반 인증사용자가 알고 있는 정보를 이용해 인증하는 방식 (아이디 및 비밀번호 등을 활용)쉽게 접근이 가능하기 때문에 비밀번호가 유출되는 경우 누구나 접근 가능 소유 기반 .. -
Backend [RabbitMQ] AMQP 통신 과정 속 프레임 구조 이해하기 이번 글에서는 지난 글에 이어서 메시지를 발행하는 과정을 따라가면서 저수준에서의 구현 방식을 이해해보고자 한다. ✅ AMQP의 RPC 프레임 구조 이해하기AMQP 스펙에는 클래스와 각 클래스 별 메소드가 정의되어 있다.통신을 위해 Connection이 필요하니 Connection을 맺는 것부터 클래스 / 메소드로 알아보면서 그 과정을 따라가보자. 클라이언트에서는 연결을 맺을 수 있는지에 대한 데이터 덩어리를 보낸다. 여기서 말하는 데이터 덩어리를 앞으로 프레임이라고 부를 것이다. 여기서 보내진 프레임은 하나의 요청으로 간주할 수 없고, 다른 통신과 다르게 명령의 성격을 가지지 않는다.여기서 전송되는 데이터 덩어리라는 프레임을 자세히 뜯어보자. 1. 프로토콜 헤더 프레임 첫번째 자리에 있는 1은 프레임의 ..