linux

19 개의 포스트

meta

오픈 소스 커널 스케줄러를 활용한 Meta 광고 서비스 현대화 (새 탭에서 열림)

Meta는 광고 서버의 워크로드 특성을 반영한 `sched_ext` 기반 커스텀 스케줄러를 도입해 광고 검색 경로의 p99 지연을 28% 줄이고, 전력 3.28MW를 절감했으며, 순위 매긴 광고 수를 1.1% 늘렸다. 일반 목적 스케줄러 대신 요청의 중요도와 실행 경로를 이해하는 스케줄링 정책을 적용한 결과다. 이후 사용자 공간 BPF 정책만 수정해 p99 지연을 추가로 60% 줄이고 타임아웃 오류도 18% 감소시켰다. ## 광고 서비스에서 지연 시간이 중요한 이유 - Meta의 광고 플랫폼은 초당 평균 500만 건 이상의 요청을 처리하며, 하루 기준 4,000억 건이 넘는다. - p99 지연 시간이 몇 밀리초만 늘어나도 광고의 관련성과 광고주 ROI가 악화될 수 있다. - 기존 Linux 스케줄러인 CFS와 EEVDF는 범용 목적이라 각 스레드의 업무 중요도나 광고 요청 처리 경로를 알지 못한다. - 광고 서비스에서는 어떤 스레드가 사용자 요청의 핵심 경로에 있는지 알고 있으므로, 이를 스케줄러에 직접 반영할 여지가 있었다. ## EEVDF 전환으로 발생한 문제 - Linux 6.6부터 도입된 EEVDF가 최신 커널 6.9에서 광고 서버의 지연 시간을 악화시켰다. - 그 결과 응답에서 검색·순위 지정되는 광고 수가 줄어들었다. - 일부 광고 서버는 성능 회귀를 피하기 위해 Linux 6.4와 CFS에 계속 남아야 했고, 커널 버전이 혼재하는 운영 부담과 기술 부채가 발생했다. - 이미 Meta 내 여러 서비스에서 성능 개선 효과를 보인 `sched_ext`가 이 문제의 해결책으로 선택됐다. ## BPF 기반 `sched_ext`의 구조 - `sched_ext`는 BPF 프로그램으로 스케줄링 정책을 구현할 수 있는 Linux의 확장 가능한 프레임워크다. - Linux 6.12에 공식적으로 포함됐으며, Google의 ghOSt 설계 경험을 바탕으로 업스트림 통합을 고려해 개발됐다. - 커널은 다음과 같은 이벤트가 발생할 때 BPF 스케줄러를 호출한다. - 스레드가 실행 가능 상태가 될 때 CPU 선택 - 실행 큐에 스레드를 넣을 때 - CPU가 유휴 상태가 되어 다음 스레드를 선택할 때 - CPU가 유휴 상태에 진입하거나 빠져나올 때 - 광고 워크로드가 실행되는 호스트에만 광고 최적화 정책을 적용할 수 있다. ## 광고 요청에 맞춘 CPU 분할과 지역성 개선 - CPU를 두 개의 논리적 풀로 나눈다. - 지연 시간에 민감한 광고 요청 처리 스레드용 - 상대적으로 덜 중요한 백그라운드·비핵심 작업용 - 어떤 스레드를 어느 풀에 배치할지는 광고 도메인 지식에 따라 결정한다. - 부하 기반 휴리스틱으로 각 CPU 풀의 크기를 동적으로 조절한다. - 관련 작업을 장기간 같은 CPU에 배치해 L3 캐시 지역성을 높이고 DRAM 접근 비용을 줄인다. - 정책은 사용자 공간 바이너리가 BPF 프로그램을 로드하는 형태로 배포된다. - 정책을 변경할 때 커널을 다시 빌드하거나 설치할 필요 없이 스케줄러 프로세스를 재시작하면 되므로 실험과 배포가 빠르다. ## 성능과 운영 효과 Linux 6.4의 CFS에서 Linux 6.9와 `sched_ext`로 전환한 초기 도입 결과는 다음과 같다. - 광고 검색 경로의 서비스 p99 지연 28% 감소 - 전체 서버 플릿에서 전력 3.28MW 절감 - 가중 광고 순위 지표 1.1% 증가 - 사용자 공간 정책을 두 차례 추가 개선한 뒤: - 서비스 p99 지연이 추가로 60% 감소 - 핵심 경로의 타임아웃 오류 18% 감소 커널 변경이 필요하지 않았기 때문에 후속 개선은 수개월이 아닌 며칠 단위로 배포할 수 있었다. ## 장기적인 전략 자산으로의 확장 - 업스트림 Linux 스케줄러의 변화와 별개로, Meta가 자체 워크로드에 맞는 정책을 병렬적으로 개선할 수 있다. - 커널 패치와 장기간의 검증이 필요했던 기능도 사용자 공간 BPF 업데이트로 빠르게 실험할 수 있다. - 예시로 로컬 캐시 인식 배치, ROI 기반 실행기 라우팅, NUMA 인식 CPU 선택 등을 적용할 수 있다. - `sched_ext`가 Linux에 업스트림되면서 클라우드 사업자, 대규모 서비스 운영자, 임베디드 시스템 등도 커널을 포크하지 않고 특화된 스케줄링 정책을 구현할 수 있게 됐다. ## 향후 방향 - 광고 서비스가 요청의 상대적 중요도 같은 애플리케이션 수준의 정보를 스케줄러에 전달할 수 있다. - 스케줄러는 중요 요청을 처리하는 스레드에 더 긴 실행 시간을 주거나, 실행 큐의 최상단에 유지하는 방식으로 대응할 수 있다. - 이를 통해 단순한 CPU 부하 균형을 넘어, 비즈니스 가치와 요청 우선순위를 반영한 스케줄링이 가능해진다. 워크로드별 우선순위와 실행 특성을 명확히 알고 있는 대규모 서비스라면, 범용 스케줄러만 고집하기보다 `sched_ext` 같은 확장 프레임워크로 지연 시간·전력·처리량을 함께 최적화하는 방안을 검토할 만하다.

discord

Discord 패치 노트: 2026년 7월 7일 (새 탭에서 열림)

Discord의 2026년 7월 7일 패치 노트는 앱 성능·연결 속도 개선과 플랫폼별 버그 수정을 다룬다. iOS의 React Native Fabric 전환으로 앱 초기화 시간이 약 20% 단축됐고, 세션 연결 p95/p99 시간도 약 100ms 줄었다. 또한 메시지 전달 시 `@silent` 사용, 모든 서버에서 채널 고정 지원 등 사용성 기능이 확대됐다. ## 앱 성능과 안정성 개선 - iOS를 React Native의 New Architecture인 **Fabric**으로 이전했다. - 일반적인 앱 초기화 시간이 약 20% 개선됐다. - 향후 Android와 iOS의 성능·신뢰성 개선 프로젝트를 확장할 기반을 마련했다. - 세션 시작 로직의 설정값을 변경해 세션 연결 시간의 p95/p99를 약 100ms 단축했다. - Linux에서 NVIDIA GPU 사용 시 X11 연결이 점진적으로 누수되던 문제를 수정했다. - 장시간 실행 후 새 애플리케이션을 열 수 없게 되는 현상을 방지한다. - Windows에서 Discord가 시작 프로그램으로 자동 실행될 때 게임 창의 포커스를 빼앗던 문제를 수정했다. - 이제 백그라운드에서 조용히 실행된다. - 빠르게 두 번 새로 고친 뒤 데스크톱 클라이언트에서 마우스 클릭이 작동하지 않던 문제를 해결했다. ## 메시지 전달과 채널 사용성 - 메시지 전달 기능에서 `@silent`를 지원한다. - 새벽에 DM으로 메시지를 전달할 때 상대방에게 알림을 보내지 않을 수 있다. - 기존에는 Community 서버에서만 제공되던 **채널 고정(Channel Pinning)** 기능을 모든 서버로 확대했다. - 사용자가 자주 쓰는 채널을 개인적으로 채널 목록 상단에 배치할 수 있다. - Linux에서 GIF와 동영상이 반복 재생되지 않던 문제를 수정했다. - 반복 재생 처리가 운영체제별로 제대로 동작하도록 개선됐다. ## 데스크톱 인터페이스 및 프로필 수정 - 프로필 모달의 우측 상단 모서리와 배너 이미지가 어긋나던 문제를 해결했다. - 긴 검색어 입력 시 검색 드롭다운의 “결과 없음” 문구가 컨테이너 밖으로 넘치지 않도록 수정했다. - 작은 창에서 로그인 화면에 불필요한 스크롤바가 나타나고 로그인 박스가 중앙에서 벗어나던 문제를 고쳤다. - 프로필의 사용자 지정 상태 hover 표시가 사각형으로 보이거나 잘못 정렬되던 문제를 수정했다. - 최근 아바타 목록에서 일부 GIF 아바타가 깨져 다시 선택할 수 없던 문제를 해결했다. - 프로필 편집 중 “위젯 추가”를 눌러도 저장하지 않은 변경 사항이 사라지지 않도록 했다. - 사용자 지정 상태의 “24시간 후 삭제” 설정이 자정에 조기 만료되던 문제를 수정했다. - 일반 텍스트 입력창에서도 맞춤법이 틀린 단어를 우클릭하면 맞춤법 제안이 표시되도록 했다. - 검색 필터의 “이후(After)” 날짜가 필터 창을 다시 열 때마다 하루씩 앞당겨지거나 늦춰지던 문제를 해결했다. - 서버 프로필에서 기본 프로필로 전환할 때 tenure 배지 안내창이 잘못 표시되던 문제를 수정했다. - 다른 모달이 열린 상태에서 단축키로 Inbox를 열면 클라이언트가 잠기던 문제를 해결했다. - 배지 허브에서 Nitro나 Shop으로 이동할 때 기존 프로필 모달이 뒤에 남아 있던 문제를 수정했다. - 자신의 위시리스트에서 Nitro를 자신에게 선물할 수 있던 잘못된 흐름을 수정했다. - 이제 Nitro 구독 모달이 열린다. ## 모바일 앱 개선 - Android Nitro 탭에서 일부 기본 테마를 사용할 때 캐러셀 페이지 표시기가 보이지 않던 문제를 해결했다. - iOS 채널 목록을 스크롤할 때 화면이 흔들리거나 위치가 튀던 현상을 수정했다. - Android와 iOS에서 잘못된 `has:` 검색 필터 값이 유효한 필터로 처리되던 문제를 고쳤다. - iOS의 선물 수신자 선택 화면에 불필요한 색상 사각형이 표시되던 문제를 해결했다. - Android에서 닫을 수 없던 서버 애플리케이션 알림을 바깥 영역 터치나 뒤로 가기 버튼으로 닫을 수 있게 했다. - iOS에서 변경 중인 표시 이름 스타일이 전체 화면 프로필 미리보기에 반영되지 않던 문제를 수정했다. - iOS의 이벤트 카드와 Live 채널 알림에서 위치 텍스트가 카드 밖으로 넘치지 않도록 잘라서 표시한다. - 이미 가입한 서버의 초대 링크를 열 때 불필요한 Server Tag Adoption 절차로 이동하던 문제를 해결했다. - iPad 브라우저에서 서버 초대 링크를 열면 Discord는 실행되지만 초대 화면이 표시되지 않던 문제를 수정했다. - Android 프로필 사진 편집기에서 특정 테마를 사용할 때 “확대/축소”와 “회전” 텍스트 및 슬라이더가 보이지 않던 문제를 해결했다. - iOS 프로필 탭 전환 중 스크롤하면 콘텐츠가 잘리던 문제를 수정했다. - Android에서 친구 요청 수락 후 프로필의 통화·메시지 버튼 크기가 서로 다르게 표시되던 문제를 고쳤다. - iOS Shop 아이템 미리보기에서 프로필 미리보기 텍스트가 잠깐 나타났다가 사라지던 현상을 해결했다. - iOS에서 글자 크기를 키웠을 때 Nitro 혜택 설명이 잘리고 스크롤하기 어려웠던 문제를 수정했다. - iOS 알림 설정 화면이 푸시 알림을 이미 켠 뒤에도 계속 활성화를 요구하던 문제를 해결했다. ## 초대, 프로필, 이벤트 관련 수정 - iOS 채널 목록에 채널을 추가하라는 배너가 채팅 배경에 섞이지 않도록 구분선을 추가했다. - 프로필 카드와 상태 표시 요소의 모서리 및 정렬을 조정해 시각적 일관성을 높였다. - 예약 이벤트 카드와 Live 채널 안내 문구가 화면 가장자리를 넘지 않도록 처리했다. - 이미 가입한 서버 초대 링크가 잘못된 설정 흐름을 열지 않고 해당 서버로 바로 이동하도록 수정했다. ## 적용 방식 - 패치에 포함된 수정 사항은 모두 커밋되고 병합된 상태다. - 다만 플랫폼별 배포가 진행 중일 수 있어 모든 사용자에게 동시에 적용되지는 않을 수 있다. - 문제가 계속되면 Discord 커뮤니티의 격월 버그 메가스레드에 제보할 수 있다. 이번 업데이트는 대규모 신규 기능보다는 iOS 아키텍처 전환, 연결 속도 개선, 운영체제별 안정성 보강, 세부 UI 버그 수정에 초점이 맞춰져 있다. Discord를 사용하는 경우 앱을 최신 버전으로 업데이트하고, 특히 Linux·Windows·iOS에서 보고된 문제를 겪었다면 수정 여부를 확인하는 것이 좋다.

