인기 글
-
개발
모니터마다 색상이 다른 이유: ICC Profile과 Color Gamut
'이 이미지는 전반적으로 색상이 왜 이렇게 진한 거예요? 제가 실제로 본 이미지는 이렇게 안 진했거든요.' 나의 지난 프로젝트에서 실제로 들었던 이와 같은 이야기는 디지털 색상 표현의 근본적인 문제를 보여준다. 실제로 여러 의류 판매 브랜드에서는 반품률이 오프라인의 경우보다 높은데, 색상이 일치하지 않는다는 것이 많은 비율을 차지하고 있다고 한다. 더 흥미로운 건, 요즘의 휴대폰 카메라가 포착할 수 있는 10억 개 이상의 색상 중 대부분의 모니터는 1,670만 색상만을 표현할 수 있다는 점이다. 물론 지금 표현할 수 있는 색상도 절대적으로 적은 것은 아니지만, 아날로그를 디지털화 하는 과정에서 발생하는 기술적 한계는 우리가 보는 디지털 이미지의 정확성에 근본적인 의문을 제기한다. 이번 글에서는 이러한..
-
Backend
[RabbitMQ] 메시지 속성 뜯어보기
지난 글에서는 메시지를 발행하는 과정을 따라가면서 프레임의 단위에 대해 알아 보았다.이번 글에서는 메시지를 발행할 때 전송하는 프레임 중 콘텐츠 헤더 프레임에는 어떤 속성이 있는지 알아보고 각 속성 별로 사용 방법에 대해 소개하려고 한다. ✅ Header frame 속성, 한 눈에 보기Header frame 에 포함된 속성은 위 그림처럼 14개의 속성을 포함하고 있다. 지난 글에서 알게된 delivery_mode의 경우, 1로 설정하면 메시지를 디스크에 저장하는 것처럼 AMQP 스펙에서 정의한 의미를 가지는 속성도 있는 한편, 정확한 스펙이 없는 속성도 있다. 그럼 위의 속성 별로 어떤 특징을 가지는지 알아보자. ✔️ content_encodingAMQP를 통해 전달하는 메시지는 기본적으로 압축되지 ..
-
기타 프로젝트
월 500만명이 방문하는 서비스 속도 개선하기 (근데 이제 1000만까지 가능한)
제가 담당하고 있는 인포크링크라는 서비스는 최근 MAU가 1000만을 돌파했어요. 그런데 오늘은 MAU가 500만명 쯔음이었을 때에 발생한 문제에 대해 이야기해보려고 해요. 아래에 해당하시는 분들이 읽으시면 더 많은 것을 얻어가실 수 있어요. 이제 막 트래픽이 늘고 있는데 여기서 무엇을 개선하면 좋을지 모르겠는 분 곧 트래픽이 늘 것 같은데 무엇을 준비해두면 좋을지 고민하고 있는 분 이제 터질 때 쯤 된 것 같은데요? 라는 말을 종종 하던 때가 있었는데요. 그 전에 제가 운영하고 있는 인포크링크의 기능과 사용 예시에 대해 먼저 알려드려야 할 것 같아요. 유저는 한 페이지짜리 [방문자 페이지]에 보여질 컨텐츠를 입력한다. 유저는 [방문자 페이지]를 인스타그램 등의 프로필 영역에 링크를 등록한다. 유저가 인..
최신 글
-
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은 프레임의 ..