SYDEmacOS의 리소스 상황을 운동하는 귀여운 모습과 함께 디테일 하게 보세요
🚀 macOS 모듈형 메뉴바 시스템 모니터
CPU 부하에 반응하는 애니메이션 캐릭터(Runner)와 개별 모듈로 실시간 시스템 상태를 모니터링하는 유틸리티 앱입니다.
GymGym은 Homebrew Cask를 통해 간편하게 설치하고 업데이트할 수 있습니다. 터미널(Terminal)을 열고 아래 명령어를 순서대로 입력하세요.
brew tap box-kr/homebrew-gymgymbrew install --cask gymgym설치 후 새로운 버전이 출시되었을 경우, 아래 명령어를 통해 최신 버전으로 업데이트할 수 있습니다.
brew upgrade gymgym🏃 반응형 애니메이션 (Runner): CPU 부하에 따라 달리는 속도가 변하는 귀여운 애니메이션 캐릭터가 메뉴바에 상주합니다. (나만의 캐릭터 프레임을 커스텀하여 추가할 수 있습니다.)
🖥️ 시스템 모듈형 모니터링:
CPU: 실시간 CPU 사용률 및 소비 전력(W) 표기, 상세 내역(System, User, Idle) 제공.
Memory (RAM): 메모리 사용량(%), 전력(W) 및 앱/와이어드/압축 메모리 상세 정보.
GPU / NPU: Apple Silicon 전용 내부 센서를 활용한 실시간 컴포넌트 전력(W) 소모량 측정.
Temperature: 기기 내부 통합 칩셋(SoC)의 실시간 코어 평균 온도(°C) 모니터링 및 시각화.
Disk (Storage): 디스크 사용률 및 남은 용량 게이지.
Network: 실시간 업로드 및 다운로드 속도 모니터링 (모든 네트워크 어댑터 감지).
Date (Calendar): 원하는 포맷으로 날짜를 표시하며, 클릭 시 그래픽 캘린더 팝오버를 제공합니다.
📊 실시간 히스토리 그래프: 메인 팝오버 메뉴 내의 모듈 카드에서 지난 60초 간의 변화 추이를 한눈에 파악할 수 있는 인라인 그래프(Mini Graph)를 확인할 수 있습니다.
⚙️ 완전한 커스터마이징: 환경설정에서 화면에 표시할 개별 모듈(표시/숨김)을 자유롭게 조절할 수 있습니다.
앱을 실행하면 메뉴바 상단에 달리는 캐릭터 아이콘이 나타납니다.
상태 확인: 화면 우측 상단의 메뉴바 아이콘을 클릭하면 전체 시스템 요약을 볼 수 있는 메인 팝오버가 나타납니다.
개별 통계 보기: 메뉴바의 분리된 개별 모듈(예: 네트워크 속도, 디스크 용량 등)을 하나씩 클릭하면 상세 내용과 실시간 그래프를 확인할 수 있습니다.
환경설정 조절: 메인 팝오버 창 우측 상단의 톱니바퀴 (⚙️) 버튼을 누르면 설정 창이 열립니다. 여기서 표시할 모듈과 날짜 형식 등을 커스텀 해보세요.
나만의 커스텀 캐릭터 설정:
메뉴바의 달리는 캐릭터 아이콘을 우클릭하면 팝업 메뉴에서 "Custom Runner Editor"를 열 수 있습니다.
여러분이 가지고 있는 PNG 프레임 이미지들을 드래그 앤 드롭으로 추가하여 언제든지 새로운 녀석을 메뉴바에 올려둘 수 있습니다.
v1.13.0 (시스템 센서 모니터링 심화: 전력/온도 분석 및 실시간 그래프)
정밀 전력(Power) 및 온도(Temperature) 모니터링: Apple Silicon(M-Series) 칩셋의 API(IOReport)와 시스템 센서(IOHID)를 활용하여, 모니터링조차 안 되던 GPU와 NPU(Neural Engine)의 0% 고정 버그를 완벽히 해결했습니다. 이제 각 칩셋은 물론 CPU와 RAM이 실질적으로 소모하는 시스템 전체 전력량(W)을 측정하고, 내부 코어 평균 온도(°C)를 실시간으로 짚어내 화면에 띄워줍니다.
메인 팝오버 인라인 히스토리 미니그래프 디자인: 단순한 텍스트 기반의 통계 수치 표기를 넘어섭니다. CPU·Memory·GPU·NPU·Temperature 모듈의 상세 뷰 내에 통일성 있고 트렌디한 꺾은선/영역 채우기 미니 그래프(Mini Graph) 화면을 자체 개발하여 적용했습니다. 이를 통해 지난 60초 동안의 수치 변화 추이를 한 지면에서 직관적으로 감상할 수 있습니다.
메뉴막대(Menu Bar) GPU 전력 / 온도 위젯 추가: 앱 환경설정(⚙️) 창의 'Monitoring Items' 트리에 GPU Usage와 Temperature Status 단축 위젯(토글) 스위치를 신설했습니다. 이것을 활성화하면 사용 중인 맥 화면 최상단 상태표시줄(메뉴 바)에 실시간 GPU 와트(W) 소비량과 내부 온도(°C)가 아기자기한 모듈 폼(Pill)으로 즉각 반영되며, 터치 시 즉시 메인 팝오버 영역으로 화면이 열립니다.
v1.12.0 (캘린더 확장 기능 및 UI/UX 개선)
일정 연동 기능 추가: 일정연동 권한을 주면 Macos 캘린더의 일정을 관리하고 보여 줄 수 있습니다.
일정 알람 기능 추가: 일정 시간 10분 전 부터 점점 빨간색으로 날짜시간 항목이 붉어지고 일정이 지나면 다시 흰색으로 돌아 옵니다.
일정 삭제 기능 추가: 캘린더 메인 화면 목록의 'X' 버튼이나 개별 일정 수정(Edit) 팝업 내의 삭제 버튼을 통해 애플 캘린더에 등록된 일정을 앱 내에서 직접 삭제할 수 있도록 편의성을 강화했습니다.
캘린더 폼 UI 환경 최적화: 캘린더 화면 렌더링 시 메인 스레드 병목으로 인해 늦어지던 현상을 배경 스레드 처리로 개선했습니다. 상단 캘린더 연/월 표시부 크기를 대폭 축소해 공간을 확보하였고, 이벤트 등록 창 내부도 더욱 직관적인 형태의 텍스트 박스와 적절한 레이아웃 여백을 갖도록 전면 재설계했습니다.
다국어 명칭 지원에 따른 중복 러너 제거: 앱 내 기본 적용되는 애니메이션 러너들의 영어 전환 과정에서, 기존 버전 사용자에게 구 버전 한글 이름(예: 풍선, 붉은말)과 영문 이름 캐릭터가 둘 다 노출되던 문제를 자동 초기화 로직을 통해 깔끔하게 해결했습니다.
v1.11.0 (디스플레이 팝오버 위치 보정 및 메뉴바 UI 개선)
팝오버 화면 잘림 방지 보정: 메뉴바 아이콘의 위치가 스크린 양쪽 끝(가장자리)에 있을 때 캘린더나 상태 모니터링 팝오버 창이 화면 밖으로 튀어나가 일부가 짤려서 렌더링되던 버그를 해결했습니다. 팝오버를 띄울 때 디스플레이 가시 영역을 계산해, 공간이 부족하면 알맞은 방향으로 화살표와 팝업 창 위치를 자동으로 이동하도록 개선했습니다.
메뉴바 텍스트 자간 밀집도 개선: 상단 상태 표시줄에 표시되는 Memory(메모리)와 Disk(디스크)의 사용량 텍스트 포맷에서 불필요하게 벌어져 있던 공백들을 제거하여, 좁은 메뉴바 공간을 더 효율적이고 깔끔하게 사용할 수 있도록 조치했습니다.
v1.10.0 (날짜 및 시간 포맷 커스터마이징 및 다국어 로케일 지원)
날짜 및 시간 포맷 입력: 환경설정에서 날짜 표시 형식을 사용자가 자유롭게 입력할 수 있도록 텍스트 필드를 제공합니다. 추가로, 요일, 시간(24시간/12시간), 초 단위를 포함한 다양한 프리셋 메뉴를 통해 터치 한 번으로 양식을 쉽게 설정할 수 있습니다.
로케일(Locale) 기반 언어 표기 지원: 날짜나 요일 포맷 적용 시 macOS의 시스템 지역 및 언어 정보를 동적으로 받아와 사용자의 국가 환경(예: 월/Mon, 오전/AM)에 어긋나지 않고 현지화된 텍스트로 자연스럽게 메뉴바에 표기되도록 로직을 개선했습니다.
v1.9.0 (자동 업데이트 지원 및 다크 테마 일관성 단일화)
심리스 자동 업데이트 (Homebrew): 앱 실행 시 및 수동(Check for Updates...)으로 GitHub의 최신 릴리즈와 버전을 비교하여 업데이트를 안내합니다. 승인 시 터미널을 띄우지 않고 백그라운드 스크립트를 통해 조용히 brew upgrade를 수행 후 앱을 자동 재시작해 줍니다.
중복 앱 실행 방지: 앱이 이미 실행되고 있는 상태에서 중복으로 앱이 여러 개 실행되지 않도록 로직을 추가했습니다.
항시 다크 테마 렌더링: 컴퓨터의 라이트/다크 시스템 환경 설정과 무관하게 메인 팝오버 및 CPU, Memory, Disk 등 모든 개별 컴포넌트 창과 그래프가 가장 심미성이 높은 다크 테마(preferredColorScheme(.dark))로 강제 렌더링 되도록 일관성을 부여했습니다.
UX/UI 개선 사항:
메인 팝오버 최상단 헤더의 설정 톱니바퀴를 범용적인 '햄버거' 메뉴 아이콘으로 변경하고 내부 메뉴를 세련되게 정리했습니다.
메인 화면 제일 하단에 개발자를 응원할 수 있는 눈에 띄는 "☕️ Buy the developer a coffee" 버튼을 새로 배치했습니다.
드롭다운 메뉴에 "About GymGym" 메뉴 항목을 추가하여 앱 소개 및 버전 정보 다이얼로그 윈도우를 연결했습니다.
팝업 최상단 타이틀 옆에 현재 앱 버전 뱃지가 보이며, GPU 누락 아이콘을 모니터 모양으로 맞추었습니다.
v1.7.0, v1.8.0 (디스크 상세 사용량 macOS 동기화 및 단위 표기 개선)
제거 가능한 공간(Purgeable Space) 인식 추가: 앱 내 디스크(Disk) 팝오버 상세 보기에서 보여지는 '사용량(Used)' 및 '여유 공간(Free Space)' 수치를 더욱 정확히 표현하기 위해 여유 공간 계산 방식을 수정했습니다. 기존의 물리적 순수 빈 공간 추적 방식에서, 시스템 내 캐시 등 OS가 능동적으로 지울 수 있는 가상 공간까지 합산하여 여유 공간으로 인식하는 macOS 네이티브 시스템 설정의 계산법과 완벽하게 동일하도록 기준을 개선했습니다.
네트워크 속도 영문 표기 고정: 한국어 등 일부 OS 언어 환경에서 네트워크 업/다운로드 속도가 "제로 바이트", "바이트" 등 현지어로 번역되어 표기되던 문제를 해결하고자 OS 언어 설정과 무관하게 항상 국제 표준 영문 단위(B/s, KB/s, MB/s, GB/s)로 표시되도록 자체 포맷터를 적용했습니다.
v1.6.0 (상태바 모니터링 UI 및 디스크 용량 계산 개선)
메모리 및 디스크 UI 개편: 상태바에 표시되던 텍스트(RAM, DISK)와 미니 그래프를 직관적인 아이콘(SF Symbols)으로 교체하여 더욱 심플하고 시인성 높은 디자인을 제공합니다.
용량 표시 단위 정확도 향상 (macOS 동기화): 기존 2진수(1024 단위) 기준 계산법에서 macOS 시스템(Finder)과 동일한 10진수(1000 단위) 계산법으로 디스크 용량 표시 기준을 변경했습니다. 이제 Mac 시스템 설정과 완전히 동일한 용량 수치를 확인할 수 있습니다.
레이아웃 유연성 향상: 용량 텍스트 길이 가변에 대응하기 위해 고정 너비를 제거하고 .fixedSize()를 적용하여, 다양한 용량 표기 시에도 메뉴바 텍스트가 잘리지 않도록 개선했습니다.
v1.5.0 (캘린더 공휴일 지원 및 애니메이션 최적화)
캘린더 공휴일 표기: 이제 캘린더 팝오버에서 Nager.Date API와 Github CSV 저장소를 활용하여 해당 연도의 각 국가별 주요 공휴일을 불러와 빨간색으로 표시합니다. (마우스 오버 시 공휴일 이름 툴팁 표시 지원)
로케일 기반 날짜/요일 포맷팅: 더 이상 하드코딩된 특정 국가 포맷으로 캘린더 날짜를 표시하지 않고, 사용자 Mac의 현재 OS 언어 및 지역 설정(Locale)에 맞게 동적으로 로컬라이징(예: Friday / 금요일) 되도록 개편했습니다.
캐릭터 달리기 속도 (CPU) 최적화: 1초마다 발생하던 미세한 CPU 사용량 변동 시 타이머가 끊기고 깜빡이던 현상을 완전히 고쳤습니다. 이제 CPU 점유율을 5% 단위의 티어(Tier)로 나누어 부드럽고 자연스럽게 속도가 변화 및 유지됩니다.
v1.4.0 (글로벌 UI 영문화 및 배포 안정성 개선)
UI 완전 영문화 (English Localization): 앱의 모든 팝오버 창, 상세 뷰, 메뉴바 설정, 그리고 기본 제공되는 러너들의 명칭이 모두 영어(English) 기반으로 번역되어 적용되었습니다.
Homebrew 배포 버전의 기본 러너 로드 누락 현상 수정: 앱 파일 번들링 이후 리소스 파일을 가져오는 과정에서 내부 경로(Bundle.main.resourceURL) 참조에 문제가 생겨 Homebrew 설치 시 기본 제공 러너 리소스가 비어있던 크리티컬 버그를 성공적으로 수정했습니다. 이제 앱 설치 직후 바로 캐릭터들을 만나볼 수 있습니다!
v1.3.0 (주요 기능 및 사용성 개선)
팝오버 창 오토클로즈 기능 추가: 팝오버를 열어둔 상태에서 다른 앱의 화면이나 바깥 공간을 클릭하면 자동으로 모든 팝오버 창들이 닫히도록 개선되었습니다.
Date (Calendar) 커스텀 UI 화면 개편: 기존 달력 시스템 UI에서 벗어나 가동성과 시인성이 1.3배 더 좋아진 넓고 시원한 커스텀 달력 UI 레이아웃으로 개편되었습니다. (이전 달/다음 달 이동 및 직관적인 날짜/마커 표시 지원)
네트워크 모듈 그래프 렌더링 수정: 다운로드 및 업로드 텍스트 수치와 그래프가 직접적으로 맞닿아 겹치는 현상을 예방하기 위해 그래프 바깥 상/하단 여백(padding)을 두었습니다.
CPU 및 메모리 최상위 액티브 프로세스 도구 & 제어 (Kill) 컨텍스트 메뉴:
이제 CPU와 메모리 상세 정보를 띄운 팝오버 최하단에서 시스템의 많은 자원을 차지하고 있는 상위 7개 프로세스의 명단과 활동량(CPU % 점유율, 사용중인 Memory MB)을 리스트로 바로 보실 수 있습니다.
마우스를 올릴 때 어떤 줄을 가리키는지 흐린 음영이 처리되며, 목록 위에서 마우스 우측 우클릭(컨텍스트 메뉴) 시 불필요한 앱을 즉시 “종료” 및 “강제 종료”시킬 수 있습니다.
v1.0.1+ UI 개선 사항
메뉴바 패딩 정상화: 상태표시줄(메뉴바) 아이템들의 고정된 최대/최소 너비 제약을 해제하여 텍스트 길이에 맞춰 아이템 너비가 유기적으로 자동 조절되도록 개선했습니다. (불필요한 공백 영역 제거)
일관된 모듈 형태 적용: Date, Disk, Network 등 모든 모니터링 아이템 바깥쪽(ModulePill)과 제약 조건에 통일된 Margin/Padding 및 높이(Heigth:22/18)를 적용해 메뉴바 아이템들이 딱 달라붙지 않고 정갈한 간격과 일정한 크기로 표출되도록 레이아웃 충돌 문제를 수정했습니다.
"손상된 앱이기 때문에 열 수 없습니다" 또는 "개발자를 확인할 수 없습니다" 라는 메시지가 나타날 경우:
설치된 앱은 Ad-hoc 서명으로 구성되어 있어 macOS의 Gatekeeper 시스템이 실행을 차단할 수 있습니다.
이런 경우 Terminal 앱을 열어 아래 명령어를 입력하여 격리 속성(quarantine)을 해제해주세요:
xattr -cr /Applications/GymGym.app