gitlab

Git 2.55.0의 새로운 기능은 무엇인가? (새 탭에서 열림)

Git 2.55.0은 커밋 수정, 대규모 저장소 성능, 여러 원격 저장소 관리, 로그 가독성을 개선한 릴리스입니다. 특히 `git history fixup`, Linux용 내장 fsmonitor, 원격 그룹 대상 `git push`, `git log --graph`의 레인 폭 제한이 눈에 띕니다. 또한 Git 코드베이스의 Rust 도입과 부분 클론에서의 `git grep`, `git cherry` 성능 개선도 주요 변경 사항으로 소개됩니다. ## `git history fixup`으로 기존 커밋 수정 - 기존 방식은 다음 두 단계가 필요했습니다. ```bash git commit --fixup=<commit-id> git rebase -i --autosquash <commit-id>^ ``` - Git 2.55에서는 스테이징된 변경 사항을 지정한 커밋에 바로 반영할 수 있습니다. ```bash git history fixup <commit-id> ``` - 대화형 리베이스 없이 커밋을 수정할 수 있어 절차가 간단해집니다. - 수정된 커밋을 포함하는 다른 로컬 브랜치도 함께 갱신됩니다. - 따라서 스택형 브랜치에서 중간 커밋을 수정하면 관련 브랜치가 자동으로 재배치됩니다. ## Linux용 내장 fsmonitor 데몬 - 대규모 모노레포에서는 `git status`가 전체 작업 트리를 탐색해야 하므로 느려질 수 있습니다. - `core.fsmonitor`를 활성화하면 파일 시스템 변경을 백그라운드에서 감시하고, Git이 변경 가능성이 있는 파일만 확인할 수 있습니다. - 기존 내장 fsmonitor는 Windows와 macOS만 지원했지만 Git 2.55부터 GNU/Linux도 지원합니다. - Linux에서는 권한 상승이 필요한 `fanotify` 대신 `inotify`를 사용합니다. - 저장소의 모든 디렉터리에 감시자를 등록하므로, 큰 저장소에서는 감시자 수 제한을 초과할 수 있습니다. - 필요하면 다음 커널 설정을 늘려야 합니다. ```text fs.inotify.max_user_watches ``` ## 원격 그룹으로 한 번에 push - 기존에는 원격 그룹을 `git fetch`에서만 사용할 수 있었습니다. - 다음과 같이 원격 그룹을 설정합니다. ```bash git config set remotes.forks "origin upstream" ``` - Git 2.55부터 그룹 전체에 브랜치를 push할 수 있습니다. ```bash git push forks main ``` - 지정한 브랜치가 그룹에 포함된 각 원격 저장소로 독립적으로 전송됩니다. - 각 원격 저장소의 `remote.<name>.push` 매핑과 mirror 설정도 개별적으로 적용됩니다. ## `git log --graph`의 레인 폭 제한 - `git log --graph`는 브랜치와 병합 관계를 ASCII 그래프로 표시합니다. - 기여자가 많거나 병렬 브랜치가 많은 저장소에서는 그래프가 지나치게 넓어져 가독성이 떨어질 수 있습니다. - Git 2.55는 그래프의 레인 폭을 제한하는 기능을 제공해 복잡한 커밋 이력을 보다 compact하게 표시할 수 있도록 합니다. ## Rust 도입과 부분 클론 성능 개선 - Git 2.55 릴리스의 추가 주제로 Git 코드베이스 내 Rust 사용 확대가 소개됩니다. - 부분 클론 환경에서 `git grep`과 `git cherry`가 더 빠르게 동작하도록 성능 개선이 이루어졌습니다. - 제공된 글 내용에는 Rust 도입 방식이나 각 명령의 구체적인 개선 수치는 자세히 설명되지 않습니다. 대규모 저장소를 사용한다면 Linux에서 `core.fsmonitor=true`를 활성화하고, `inotify` 감시자 제한을 점검하는 것이 좋습니다. 여러 미러나 포크에 동시에 배포하는 팀은 원격 그룹 push를 활용하면 반복 작업을 줄일 수 있습니다.

discord

Discord 데스크톱 알림 관리 방법: 완벽 가이드 (새 탭에서 열림)

Discord 알림은 서버·채널·소리·상태별로 세밀하게 조정할 수 있으므로, 모든 알림을 끄거나 필요한 멘션만 받을 수 있다. 서버 전체 설정과 채널별 예외 설정을 조합하고, 집중이 필요할 때는 일정 시간 동안 방해 금지(DND)를 사용하면 된다. 데스크톱 팝업 차단과 알림음 차단은 별도 설정이라는 점도 중요하다. ## Discord에서 발생하는 알림 종류 - 일반 채널 메시지 - 내 이름에 대한 `@멘션` - `@everyone`, `@here` 멘션 - 내가 속한 역할(Role) 멘션 - 내 메시지에 대한 답글 - 현재 보고 있는 채널의 새 메시지 - DM 음성·영상 통화 수신 - 친구가 Activity를 시작한 경우 - Soundboard 효과음 일반 메시지와 멘션은 비슷한 “bloop” 소리를 사용할 수 있지만, 통화·음성 채널 활동·Soundboard 등은 별도 소리가 적용된다. ## 서버와 채널별 알림 설정 - 서버 아이콘을 우클릭한 뒤 **Notification Settings**에서 서버 전체 알림을 설정할 수 있다. - 알림 수준은 다음 중 선택한다. - **All Messages**: 모든 메시지 - **Only @mentions**: 나를 언급한 알림만 - **Nothing**: 알림 없음 - `@everyone`, `@here`, 역할 멘션, 새 이벤트 알림을 각각 억제할 수 있다. - 서버 전체를 **Mute Server**로 완전히 음소거할 수도 있다. - 특정 채널은 우클릭하거나 벨 아이콘을 눌러 서버 기본값과 다른 알림 수준을 지정할 수 있다. - 오프토픽·밈·공지 채널처럼 시끄러운 채널만 별도로 음소거하면서 서버 자체는 활성 상태로 유지할 수 있다. - 카테고리를 음소거하면 내부 채널이 회색으로 표시되고 기본적으로 접힌 상태가 된다. ## 방해 금지(DND) 상태 - 왼쪽 아래 프로필 메뉴에서 상태를 **Do Not Disturb**로 바꾸면 Discord 전체 알림음이 차단된다. - 일정 시간을 지정할 수 있어, 집중 시간이 끝나면 자동으로 온라인 상태로 돌아온다. - **Online**은 기본 상태이며, **Idle**과 **Invisible**은 주로 다른 사용자에게 보이는 상태를 바꾼다. - 실제로 알림음을 차단하는 상태는 DND뿐이다. - DND 설정은 데스크톱과 모바일에 함께 적용되지만, 모바일 푸시 알림 자체까지 모두 차단하는 것은 아니다. ## 알림음 개별 제어 **User Settings > Notifications > Sounds**에서 다양한 소리를 개별적으로 끄고 켤 수 있다. - 메시지 및 멘션 알림음 - 음소거·헤드셋 해제음 - 통화 벨소리 - 음성 채널 입장·퇴장 소리 - 기타 20개 이상의 이벤트 소리 메시지 소리는 꺼도 통화 벨소리나 음성 활동 소리는 켜두는 식으로 설정할 수 있다. 글에서 설명하는 알림음 설정은 Soundboard 설정과는 별개이며, Soundboard 사용법은 별도 안내가 필요하다. ## 데스크톱 팝업 알림 켜고 끄기 - **User Settings > Notifications > Enable Desktop Notifications**에서 Windows·macOS·Linux의 시스템 팝업을 제어한다. - 이 옵션을 끄면 Discord 바깥에서 표시되는 데스크톱 팝업만 사라진다. - Discord 앱 내부의 알림과 소리는 계속 재생될 수 있으므로, 완전히 조용하게 만들려면 서버·채널 설정이나 Sounds 설정도 함께 조정해야 한다. 필요한 알림만 받으려면 서버는 **Only @mentions**, 특정 채널은 **Nothing**, 통화 관련 소리는 유지하는 조합이 가장 실용적이다. 집중할 때는 시간 제한이 있는 DND를 사용하면 설정을 다시 되돌리는 번거로움도 줄일 수 있다.

