본문 바로가기

분류 전체보기

(18)
[RabbitMQ] 메시지 브로커 시스템 이해하기 AI 분석 서버를 운영하게 되면 실시간으로 들어오는 요청을 처리해야 한다. 유저가 분석 요청을 하게 되면 서버는 데이터를 받아 처리하고 결과를 반환해야 한다. 그런데 분석 요청이 한두 건이 아니라 수백, 수천 건이 동시에 들어오게 된다면? 쉽게 예상할 수 있듯이 요청이 몰리면서 서버의 리소스가 한쪽에 치우친다거나, 특정 태스크가 오래 걸리면서 전체 요청의 지연으로 이어지게 된다거나 어쩌먼 특정 태스크의 분석이 실패하면 전체 작업이 중단되어 버릴 수 있다. 이때 문제를 해결하기 위한 도구가 바로 RabbitMQ다. 이번 글에서는 RabbitMQ가 무엇인지, 어떤 방식으로 구현이 되어 있는지에 대해 정리하고자 한다.글의 대부분은 각 컴포넌트에 대한 설명이 될 것이고, RabbitMQ를 사용하는 방법에 대해서..
모니터마다 색상이 다른 이유: ICC Profile과 Color Gamut '이 이미지는 전반적으로 색상이 왜 이렇게 진한 거예요? 제가 실제로 본 이미지는 이렇게 안 진했거든요.' 나의 지난 프로젝트에서 실제로 들었던 이와 같은 이야기는 디지털 색상 표현의 근본적인 문제를 보여준다. 실제로 여러 의류 판매 브랜드에서는 반품률이 오프라인의 경우보다 높은데, 색상이 일치하지 않는다는 것이 많은 비율을 차지하고 있다고 한다. 더 흥미로운 건, 요즘의 휴대폰 카메라가 포착할 수 있는 10억 개 이상의 색상 중 대부분의 모니터는 1,670만 색상만을 표현할 수 있다는 점이다. 물론 지금 표현할 수 있는 색상도 절대적으로 적은 것은 아니지만, 아날로그를 디지털화 하는 과정에서 발생하는 기술적 한계는 우리가 보는 디지털 이미지의 정확성에 근본적인 의문을 제기한다.  이번 글에서는 이러한..
Ubuntu에서 Docker container의 로그 관리하기 지난 몇 주동안 on-premise 환경을 구축하는 프로젝트를 진행했다.On-premise 환경에 배포하는 것은 단순히 환경을 구축하는 데에서 끝나지 않고, 이슈가 생길 때마다 그 원인을 파악하고 유지해야 할 필요도 있다. 그러다 보니, 로그를 오랜 기간 유지할 수 있어야 하기도 하고, 컨테이너가 멈추더라도 기존의 로그를 트래킹 할 수 있어야 하기도 한다. 그래서 이번엔 Docker container의 로그가 컨테이너의 상태와 무관하게 관리하는 방법에 대해 자세히 정리해보고자 한다.  Step 1. Docker Container 의 log driver 설정하기docker 에서 제공해주는 log driver 의 종류는 json-file, journald, syslog 와 같은 것들이 있다.결론부터 말해보자..
모르면 손해보는 git rebase (2) 지난 글에서 git rebase 를 interactive 하게 사용하면서 불필요한 커밋은 다른 커밋과 병합하거나 커밋 내용을 수정하는 방법에 대해 알아봤다. 리모트에 올라간 커밋을 수정하는 것은 사실 협업할 때 지양하는 일이지만 장기적으로 봤을 때 불필요하거나 알아보기 힘든 커밋 메시지를 수정하는 것은 가끔씩 필요하기도 하다. 그래서 가능하다면 하나의 브랜치 위에서 협업하기보다는 각자 하나의 브랜치 위에서 작업하는 방식을 추천한다. 이번 글에서는 여러 사람이 각자의 브랜치 위에서 작업할 때, git merge 대신에 git rebase 를 어떻게 쓸 수 있는지에 대해 이야기하려고 한다. 이번 글의 경우에는 자세한 케이스를 두고 설명하는 게 이해하기 좋을 것 같아서 한가지 상황을 가정하려고 한다. ✅ gi..
여러가지 cheatsheet cloud-init$ tail -f /var/log/cloud-init-output.log
모르면 손해보는 git rebase (1) 여러 사람이 한 프로젝트(레포지토리)에서 협업 할 때에는 브랜치 관리가 필수적이다. 다른 말로 표현하면 혼자 한 프로젝트를 전담한다면 git에서 브랜치 관리가 크게 중요하지 않다. 과거의 나는 대부분 혼자(혹은 두어명이) 하나의 레포를 전부 관리했었고, 그러다 보니 git의 다양한 커맨드를 사용할 일이 없었다. 그러다 보니 가끔 충돌이 발생할 때 문제를 해결하는 방법에 대해서도 민망할 정도로 무지한 편이었다. 그러다 최근에 git의 다양한 커맨드를 알게 되어 잘 사용하고 있는데, 사용할수록 그동안 모르고 살았던 시간이 아깝다는 생각이 들었고 (ㅋㅋㅋ) 많은 사람들이 git rebase 를 비롯한 다양한 기능을 편하게 사용하길 바라며 내용을 정리해보고자 한다. ✅ git rebase다른 사람과 협업하기 ..
2023 글또 백엔드/인프라 빌리지 반상회(백스페이스) 준비위 후기 1. 반상회 준비위가 되기까지 글또라는 커뮤니티에는 6기부터 참여하고 있었다. 6기만 해도, 코로나로 인한 제약이 많아서 오프라인으로 모이기가 어려웠다. 오프라인 행사는 나중을 기약하며 7기에도 참여하게 되었다. 전체 오프라인 행사인 글또콘을 통해 에너지를 많이 얻어가면서, 8기에는 내가 나누고 싶다는 생각을 하게 되었고, 그 생각은 곧 글또 8기 운영진 참여로 이어졌다. GitHub - geultto/geultto-conference: [글또 7기] 글또콘 컨퍼런스 자료를 모아두는 Repository [글또 7기] 글또콘 컨퍼런스 자료를 모아두는 Repository. Contribute to geultto/geultto-conference development by creating an account ..
월 500만명이 방문하는 서비스 속도 개선하기 (근데 이제 1000만까지 가능한) 제가 담당하고 있는 인포크링크라는 서비스는 최근 MAU가 1000만을 돌파했어요. 그런데 오늘은 MAU가 500만명 쯔음이었을 때에 발생한 문제에 대해 이야기해보려고 해요. 아래에 해당하시는 분들이 읽으시면 더 많은 것을 얻어가실 수 있어요. 이제 막 트래픽이 늘고 있는데 여기서 무엇을 개선하면 좋을지 모르겠는 분 곧 트래픽이 늘 것 같은데 무엇을 준비해두면 좋을지 고민하고 있는 분 이제 터질 때 쯤 된 것 같은데요? 라는 말을 종종 하던 때가 있었는데요. 그 전에 제가 운영하고 있는 인포크링크의 기능과 사용 예시에 대해 먼저 알려드려야 할 것 같아요. 유저는 한 페이지짜리 [방문자 페이지]에 보여질 컨텐츠를 입력한다. 유저는 [방문자 페이지]를 인스타그램 등의 프로필 영역에 링크를 등록한다. 유저가 인..