google

사용하지 않는 휴대폰으로 만드는 저탄소 컴퓨팅 플랫폼 (새 탭에서 열림)

사용이 끝난 스마트폰의 메인보드를 모아 클러스터로 구성하면, 새 서버 제조를 줄이면서 저비용·저탄소 클라우드 컴퓨팅 플랫폼으로 재활용할 수 있다. UC 샌디에이고와 Google은 2,000대의 Pixel 스마트폰으로 데이터센터를 구축해 교육·연구용 컴퓨팅을 제공할 계획이다. 이 방식은 스마트폰의 제한된 메모리와 코어 수에 맞는 작업을 선별하고, 대규모 배포에서 소비자용 하드웨어의 신뢰성을 검증하는 것을 목표로 한다. ## 컴퓨팅의 탄소 배출과 스마트폰 재활용 - 컴퓨팅의 탄소발자국은 크게 두 가지다. - **운영 탄소**: 기기 사용 중 소비되는 전력에서 발생하는 배출량 - **내재 탄소**: 하드웨어 제조와 원자재 추출 과정에서 발생하는 배출량 - 전력 효율 향상과 재생에너지 사용으로 운영 탄소는 줄일 수 있지만, 제조 과정의 내재 탄소는 해결이 더 어렵다. - 사람들은 평균 4년마다 스마트폰을 교체하지만, 교체된 기기에도 프로세서, 가속기, 메모리, 저장장치 등 핵심 컴퓨팅 기능이 남아 있다. - 기존 스마트폰을 재사용하면 새 하드웨어 생산과 추가적인 원자재 채굴을 피할 수 있다. ## 스마트폰과 서버의 성능 차이 - 2023년형 Pixel Fold의 고성능 코어는 SPEC 벤치마크에서 일부 최신 데이터센터 서버의 단일 코어 성능을 웃돈다. - 다만 스마트폰은 서버보다 다음과 같은 제약이 있다. - 코어 수가 적고 CPU 구성이 이기종임 - 메모리가 약 8~12GB로 제한됨 - 서버처럼 대규모 멀티스레드 처리나 대용량 메모리를 제공하지 못함 - 따라서 하나의 스마트폰에 들어갈 수 있거나, 여러 기기로 분할할 수 있는 작업이 적합하다. - 벤치마크상 약 25~50대의 스마트폰이 현대적인 서버 한 대에 해당하는 성능을 낼 수 있다. ## 스마트폰을 데이터센터 하드웨어로 개조 - 소비자용 스마트폰을 그대로 데이터센터에 배치하면 비효율적이고 위험하다. - 디스플레이, 배터리, 카메라, 케이스 등 서버에 필요 없는 부품이 공간을 차지함 - 특히 배터리는 데이터센터 환경에서 장시간 사용하기에 적합하지 않을 수 있음 - 따라서 메인보드만 분리해 클러스터에 사용한다. - 메인보드는 스마트폰 내재 탄소의 약 50%를 차지하는 가장 중요한 부품이므로, 이를 재사용하는 것이 환경적 효과가 크다. - Android 기반의 모바일 사용자 공간은 범용 Linux 배포판으로 교체한다. - 클라우드 작업에 필요한 프로그래밍 환경을 제공함 - 모바일 기기용 보호 기능을 제거하거나 조정할 수 있음 - 예를 들어 메모리 부족 시 애플리케이션을 종료하는 ‘Low Memory Killer’의 영향을 줄일 수 있음 - 컨테이너화된 애플리케이션을 Kubernetes로 관리해 25~50대 단위의 자기관리형 클러스터를 구성한다. ## 교육·연구용 저탄소 클라우드 - 대학에서 사용하는 Jupyter 환경, 과제 채점 시스템, 병렬 계산 수업용 애플리케이션 상당수는 스마트폰 한 대 또는 소규모 클러스터로 처리할 수 있다. - 일반적인 과제 채점 백엔드는 AWS t3.micro 수준인 2 vCPU·1GB 메모리 인스턴스에서도 실행된다. - 20대 스마트폰 클러스터를 이용한 실험에서: - 75명 이상 수강하는 수업의 최대 과제 제출량을 처리함 - 일반적인 AWS 백엔드보다 낮은 채점 지연 시간을 기록함 - 약 50초가 걸리는 CPU 집약적 행렬 곱셈 과제도 처리 가능했음 - 2,000대 규모의 클러스터는 약 50대의 서버에 해당하는 컴퓨팅 자원을 제공하고, 동시에 약 100개 수업을 지원할 수 있을 것으로 예상된다. - 2026년 가을 전체 시스템 운영을 시작할 계획이다. ## 대규모 운영에서 검증할 과제 - 소비자용 스마트폰 메인보드를 장기간 데이터센터 부하로 사용할 때의 신뢰성을 검증해야 한다. - 다수 기기의 장애를 감지하고 작업을 재분배하는 클러스터 관리가 중요하다. - 제한된 메모리와 이기종 코어 구조에 맞도록 애플리케이션을 설계해야 한다. - 이 프로젝트는 실제 교육·연구 서비스를 제공하는 동시에 스마트폰 기반 컴퓨팅의 확장성과 지속 가능성을 시험하는 테스트베드 역할을 한다. 사용이 끝난 스마트폰은 서버 전체를 대체하기보다는 교육, 과제 채점, 소규모 웹 서비스처럼 자원 요구량이 제한적인 작업에 재활용하는 것이 현실적이다. 특히 메인보드 재사용과 컨테이너·Kubernetes 기반 클러스터 관리를 결합하면 비용 절감과 제조 탄소 감축을 동시에 달성할 가능성이 있다.

discord

Discord 패치 노트: 2026년 5월 4일 (새 탭에서 열림)

Discord의 2026년 5월 4일 패치 노트는 성능·안정성·사용성 개선과 다양한 버그 수정을 다룬다. 특히 서버 관리 및 권한 관련 문제를 집중적으로 해결했고, Android 동영상 시작 속도와 Soundboard 접근성을 개선했다. 데스크톱 설정 구조를 단순화하고 Linux 자동 업데이트도 지원해 전반적인 사용 편의성을 높였다. ## 서버 관리와 권한 문제 개선 - 서버 관리자용 기능에서 권한, 사용자 상태, 계정 안전 기능과 관련된 여러 오류를 수정했다. - Community 설정의 “Discord 관리자 서버 참여” 팝업을 닫아도 나중에 다시 참여할 수 있도록 버튼이 사라지지 않게 했다. - 서버 부스트 결제 화면에서 `ESC`를 눌렀을 때 결제 창이 아니라 뒤쪽의 부스트 페이지가 닫히던 문제를 해결했다. - 서버 프로필 편집 중 저장하지 않은 변경 사항이 있을 때, 모달 바깥을 클릭해도 경고 없이 닫히지 않도록 동작을 개선했다. - 서버별 프로필의 대명사를 지울 때 기본 프로필의 대명사가 자동 입력되던 문제를 수정하고, 기본 대명사는 placeholder로 표시한다. - 서버별 아바타의 링크를 복사할 때 기본 프로필 아바타 링크가 복사되던 문제를 해결했다. ## Android 동영상과 모바일 성능 - Android의 동영상 전송 네트워크 스택을 추가로 조정했다. - Android에서 동영상 피드가 시작되는 속도가 약 4.89% 빨라졌으며, 평균 시작 시간이 600ms 미만으로 줄었다. - 모바일에서 검색 결과를 불러오는 중 연결이 끊겼을 때 오류 메시지가 반복 표시되거나 요청을 무한 재시도하던 문제를 수정했다. - Media, Pins, Files, Links 탭에서 네트워크 오류가 발생해도 불필요한 재시도가 반복되지 않는다. - Android 검색 필터가 활성화되어도 파란색으로 표시되지 않던 시각적 문제를 해결했다. - iOS에서 프로필 또는 앱 소개의 링크를 눌렀을 때 발생하던 충돌을 수정했다. - iOS에서 기본 프로필의 사용자 이름을 복사한 뒤 서버별 프로필 화면으로 되돌아가던 문제도 해결했다. ## 데스크톱 설정 구조 개편 - 기존 Appearance, Accessibility, Chat, Streamer Mode, Advanced 설정을 다음 세 페이지로 통합했다. - Appearance - Accessibility - Developer - 일부 설정의 배치와 문구를 명확하게 변경했다. - “Sync Themes Across My Devices”를 다시 활성화했을 때 현재 테마가 이전에 동기화된 테마로 되돌아가던 문제를 수정했다. - 최근 아바타에 마우스를 올렸을 때 삭제 버튼이 보이지 않던 문제를 해결했다. - 프로필 편집 모달의 저장 변경사항 표시줄이 Legacy Username Badge 토글과 겹치던 문제를 수정했다. - “Connect Your Domain” 화면의 버튼 간격이 지나치게 좁거나 가장자리에 붙던 레이아웃 문제를 개선했다. - 프랑스어 환경에서 Poll 검색 필터인 `sondage`가 `Son`과 `dage`로 잘못 분리되던 문제를 해결했다. ## Soundboard와 음성 채널 로딩 - Soundboard 데이터를 처음 열 때가 아니라 음성 채널에 참가할 때 미리 가져오도록 변경했다. - 그 결과 음성 통화 중 Soundboard를 처음 사용할 때의 로딩 시간이 줄었다. - 작은 로딩 속도 개선만으로도 Soundboard 효과 사용량이 측정 가능하게 증가했다고 설명한다. ## Linux 업데이트와 패키지 지원 - Windows에서 사용하던 Rust 기반 자동 업데이트 시스템을 Linux에도 적용했다. - 이제 Linux 사용자는 새 버전을 직접 내려받아 설치하지 않고 앱 자체에서 업데이트할 수 있다. - 설치 패키지 형식으로 `.rpm`과 `.pkg.tar.zst`도 추가 지원한다. ## 기타 일반 버그 수정 - “Copy Username” 기능의 `GODLIKE!!`, `BEYOND GODLIKE!!` 메시지 배경이 투명하게 보이던 문제를 수정했다. 배경색은 기존 빨간색 대신 초록색으로 통일했다. - Quick Switcher에 초대 링크를 붙여 넣으면 해당 서버에 참가하고 바로 이동할 수 있게 됐다. - Active Now 창에서 사용자 이름에 마우스를 올릴 때 상태 표시기가 흰색으로 변하던 문제를 해결했다. - 모바일 검색 결과에서 긴 닉네임이 메시지 타임스탬프를 가리던 문제를 수정했다. - Server Boost 홍보 화면의 오디오가 결제 흐름으로 이동한 뒤에도 계속 재생되던 문제를 해결했다. - 알림을 빠르게 여러 개 삭제할 때 Inbox가 충돌하던 문제를 수정했다. - Nitro 탭에서 Nitro 가입 기간 보상 배지를 눌러도 사라지지 않던 문제를 해결했다. - 구독 설정에서 `GBP` 통화명이 비어 보이던 문제를 수정했다. - Inbox의 Unreads 미리보기에서 만료된 공개 이미지 링크가 표시되지 않던 문제를 해결했다. - 친구 요청 이메일에 오래된 `#0` discriminator가 표시되던 문제를 수정했다. - Nitro 체험 대상 친구를 선택하는 체크박스가 실제로 선택되지 않던 문제를 해결했다. - 사용자 프로필에서 Custom Status 편집 창을 열 때 전체 프로필을 대체하지 않고 위에 표시되도록 변경했다. - 프로필, 서버 부스트, 검색, 알림, 결제 등 여러 화면의 모달·버튼·레이아웃 관련 세부 오류를 정리했다. ## 적용 일정과 테스트 참여 - 모든 수정 사항은 코드에 반영되고 병합되었지만, 플랫폼별로 실제 배포되는 시점은 다를 수 있다. - 사용자는 커뮤니티의 격월 버그 메가스레드에 문제를 신고할 수 있다. - iOS 사용자는 TestFlight 버전에 참여해 정식 출시 전 기능과 수정 사항을 시험할 수 있다. 이번 업데이트는 대규모 신기능보다 서버 관리자 기능의 신뢰성, 모바일 성능, 설정 탐색성, 플랫폼별 업데이트 편의성을 높이는 데 초점을 맞췄다. Discord를 관리하거나 Android·Linux·데스크톱 앱을 주로 사용하는 사용자는 업데이트 후 관련 기능의 개선 여부를 확인해 보는 것이 좋다.

gitlab

19.0 Omnibus-GitLab FIPS 패키지에서 curl 제거 (새 탭에서 열림)

GitLab은 2026년 5월 출시 예정인 19.0 버전부터 Omnibus-GitLab FIPS 패키지 내부에 자체 빌드하여 포함하던 `curl`을 제거합니다. 앞으로 FIPS 환경의 사용자들은 GitLab이 제공하는 번들 대신 사용 중인 Linux 배포판의 `curl` 패키지를 직접 활용하게 되며, 이는 기존의 OpenSSL 라이브러리 관리 방식과 동일한 모델로 통합되는 것입니다. 이번 변경을 통해 GitLab은 패키지 유지보수의 효율성을 높이고, OS 수준의 암호화 라이브러리와의 호환성을 강화하고자 합니다. ### 기술적 배경 및 변경 사유 * **OpenSSL 1.x 지원 중단:** 최신 버전인 `curl 8.18.0`부터 OpenSSL 1.x 환경에서의 컴파일 지원이 중단되었습니다. 이로 인해 Amazon Linux 2나 AlmaLinux 8(RHEL 8 기반)과 같이 구형 라이브러리를 사용하는 환경에서 기존 방식의 패키징을 지속하기 어려워졌습니다. * **FIPS 관리 모델의 일관성:** FIPS 패키지는 이미 배포판의 암호화 라이브러리를 링크하여 사용하고 있습니다. `curl` 또한 이와 동일한 방식으로 전환함으로써 보안 및 관리 모델의 일관성을 확보합니다. * **유지보수 및 보안 강화:** OpenSSL 3.0 이상을 사용하는 최신 배포판을 포함한 모든 FIPS 패키지에 이 변경 사항을 적용하여 전체적인 보안 관리 체계를 개선합니다. ### 적용 대상 및 일정 * **적용 시점:** 2026년 5월 21일 출시되는 GitLab 19.0 버전 및 이후의 패치 릴리스부터 적용됩니다. * **영향 범위:** 모든 Omnibus-GitLab FIPS 패키지 사용자가 대상입니다. * **사용자 조치:** GitLab 인스턴스 자체의 동작 방식은 변하지 않으므로 즉각적인 기능 설정 변경은 필요하지 않으나, 시스템 환경에 대한 점검이 권장됩니다. ### 보안 관리 책임의 변화 * **보안 업데이트 주체 변경:** 이제 GitLab은 FIPS 패키지용 `curl`의 보안 패치를 직접 배포하지 않습니다. 사용자는 운영체제(OS)에서 제공하는 업데이트를 통해 `curl`의 최신 보안 상태를 유지해야 합니다. * **취약점 스캐닝 결과:** 보안 스캐너는 더 이상 GitLab 번들 버전이 아닌, 호스트 OS에 설치된 `curl` 패키지를 기준으로 취약점을 식별하게 됩니다. FIPS 환경에서 GitLab을 운영 중인 관리자는 19.0 업데이트 이후 `curl` 관련 보안 취약점 대응이 운영체제 패키지 관리 프로세스에 포함되도록 관리 절차를 재점검해야 합니다. 특히 시스템 보안 스캔 결과가 OS 패키지 상태를 반영하게 되므로, 정기적인 OS 업데이트를 통해 최신 보안 패치를 적용할 것을 권장합니다.

discord

디스코드 패치 노트: 2026년 4월 6일 (새 탭에서 열림)

Discord의 2026년 4월 6일 패치 노트는 음성 연결 안정성, 접근성, 미디어 업로드 성능을 중심으로 다양한 개선 사항을 소개한다. 데스크톱 음성 스레드 교착 상태를 약 30% 줄였고, iOS에서는 이미지 업로드 용량과 지연 시간을 각각 약 17%, 12% 개선했다. 이 밖에도 검색, 모바일 가로 모드, AFK 감지, 계정·친구·서버 기능과 여러 UI 버그를 수정했으며, 변경 사항은 플랫폼별로 순차 배포될 수 있다. ## 음성 연결과 미디어 공유 성능 개선 - 데스크톱에서 음성 채널 접속 중 “Connecting” 상태에 멈추는 음성 스레드 교착 문제를 약 30% 감소시켰다. - iOS에서는 이미지 업로드 파일 크기를 약 17% 줄이고 업로드 지연 시간을 약 12% 단축했다. - 결과적으로 음성 채널 연결 실패와 모바일 이미지 공유 시 대기 시간이 줄어들 것으로 기대된다. ## 접근성과 모바일 화면 개선 - Discord는 대규모 접근성 감사를 계속 진행하고 있으며, 이번 패치에서도 접근성 관련 수정이 대폭 포함될 예정이라고 밝혔다. - 모바일 가로 모드에서 전체 화면에 일괄 적용하던 패딩 대신 화면별로 패딩을 계산하도록 변경했다. - 이에 따라 가로 화면에서 불필요한 크기 조정이 줄고 화면 전환이 자연스러워졌다. - 데스크톱의 키보드 포커스 링, 설정 버튼 정렬, 긴 번역 문자열로 인해 프로필 버튼이 화면 밖으로 밀려나는 문제도 수정했다. ## 검색 및 기본 기능 수정 - `has:-image`와 같은 검색 부정 연산자가 무시되던 문제를 해결했다. - 이제 이미지가 포함된 메시지를 제외하는 검색 필터가 정상적으로 동작한다. - Wayland 환경의 Linux 클라이언트에서도 AFK 상태를 올바르게 감지하고 진입·해제할 수 있게 됐다. - 서버 목록을 수동으로 재정렬할 때 Android의 스크롤 속도도 개선했다. ## 데스크톱 UI와 입력 동작 개선 - 설정 화면의 편집·녹음 키 바인드 버튼 수직 정렬 문제를 수정했다. - 최소 높이 창에서 Shop 상품 모달을 바깥 영역 클릭으로 닫을 수 없던 문제를 해결했다. - 모달이 열린 상태에서 `CMD/CTRL+F`를 누르면 서버 검색이 실행되던 문제를 수정했다. - 테마나 앱 아이콘을 선택할 때 설정 모달이 페이지 하단으로 튀던 문제를 해결했다. - 브라우저에서 Discord 링크를 열어 데스크톱 앱으로 전환할 때 현재 채널이 덮어써지던 동작을 수정했다. - 업데이트 다운로드 중 클릭할 수 있는 것처럼 보이던 아이콘과, 프로필 편집에서 자기소개 변경 사항을 제대로 초기화하지 못하던 문제도 고쳤다. - 채널 이름 입력창에 지원되지 않는 커스텀 이모지 추가 버튼이 표시되던 문제를 제거했다. ## 친구, 계정, 프로필 기능 수정 - Android QR 코드로 친구를 추가한 뒤 요청이 전송되었다는 시각적 피드백이 없던 문제를 해결했다. - 이미 친구 추천 요청을 보낸 사용자가 추천 목록에 중복 표시되던 문제를 수정했다. - iOS에서 Invisible 상태에서 다른 상태로 전환하지 못하는 문제를 해결했다. - 계정 전환 후 브라우저 스타일의 뒤로 가기·앞으로 가기 탐색이 올바르게 작동하도록 수정했다. - 프로필의 외부 링크 연결 아이콘을 잘못 표시하던 문제와, 대기 중 친구 요청에 사용자 이름이 툴팁으로 중복 표시되던 문제를 고쳤다. ## 모바일 클라이언트 수정 - Android에서 테마를 변경해도 설정 화면 일부가 즉시 갱신되지 않던 문제를 해결했다. - Android QR 로그인 화면에서 활성화된 “로그인” 버튼이 사용할 수 없는 것처럼 보이던 문제를 수정했다. - Android의 인앱 브라우저 설정이 외부 브라우저를 여는 문제를 해결했다. - iOS에서 서버를 전환할 때 채널 목록이 순간적으로 흔들리거나, 검색 결과의 봇 메시지 컨테이너 안 이미지가 지나치게 작게 표시되던 문제를 수정했다. - iOS Server Guide의 신규 회원 진행률 표시, 환영 메시지 지연, 완료 후 진행률 바가 사라지지 않는 문제를 해결했다. - Nitro Classic 구독 취소 과정에서 발생할 수 있던 iOS 충돌도 수정했다. ## 서버, 상점 및 기타 시각적 버그 - Student Hub 가입 방식 필터가 제대로 작동하지 않던 문제를 해결했다. - 서버 템플릿 미리보기에서 역할이 오래된 디자인으로 표시되던 문제를 수정했다. - 상점의 구매 완료 오류 메시지 여백, Nitro 선물 이모지 선택기의 버튼 동작, Nitro Home 카드와 배지의 겹침 문제를 개선했다. - 프로필 배너 색상이 사용자 지정 상태의 반응·답장 도구 모음에 번지던 현상을 수정했다. - 게임 오버레이 사용 중 Inbox 멘션 탭의 패딩이 잘못 표시되던 문제와 서버 초대 모달의 키보드 포커스 위치 문제도 해결했다. 이번 업데이트는 새로운 대형 기능을 추가하기보다 음성 연결 안정성, 업로드 성능, 접근성, 플랫폼별 세부 오류를 폭넓게 다듬은 유지보수 중심의 패치다. Discord 사용자는 데스크톱 음성 연결이나 iOS 이미지 업로드를 자주 이용한다면 업데이트가 적용되었는지 확인하고, 문제가 계속될 경우 공식 버그 제보 채널이나 커뮤니티 버그 메가스레드에 신고하는 것이 좋다.

meta

인프라 투자: jemalloc에 (새 탭에서 열림)

메타(Meta)는 자사 소프트웨어 인프라의 핵심 토대인 고성능 메모리 할당자 'jemalloc'에 대한 기술적 지원과 커뮤니티 협업을 대폭 강화한다고 발표했습니다. 과거 단기적 이득을 우선시하며 발생했던 기술적 부채를 인정하고, 프로젝트 설립자와의 논의를 통해 오픈 소스 저장소를 다시 활성화하여 코드베이스 현대화에 착수했습니다. 이를 통해 최신 하드웨어 환경에 최적화된 성능을 제공하고 장기적인 소프트웨어 건강성을 회복하는 것을 목표로 합니다. ## 기술적 부채 청산과 커뮤니티 신뢰 회복 * 과거 핵심 엔지니어링 원칙에서 벗어나 발생했던 기술적 부채를 해결하기 위해 리팩토링을 진행하며, 모든 사용자가 쉽고 안정적으로 사용할 수 있도록 코드베이스를 정비합니다. * 프로젝트 설립자인 제이슨 에반스(Jason Evans) 및 오픈 소스 커뮤니티와의 긴밀한 소통을 통해 아카이브되었던 저장소를 다시 열고 투명한 개발 프로세스를 유지합니다. * 신뢰는 행동을 통해 얻어진다는 원칙 아래, 메타의 자원 투입이 jemalloc의 장기적인 발전으로 이어질 수 있도록 운영 방식을 개선했습니다. ## 현대적 하드웨어를 위한 성능 최적화 로드맵 * **대용량 페이지 할당자(HPA) 개선**: 투명한 대용량 페이지(THP, Transparent Huge-Pages)의 활용도를 높여 CPU 효율성을 극대화할 수 있도록 HPA 기능을 지속적으로 고도화합니다. * **메모리 효율성 극대화**: 메모리 패킹(Packing), 캐싱, 퍼징(Purging) 메커니즘을 개선하여 불필요한 메모리 낭비를 줄이고 시스템 전반의 효율을 높입니다. * **AArch64(ARM64) 플랫폼 최적화**: 최신 서버 환경인 ARM64 아키텍처에서 별도의 튜닝 없이도 즉각적으로 뛰어난 성능(Out-of-the-box performance)을 발휘할 수 있도록 지원을 강화합니다. ## 인프라 경쟁력 강화를 위한 제언 이번 jemalloc의 변화는 대규모 트래픽을 처리하는 인프라 환경에서 메모리 할당자의 성능이 시스템 전체의 비용과 효율에 직결됨을 시사합니다. 특히 ARM64 기반 서버로 전환 중이거나 대용량 페이지 관리를 통해 CPU 성능을 높이고자 하는 조직이라면, 향후 업데이트될 jemalloc의 최적화 기능을 적극적으로 검토하고 도입할 가치가 있습니다.

discord

디스코드 패치 노트: 20 (새 탭에서 열림)

Discord의 2026년 2월 4일 패치는 데스크톱 렌더링 성능, 스트리밍 사용성, 모바일 안정성, 권한 관리 등을 폭넓게 개선했다. 특히 느린 CSS 선택자를 최적화해 화면 이동과 상호작용 지연을 크게 줄였고, 화면 공유 확대·이동과 `@time` 명령어 같은 기능을 추가했다. 또한 오디오·비디오 백엔드의 Rust 이전이 80% 이상 진행됐으며, 다양한 플랫폼별 버그도 수정했다. ## 데스크톱 성능과 스트리밍 개선 - 데스크톱 렌더링 성능을 크게 향상해 메뉴 탐색과 앱 조작 시 지연을 줄였다. - 성능 저하의 주요 원인은 느린 엔드포인트나 컴포넌트가 아니라 비효율적인 CSS 선택자로 확인됐다. - 화면 공유 및 게임 스트림에서 마우스 휠이나 트랙패드로 확대·축소와 화면 이동이 가능해졌다. - 스트리밍 시작 과정의 미리보기 로딩 시간을 단축했다. - 프로필 편집 중 `Esc`를 눌러도 전체 프로필 편집 모달이 닫히지 않도록 수정했다. - 선택 항목이 없을 때 복사 단축키를 누르면 클립보드가 비워지던 문제를 해결했다. ## 모바일 기능 및 플랫폼별 수정 - Android 그룹 DM 알림에 발신자 이름 대신 그룹 이름이 표시되도록 변경해 iOS와 동작을 통일했다. - Android에서 여러 오디오 트랙이 포함된 동영상이 정상적으로 재생되도록 수정했다. - iOS의 클라이언트 테마 목록을 스와이프할 때 지나치게 빠르게 스크롤되던 문제를 해결했다. - Android에서 불필요한 하단 바가 표시되어 상호작용을 막던 문제를 수정했다. - iOS 및 Android 연결 설정의 버튼 정렬 문제를 해결했다. - 일부 Android 기기에서 Shop이 한 열로만 표시되던 문제를 수정했다. - iOS에서 GIF 선택기로 새 아바타를 설정할 때 정지 이미지로 저장되던 문제를 해결했다. - 모바일의 채널 탐색 기능은 베타 상태를 종료하고 정식 기능으로 전환됐다. ## 서버 권한과 커뮤니티 관리 - 신뢰할 수 있는 사용자에게 부여할 수 있는 `Bypass Slowmode` 권한을 추가했다. - 이 권한을 기존 역할과 연결하는 설정이 2월 23일까지 서버 관리자에게 제공될 예정이다. - 역할 멘션을 클릭해 해당 역할을 가진 사용자 목록을 확인하는 기능이 모든 안정화 버전에 적용됐다. - 서버 초대 모달이 사용자명뿐 아니라 표시 이름도 지원하도록 개선됐다. - 서버 태그가 데스크톱 프로필 미리보기에 올바르게 반영되도록 수정했다. - 역할 선택 필드가 투명하게 표시되던 문제와 서버 설정의 이모지 영역 정렬 문제를 해결했다. ## 오디오·비디오 백엔드의 Rust 전환 - Discord는 지난 1년간 오디오·비디오 백엔드를 Rust로 이전해 왔다. - 현재 전체 트래픽의 80% 이상이 새로운 Rust 기반 백엔드에서 처리된다. - 이번 패치에서는 이 마이그레이션이 상당히 진행되었음을 강조하며, 성능과 안정성 개선의 기반으로 제시했다. ## 시간 표시와 기타 사용성 개선 - 데스크톱에서 새로운 `@time` 명령어를 제공한다. - 사용자가 특정 시각을 입력하면 Discord가 Linux 타임스탬프를 생성하고, 보는 사람의 시간대에 맞춰 자동으로 표시한다. - `Ctrl+Alt+Shift+W` 또는 macOS의 `Cmd+Option+Shift+W`로 Vibing Wumpus 2.0을 실행할 수 있다. - 로그아웃할 때 재생 중인 음성 메시지가 정상적으로 중지되도록 수정했다. - 친구 요청을 무시한 뒤 DM 화면의 버튼이 “친구 요청 수락”에서 “친구 추가”로 올바르게 변경된다. - 이벤트 미리보기에서 Markdown이 정상적으로 렌더링된다. - 이벤트 진행 중에는 오류를 유발할 수 있는 “관심 있음” 버튼이 표시되지 않도록 수정했다. ## 프로필, 채널, 메시지 관련 버그 수정 - 프로필의 “About Me”를 편집할 때 커서가 부적절하게 텍스트 끝으로 이동하던 문제를 해결했다. - 서버별 프로필 편집 중 아바타 장식이 제대로 렌더링되지 않던 문제를 수정했다. - 프로필 테마 그라디언트가 모달 전체를 채우지 못하던 문제를 해결했다. - 매우 긴 포럼 채널 설명 때문에 채널 탐색 화면이 흔들리던 문제를 수정했다. - 서버 멤버 메뉴의 열 정렬 문제를 해결했다. - 포럼 채널이 포함된 온보딩 작업에서 UI 요소가 겹치던 문제를 수정했다. - 이모지 편집 시 “완료” 버튼을 빠르게 두 번 누르면 이모지가 중복되던 문제를 해결했다. - 서버에 텍스트 채널이 없는 상태에서 스티커의 관련 이모지를 클릭하면 클라이언트가 충돌하던 문제를 수정했다. - 받은 선물 모달이 두 번 나타나는 문제를 해결했다. - 데스크톱 받은편지함의 필터가 작동하지 않던 문제를 수정했다. ## 안정성 및 인터페이스 개선 - 특정 메뉴를 탐색할 때 클라이언트가 잠기는 문제를 해결했다. - Checkpoint 모달이 중복 표시되어 작업이 두 번 로드될 수 있던 문제를 수정했다. - F10 이후 기능 키가 UI에 `0`으로 표시되고 저장되지 않던 문제를 해결했다. - 위험할 수 있는 다운로드 모달의 버튼 간 여백을 조정했다. - 모바일의 커뮤니티 활성화 화면이 제대로 표시되지 않던 문제를 수정했다. - iOS에서 채널 카테고리가 읽지 않은 채널처럼 보이던 스타일 문제를 해결했다. - 데스크톱의 서버 설정 이모지 영역, 역할 선택 영역 등 여러 UI 정렬과 여백을 개선했다. - 모든 수정 사항은 코드에 반영됐지만 플랫폼별 배포는 단계적으로 진행될 수 있다. 이번 업데이트는 새로운 대형 기능보다는 성능과 안정성, 플랫폼 간 동작 통일에 초점을 맞췄다. 특히 데스크톱 사용자는 렌더링 지연 감소를, 스트리밍 사용자는 화면 확대·이동과 빠른 미리보기를, 서버 관리자는 `Bypass Slowmode` 권한을 우선 확인할 만하다.

datadog

eBPF를 활용한 실시간 파일 모니터링 확장: 분당 수십억 개의 커널 이벤트를 필터링하는 방법 (새 탭에서 열림)

Datadog은 현대적인 대규모 인프라에서 신뢰할 수 있는 파일 무결성 모니터링(FIM) 시스템을 구축하기 위해 기존의 주기적 스캔이나 `auditd` 방식 대신 eBPF 기술을 채택했습니다. 이들은 커널 수준에서 실시간 가시성을 확보함으로써 프로세스 및 컨테이너 맥락이 포함된 상세한 보안 데이터를 수집하는 데 성공했습니다. 특히 초당 수십억 건에 달하는 방대한 이벤트를 처리하기 위해, 데이터의 94%를 커널 내부에서 미리 걸러내고 에이전트 단위에서 로컬 규칙 검사를 수행하는 2단계 필터링 아키텍처를 통해 시스템 성능 저하 없이 보안 가시성을 극대화했습니다. ### 기존 모니터링 방식의 기술적 한계 * **주기적 파일 시스템 스캔:** 스캔 사이에 발생했다가 복구된 공격자의 변경 사항을 감지할 수 없으며, 파일이 '어떻게', '왜', '누구에 의해' 변경되었는지에 대한 맥락 정보가 부족합니다. * **inotify:** 파일 이벤트와 프로세스 또는 컨테이너 간의 상관관계를 파악하는 데 필요한 시스템 레벨의 컨텍스트를 제공하지 못합니다. * **auditd:** 시스템 부하가 높은 환경에서 과도한 오버헤드가 발생하며, 대규모 환경에서의 확장성 문제가 고질적인 단점으로 지적됩니다. ### eBPF를 활용한 심층 가시성 확보 * **실시간 커널 모니터링:** eBPF를 통해 커널에서 직접 실시간 파일 활동을 관찰함으로써, 파일 변경 사실뿐만 아니라 이를 유발한 프로세스와 컨테이너 정보까지 포함된 풍부한 보안 데이터를 확보했습니다. * **데이터 폭증의 난제:** 모든 인프라에서 발생하는 파일 관련 이벤트가 분당 100억 건을 넘어서며, 이벤트당 약 5KB인 데이터를 모두 전송할 경우 초당 수 테라바이트의 네트워크 트래픽이 발생하는 심각한 규모의 문제에 직면했습니다. ### 에이전트 기반의 로컬 규칙 필터링 * **에지(Edge)에서의 결정:** 수집된 모든 데이터를 백엔드로 전송하는 대신, 각 호스트의 에이전트에서 로컬 보안 규칙에 따라 데이터를 1차 검증합니다. * **트래픽 절감:** 로컬 필터링을 통해 백엔드로 전송되는 데이터를 분당 100억 건에서 약 100만 건 수준으로 획기적으로 줄여, 네트워크 비용과 시스템 자원 소모를 최소화했습니다. ### 커널 내부 프리필터링(In-kernel prefiltering)을 통한 최적화 * **링 버퍼(Ring Buffer) 드롭 방지:** 에이전트가 처리할 수 있는 속도보다 더 빠르게 이벤트가 생성될 경우 데이터 유실이 발생하는데, 이를 막기 위해 처리 로직의 상당 부분을 커널 내 eBPF 프로그램으로 이동시켰습니다. * **2단계 평가 모델:** * **커널 내부 필터링:** 'Approvers'와 'Discarders' 개념을 도입하여, 무관한 시스템 호출(syscall)의 94%를 유저 공간으로 넘기기 전에 커널 단계에서 즉시 폐기합니다. * **유저 공간 평가:** 커널을 통과한 선별된 이벤트에 대해서만 유저 공간에서 상세한 맥락 정보를 결합하고 복잡한 상관관계 분석을 수행합니다. ### 실용적인 제언 대규모 시스템에서 FIM을 구현할 때는 단순한 데이터 수집보다 '불필요한 데이터의 조기 차단'이 성능의 핵심입니다. eBPF를 활용하되 모든 로직을 커널에 넣기보다는, 커널 내에서의 가벼운 필터링과 유저 공간에서의 심층 분석을 결합한 하이브리드 접근 방식을 취하는 것이 확장성과 보안성을 모두 잡는 전략이 될 수 있습니다.

datadog

수백 개의 파드에서 Go 1.24 메모리 회귀를 추적해 찾아낸 방법 (새 탭에서 열림)

Go 1.24로의 업그레이드 이후, 새로운 맵 구현인 스위스 테이블(Swiss Tables)에 대한 기대와 달리 일부 서비스에서 메모리 사용량(RSS)이 약 20% 증가하는 현상이 발견되었습니다. 조사 결과, Go 런타임 내부의 메모리 관리 지표는 안정적이었으나 시스템 레벨의 실제 물리 메모리 점유가 늘어난 것으로 확인되었습니다. 이는 Go 1.24에서 진행된 `mallocgc` 함수의 리팩토링 과정에서 발생한 미묘한 메모리 할당자 회귀(Regression) 현상이 원인이었습니다. ### 런타임 지표와 시스템 지표의 불일치 * Go 1.24 업그레이드 후 데이터 처리 서비스의 RSS(Resident Set Size)가 눈에 띄게 증가했으나, Go 런타임 지표와 힙 프로파일상에는 아무런 변화가 기록되지 않았습니다. * 이는 Go 런타임 입장에서는 메모리를 더 사용하고 있지 않다고 판단하지만, 운영체제(Linux) 입장에서는 프로세스가 더 많은 물리 메모리를 점유하고 있는 상태임을 의미합니다. * Kubernetes의 메모리 제한(Limit)이나 OOM 킬러는 시스템 지표인 RSS를 기준으로 작동하기 때문에, 런타임 지표에 나타나지 않는 이러한 증가는 서비스 안정성에 치명적일 수 있습니다. ### 주요 변경 사항에 대한 가설 검증 * 먼저 Go 1.24의 핵심 변화인 '스위스 테이블'과 '스핀 비트 뮤텍스(Spin bit mutex)'를 원인으로 의심하고 실험을 진행했습니다. * `GOEXPERIMENT=noswissmap` 및 `GOEXPERIMENT=nospinbitmutex` 플래그를 사용하여 해당 기능들을 각각 비활성화한 후 빌드하여 배포했으나, 메모리 증가 현상은 해결되지 않았습니다. * 이를 통해 이번 문제는 새로운 기능 자체가 아니라, 런타임의 더 깊은 곳에서 발생한 변화 때문임을 확인했습니다. ### 가상 메모리와 물리 메모리의 매핑 분석 * 리눅스의 `/proc/[pid]/smaps` 파일을 분석하여 프로세스의 메모리 영역별 가상 메모리(Size)와 물리 메모리(RSS)의 차이를 추적했습니다. * 분석 결과, Go 1.23에서는 힙 영역의 RSS가 가상 메모리 크기보다 약 300 MiB 낮게 유지되었으나, Go 1.24에서는 가상 메모리 크기와 RSS가 거의 일치하는 현상이 발견되었습니다. * 결과적으로 Go 1.24의 런타임이 이전 버전보다 가상 메모리를 실제 물리 RAM에 더 공격적으로 할당(Commit)하고 있다는 사실을 밝혀냈습니다. ### mallocgc 리팩토링과 할당자 이슈 * Go 1.24 변경 로그를 정밀 분석한 결과, 메모리 할당의 핵심 로직인 `mallocgc` 함수에 대대적인 리팩토링이 있었음을 확인했습니다. * 이 과정에서 발생한 의도치 않은 로직 변화가 할당된 메모리를 실제 물리적 공간에 매핑하는 방식에 영향을 주어 RSS 상승을 유도한 것으로 파악되었습니다. * 작성자는 이 문제를 Go 개발 팀과 공유하여 원인을 확인했으며, 이는 런타임 리팩토링으로 인한 성능 회귀의 일종으로 결론지어졌습니다. Go 1.24 업그레이드를 고려 중인 팀은 런타임 내부 지표(Heap usage)뿐만 아니라 시스템 레벨의 RSS 지표를 면밀히 모니터링해야 합니다. 비록 메모리 할당자에서 미묘한 RSS 증가가 관측되었지만, 동시에 도입된 스위스 테이블은 대규모 인메모리 맵을 사용하는 서비스에서 수백 기가바이트의 메모리를 절약할 수 있는 잠재력을 가지고 있으므로 서비스 특성에 따른 비교 분석이 필요합니다.

discord

데스크톱 또는 모바일 (새 탭에서 열림)

Discord 스트리밍은 데스크톱·노트북과 모바일 앱에서 게임, 애플리케이션, 화면을 음성 통화 참여자에게 실시간으로 공유하는 기능이다. 데스크톱에서는 특정 앱만 공유할지 전체 화면을 공유할지 선택할 수 있지만, 모바일에서는 기기 전체 화면만 공유된다. 스트리밍 품질과 오디오 지원 여부는 운영체제와 브라우저에 따라 달라지므로, 공유 범위와 알림 노출에 주의해야 한다. ## 데스크톱에서 스트리밍 시작하기 - Windows, macOS, Linux의 Discord 데스크톱 앱에서 사용할 수 있다. - 서버의 음성 채널이나 DM 음성 통화에 참여한다. - 통화 창 하단의 모니터 모양 **화면 공유 버튼**을 누른다. - 공유할 애플리케이션, 전체 화면 또는 캡처 장치를 선택한다. - 스트리밍 품질을 조정한 뒤 **Go Live**를 누른다. ## 모바일에서 화면 공유하기 - iOS와 Android의 Discord 앱에서 스마트폰·태블릿 화면을 공유할 수 있다. - 통화 중 화면 하단의 메뉴를 열고 **Share Your Screen** 버튼을 선택한다. - 기기의 화면 공유 확인 절차를 완료하면 스트리밍이 시작된다. - 모바일에서는 특정 앱만 선택할 수 없고 **기기 전체 화면만 공유**된다. - 수신 알림과 알림 내용도 그대로 노출되므로, 민감한 정보가 표시되지 않도록 알림을 일시적으로 끄는 것이 좋다. ## 애플리케이션 공유와 전체 화면 공유의 차이 - **Share Application** - 선택한 게임이나 애플리케이션만 시청자에게 보여준다. - 다른 앱의 화면은 공유되지 않는다. - 해당 앱의 오디오만 공유하도록 선택할 수 있어 개인정보 보호에 유리하다. - **Share Entire Screen** - 화면에 보이는 모든 내용과 시스템 오디오를 공유한다. - 다른 앱의 창, 알림, 알림음까지 노출될 수 있다. - 스트리밍 중에도 공유 대상을 바꾸거나 화면 공유를 다시 시작할 수 있다. - 모바일에서는 전체 화면 공유만 가능하므로 모든 화면과 소리가 공유된다. ## 운영체제와 브라우저별 오디오 지원 - Windows에서는 애플리케이션 오디오 공유가 가능하다. - Chrome 브라우저에서 Discord를 사용할 때도 애플리케이션 오디오를 공유할 수 있다. - macOS는 **macOS Ventura(13) 이상**으로 업데이트해야 오디오 스트리밍을 사용할 수 있다. - Chrome 이외의 브라우저와 Linux에서는 글 작성 시점 기준으로 오디오 스트리밍을 지원하지 않는다. ## 스트리밍 품질 선택 - **Smoother Video** - 해상도를 낮추는 대신 가능한 가장 높은 프레임률을 사용한다. - 빠른 움직임이 많은 게임이나 리듬 게임에 적합하다. - **Better Text Readability** - 애플리케이션의 원래 해상도를 유지하는 대신 프레임률을 낮춘다. - 문서, 코드, 과제처럼 작은 글자를 읽어야 하는 화면에 적합하다. - Discord Nitro 가입자는 HD 스트리밍을 이용할 수 있으며, 더 높은 해상도와 최대 60fps 스트리밍을 지원한다. ## 실용적인 사용 권장사항 게임처럼 움직임이 중요한 콘텐츠는 **Smoother Video**, 문서나 작업 화면은 **Better Text Readability**를 선택하는 것이 좋다. 개인정보나 알림 노출이 걱정된다면 전체 화면 대신 특정 애플리케이션 공유를 사용하고, 모바일에서는 스트리밍 전에 알림을 끄는 것을 권장한다.

discord

디스코드 패치 (새 탭에서 열림)

Discord의 2025년 2월 3일 패치에서는 Android 실행 속도, 미디어 업로드, 푸시 알림, 화면 공유 등 핵심 성능과 안정성이 크게 개선됐다. 특히 Media Proxy를 Go에서 Rust로 재작성해 지연 시간과 신뢰성을 높였고, 대규모 서버의 알림 전달 능력도 강화했다. 이와 함께 DM에서 앱을 실행하는 기능, 개인정보 보호 설정 개편, Android 레이아웃 문제 수정 등 사용성과 UI 관련 개선도 다수 포함됐다. ## 성능과 안정성 개선 - Android 앱 초기화 과정을 개선해 중앙값 기기 기준 실행 시간이 약 20% 단축됐다. - Media Proxy 서비스를 Go에서 Rust로 재작성했다. - 업로드 미디어를 처리하는 서비스의 평균 지연 시간이 약 22% 개선됐다. - 90퍼센타일 지연 시간은 40% 이상 빨라졌다. - 인프라를 최신 표준으로 현대화해 서비스 안정성도 향상됐다. - Android 13 이하에서 기기 회전과 화면 크기 계산 때문에 발생하던 레이아웃 붕괴 문제를 수정했다. - 푸시 알림 전달 신뢰성을 여러 달에 걸쳐 개선했다. - 2,500명 미만 서버에서는 30초 이내 전달 성공률이 99.98%에 도달했다. - Midjourney처럼 대규모 서버에서도 2,000만 명에게 약 15분 이내 알림을 보낼 수 있게 됐다. ## DM에서 앱 실행 지원 - 데스크톱 DM에서 Discord 앱과 활동을 직접 실행할 수 있게 됐다. - DM 목록 상단에 최근 사용한 앱을 빠르게 실행하는 바가 추가됐다. - 전체 친구 서버에 알림을 보내지 않고도 Chess in the Park 같은 활동을 개별 DM에서 이용할 수 있다. ## 개인정보 보호 설정 개편 - User Settings의 Privacy & Safety 메뉴를 새롭게 구성했다. - 변경 사항은 다음과 같다. - 탭 기반의 새로운 구조 - 관련 설정을 더 명확하게 묶은 그룹화 - 이해하기 쉬운 설명 - 향후 Trust 관련 설정을 확장하기 위한 구조 개선 - 기존 일부 환경에서 탭이 작동하지 않거나 잘리는 문제도 수정됐다. ## 데스크톱 및 운영체제 지원 - macOS 데스크톱 알림이 운영체제의 네이티브 API를 사용하도록 변경됐다. - Focus 및 방해 금지 모드가 메시지 알림음에 반영된다. - 같은 채널의 여러 알림이 그룹으로 표시된다. - 데스크톱 메시지 검색에서 `from:me`, `mentions:me` 자동완성을 지원한다. - Linux에서 Soundshare와 Wayland 화면 공유를 지원한다. - Ubuntu 22 이상에서 화면 공유 영상과 오디오 문제가 줄어든다. - 좁은 화면에서 친구 요청 버튼이 불필요하게 `...`으로 축약되는 문제를 개선했다. - 채널 주제를 클릭할 때 모달이 두 개 겹쳐 열리는 문제를 수정했다. ## 모바일 및 UI 버그 수정 - Android에서 채널 이름을 만들 때 글자가 중복 표시되던 문제를 해결했다. - Android의 친구 삭제 확인 모달과 토스트가 다른 UI 뒤에 표시되던 문제를 수정했다. - 키보드가 텍스트 입력창 위에 표시되어 입력 내용을 가리던 문제를 해결했다. - iOS에서 앱이 과도하게 축소되거나 검색 화면의 뒤로 가기 제스처가 작동하지 않던 문제를 수정했다. - 모바일 검색 결과의 전체 결과 수가 잘못 표시되던 변경을 되돌렸다. - 모바일에서 서버 초대 링크를 편집할 수 있게 됐다. - DM 옵션 버튼이 사용자 이름과 겹치는 문제를 수정했다. - 채널 권한을 카테고리와 동기화한 뒤 팝업에서 빠져나오기 어려웠던 문제를 해결했다. - Mutual Friends/Servers 화면에서 공유 항목이 없을 때 로딩이 끝나지 않던 문제를 수정했다. - 사용자 지정 상태 기간이 제대로 적용되지 않던 문제를 해결했다. - 푸시 알림에 사용자의 닉네임이 포함되도록 개선했다. ## 채널, 포럼, 검색 관련 수정 - 포럼 채널 태그 편집 UI의 스타일 문제를 수정했다. - 삭제된 이모지 때문에 무효화된 이모지 포럼 태그도 편집할 수 있게 됐다. - 채널 생성 화면에서 이모지를 추가할 때 클라이언트가 충돌하던 문제를 해결했다. - 이모지 선택기의 서버 필터에 현재 서버가 표시되지 않던 문제를 수정했다. - iOS 채널 검색 입력창이 텍스트 입력 중 올바르게 스크롤되도록 개선했다. - 모바일 검색 결과에서 뒤로 가기 스와이프가 작동하지 않던 문제를 해결했다. - 채널 세부 설정을 수정할 수 없게 만드는 권한 관련 문제를 수정했다. ## 상점, 퀘스트 및 프로필 개선 - 태블릿에서 Shop 배너 이미지가 늘어나 보이던 문제를 수정했다. - Shop의 구매 완료 모달, 반응 이모지 선택기, 내부 여백 관련 시각적 문제를 조정했다. - Quests 완료 항목이 많은 사용자에게 Claimed Quests UI가 더 안정적으로 표시되도록 개선했다. - Nitro Credit 사용자의 프로필 꾸미기 기능을 수정했다. - Android에서 Space Evader 프로필 효과의 애니메이션 문제를 해결했다. - iOS에서 이모지를 탭한 뒤 애니메이션이 멈추던 문제를 수정했으며, 사용자 지정 상태에서도 애니메이션 이모지가 정상 작동하도록 했다. - Discover Servers 아이콘에 닫을 수 있는 배지가 잘못 표시되던 문제를 해결했다. 이번 패치는 새로운 대형 기능을 추가하기보다 앱 실행 성능, 대규모 알림 인프라, 미디어 처리, 운영체제 통합을 강화하고 플랫폼별 자잘하지만 반복적인 UI 문제를 폭넓게 제거한 업데이트다. Discord를 사용하는 일반 이용자는 Android 업데이트, macOS 네이티브 알림, DM 앱 실행 기능을 우선 확인할 만하다.

discord

디스코드 패치 노트 (새 탭에서 열림)

Discord의 2024년 11월 1일 패치 노트는 폴더블 기기와 멀티태스킹 지원, macOS 화면 공유 단축키, 웹 성능 개선을 주요 변화로 소개합니다. Discord.com의 평균 페이지 로딩 시간이 최대 4초 단축됐고, 데스크톱·모바일 전반에서 수많은 UI, 렌더링, 입력, 알림 관련 버그가 수정됐습니다. 이번 패치는 기능 추가보다는 다양한 플랫폼에서의 안정성·반응성·사용성 개선에 초점을 맞췄습니다. ## 폴더블·멀티태스킹 지원 강화 - 폴더블 기기에서 Discord의 화면 구성과 프로필 배너 렌더링이 개선됐습니다. - 모바일 앱의 크기나 화면 비율이 바뀌면 사이드카·분할 화면 등 상황에 맞는 보기 방식으로 자동 전환됩니다. - 향후 폴더블 기기별로 별도 대응하지 않아도 동작하도록 코드 기반을 개선했습니다. - 문제 발생 시 DiscordApp 커뮤니티의 버그 메가스레드나 고객지원 티켓을 통해 신고할 수 있습니다. ## 데스크톱·웹 성능 개선 - Windows, macOS, Linux의 Electron 버전을 e30에서 e32로 업데이트했습니다. - Discord.com의 페이지 로딩 시간이 사용자에 따라 평균 최대 4초 단축됐습니다. - 핵심 웹 성능 지표와 전반적인 반응성도 개선됐습니다. - 실행 중인 데스크톱 클라이언트가 있을 때 브라우저에서 친구 링크를 열면 클라이언트와 정상적으로 연동됩니다. - macOS 15 이상에서 “Toggle Screen Share” 키바인드를 설정할 수 있게 됐습니다. ## 프로필·서버 관리 UI 수정 - 큰 프로필 화면에서 사라졌던 메시지 보내기·친구 추가 버튼을 복구했습니다. - 프로필 배너 저장 후 확대 비율이 잘못 적용되던 문제를 해결했습니다. - 모바일에서 아바타 장식이 읽지 않은 메시지의 상태 표시와 겹치던 문제를 수정했습니다. - 모바일 프로필 입력란 선택 시 프로필이 아래로 밀리던 문제를 해결했습니다. - 프로필에서 Mod View를 여는 기능이 정상적으로 동작합니다. - Nitro 비사용자의 Profile Effect 변경 버튼이 사라지던 문제를 복구했습니다. - 프로필 장식 상품의 구매 버튼 문구를 더 정확하게 수정했습니다. - iOS의 프로필 “About Me” 영역에서 이모지 정렬 문제를 해결했습니다. - 간소화된 프로필에서 역할을 추가할 때 이미 보유한 역할이 목록에 나타나지 않도록 했습니다. - 역할이 없는 사용자에게 역할을 추가해도 역할 목록이 자동으로 접히지 않습니다. ## 채널·권한·알림 관련 수정 - 채널 설정에서 권한을 업데이트할 때 화면이 크게 깜빡이던 문제를 해결했습니다. - Slow Mode 설정을 초기화한 뒤 화면에 이전 상태가 남아 보이던 문제를 수정했습니다. - 모바일 채널 설정의 카테고리 선택기가 긴 카테고리 이름을 올바르게 처리합니다. - 모바일 하단 내비게이션 바가 드물게 표시되지 않던 문제를 해결했습니다. - 특정 상황에서 오프라인 상태인데도 API 호출을 반복하던 문제를 수정했습니다. - 모바일에서 DM에 잘못된 알림 설정이 표시되던 문제를 해결했습니다. - “Show Members in Channel List” 배너의 테마별 글자 색상을 수정했습니다. - 키바인드 화살표 아이콘의 테마 색상 문제를 해결했습니다. ## 채팅·스레드·메시지 기능 개선 - 채팅에서 이모지가 지나치게 크게 표시되던 문제를 수정했습니다. - 모바일 음성 메시지의 “Hold to record” 툴팁 애니메이션을 고쳤습니다. - 삭제된 메시지가 모바일 DM 미리보기에서 잠시 계속 나타나던 문제를 해결했습니다. - iOS에서 채널 간 초안이 잘못 유지되던 문제를 수정했습니다. - 답글 위의 메시지 미리보기에서 사용자 이름을 클릭해 프로필을 열 수 있습니다. - iOS에서 키보드가 닫힌 뒤 메시지 기록의 글자 크기가 잘못 변하던 문제를 해결했습니다. - 스레드를 만든 직후 너무 빠르게 이름을 변경하면 두 개가 생성되던 문제를 수정했습니다. - 스레드 생성 화면의 테마 적용 문제를 해결했습니다. - 채팅 애니메이션 중 스와이프 동작이 제대로 작동하지 않던 문제를 수정했습니다. - 모바일 음성 메시지 UI가 텍스트 입력란과 겹치던 문제를 해결했습니다. - iOS 메시지에서 이모지가 잘못 정렬되던 문제를 수정했습니다. ## 이모지·검색·쇼핑 및 기타 UI 수정 - 첫 시도부터 이모지 선택기가 원하는 카테고리로 이동하도록 수정했습니다. - 오버레이에서 사용자 지정 이모지가 표시되지 않던 문제를 해결했습니다. - 투표 UI에서 답변을 선택하고 복사할 수 있게 됐습니다. - 포럼 게시물의 React 버튼 크기를 수정했습니다. - X.com 게시물 임베드가 콘텐츠를 Markdown으로 잘못 처리하지 않도록 했습니다. - Shop에서 잘못된 카테고리 배너가 표시되거나 첫 클릭 시 페이지 하단으로 스크롤되는 문제를 해결했습니다. - 컬렉션 타일의 둥근 UI 요소가 정확한 원형으로 표시됩니다. - Nitro 선물 화면의 여백 문제를 수정했습니다. - 모바일 사용자 프로필의 Nitro 아이콘 위치와 크기를 조정했습니다. - Compact Mode에서 앱 명령어에 사용되는 “/” 아이콘의 정렬을 수정했습니다. - Shop이 열려 있을 때 채널·DM 목록 아래의 음소거 버튼을 눌러도 Shop이 스크롤되지 않습니다. - iOS에서 역할 추가 중 표현식 선택기가 잘못 확장되던 문제를 해결했습니다. - 봇 프로필의 “Add App” 버튼에 있는 플러스 아이콘 색상을 수정했습니다. 이번 업데이트는 Discord를 여러 기기에서 사용하는 사용자에게 특히 유용합니다. 폴더블·분할 화면·macOS 화면 공유 단축키를 사용하는 경우 최신 버전으로 업데이트하고, 모바일에서는 채팅·프로필·채널 설정과 관련된 기존 문제도 함께 개선됐는지 확인하는 것이 좋습니다.