요약
Astroterm은 별과 행성, 별자리의 위치를 문자로 그려 주는 터미널용 천문관 프로그램입니다.
GitHub 사용자 da-luce가 C로 만들어 MIT 라이선스로 공개한 프로젝트입니다. 날짜와 시간, 관측 위치를 지정하면 그때 그곳의 하늘을 터미널 창에 보여 줍니다.
왜 중요한가
- 그래픽 환경 없이 문자만으로 그리기 때문에 프로그램이 가볍고 빠릅니다.
- 실제 천문 자료로 계산하므로, 터미널 그래픽이 허용하는 범위에서 천체 위치를 정확하게 보여 줍니다.
- 리눅스, 맥, 윈도용 실행 파일과 Homebrew 같은 패키지 관리자를 지원해 바로 써 볼 수 있습니다.
핵심 내용
- 시각과 위치를 바꿔 가며 과거, 현재, 미래의 하늘을 볼 수 있고, 위치는 위경도나 도시 이름으로 정합니다.
- 달의 위상을 실시간에 가깝게 보여 주고, 별자리 선과 방위 격자(방향을 읽는 눈금선)도 그립니다.
- 별 자료는 Yale Bright Star Catalog에서, 행성 궤도 요소(궤도를 정하는 값)는 NASA JPL 자료에서 가져옵니다.
- 유니코드 문자, 점자 문자, 색상 옵션을 켤 수 있습니다.
- 등급(별의 밝기 단위) 기준을 옮겨 표시할 별의 수를 조절하며, 기본값은 5.0입니다.
HN 반응
- 쓸모보다 만드는 재미로 볼 만하다는 호평이 많았지만, 터미널과 맞지 않는 주제이고 오리온자리조차 알아보기 어려워 Stellarium을 대신하기엔 부족하다는 반론도 나왔습니다.
- 집에서 보이는 하늘을 화면 보호기로 띄워 쓴다는 경험담이 호응을 얻었고, 한 프레임만 출력하는 옵션이 없어 로그인 인사말로는 못 쓴다는 지적도 있었습니다.
스크린세이버 아이디어가 꽤 괜찮네요. 지금 사는 곳의 하늘을 보여 주고 밝은 별이나 행성 몇 개에 이름표를 붙여 주는 거죠. 그러면 밖에 나갔을 때 실제로 찾아볼 거리가 생기잖아요.
점성술 CPU 스케줄러(Astrological CPU Scheduler)랑 같이 쓰면 딱이겠네요: https://github.com/zampierilucas/scx_horoscope
주제와는 아주, 아주 먼 얘기지만, 80년대에 나온 카시오의 코스모 페이즈(Cosmo Phase) 시계(CGW-50)가 생각났습니다 [0]
별과 행성을 손끝에 두고 다닌다니...
[0] https://www.casio.com/us/watches/50th/Heritage/1980s/
솔직히 카시오는 가진 힘을 가장 덜 활용하는 브랜드 중 하나라고 생각해요. 쌓아 둔 호감이 정말 많은데 말이죠. 견학해 보고 싶은 몇 안 되는 회사 중 하나예요.
와, 방금 이베이를 확인해 봤는데 TM-100이 몇천 달러에 팔리고 있네요.
쓸모가 있든 없든, 창의력의 수준이 인상적이에요.
이런 프로젝트는 터미널 성능을 스트레스 테스트하는 데도 아주 좋다고 생각합니다.
맞아요. 모든 프로젝트가 현실 세계의 문제를 풀어야 하는 건 아니죠.
웃음이 났네요. 컴퓨터 앞에서 너무 오래 지내다 보면 현실 세계의 문제가 뭔지 잊어버리기 쉽죠.
이렇게 깔끔하고 읽기 좋은 README를 보니 참 신선하네요. 바이브 코더 여러분, 잘 적어 두세요.
메모리 하나 저장 중...
제안 잘 적어 뒀어요. 다음에는 README를 da-luce/astroterm README의 말투로 쓸게요.
저는 CONTRIBUTING.md와 함께 프로젝트마다 WRITING.md도 넣어 두고 있습니다. 완벽하냐고요? 아니요. 하지만 README, PR 설명, 그 밖의 문서가 흔해 빠진 AI 쓰레기보다 훨씬 읽기 좋아지는 건 확실합니다. 이후 손보는 일이 대개 별로 힘들지 않을 정도로요.
링크를 공유해 주실 수 있을까요? 내키지 않으시면 괜찮습니다. 제가 정말 애먹고 있는 부분이라, 다른 분들은 어떻게 풀고 있는지 보고 싶어서요.
제가 보기엔 꽤 평범한데요. 구체적으로 어떤 점이 마음에 드셨어요?
(README 쓰는 게 힘든 사람으로서 궁금해서요)
원래 댓글 쓴 사람은 아니지만, 도움이 될 만한 생각이 있어서 적습니다. 이런 건 꽤 주관적이라 이게 좋은 예라는 데 동의하지 않는 분도, 제가 하려는 말에 동의하지 않는 분도 있을 테니 어느 정도 에누리해서 들어 주세요…
README는 '꽤 평범한' 수준을 목표로 삼는 게 맞다고 생각합니다. 자세하면서도 간결한 적절한 균형, 전형적인 레시피 페이지처럼 불필요한 군말로 잔뜩 치장하지 않는 것, 그리고 '이게 무엇인가', '주요 기능', '구하는 법/설치법', '기능 상세 / 사용 예' 같은 단순한 구조가 좋습니다.
물론 프로젝트의 규모와 범위가 커질수록 그 균형을 찾기는 어려워집니다. 모든 걸 README에 담지 말고 확장 문서로 빼내야 하니 무엇을 쳐낼지 신중하게 판단해야 하죠. 이 정도 크기라면 표현과 배치만 잘하면 전부 적정 균형에 가깝습니다. 더 큰 프로젝트라면 README는 무엇인지, 어떻게 구하는지, 다른 문서가 어디 있는지를 요약한 것이어야 합니다.
이 README가 AI가 쓴 것이라 해도(그런 징후는 있지만, 사람이 오래전부터 해 온 것들이라 AI가 따라 하는 것일 뿐입니다) 그냥 던져 놓은 게 아니라 사람이 손을 본 것입니다.
> README 쓰는 게 힘든 사람으로서
그렇게까지 힘들다면 너무 깊이 고민하거나 지나치게 많은 세부 내용을 욱여넣으려는 건 아닐까요?
솔직히 정반대 문제예요. 저는 꽤 복잡한 프로젝트를 유지보수하다 보니 대부분을 빼고 README 바깥의 문서로 링크를 거는 쪽인데, 프로젝트를 제대로 알리지 못한다는 소리를 자주 듣거든요.
그래도 제가 너무 깊이 생각하고 있는 걸 수도 있다는 말씀은 맞네요.
현재 달의 위상을 ASCII로 보여 주는
phoon이 생각나네요https://www.acme.com/software/phoon/
brew install phoon솔직히 말해야겠네요. 이 애플리케이션은 TUI와 어울리지 않는 것 같아요. 저는 TUI를 전반적으로 좋아하지만, 저라면 다른 방향으로 갔을 거예요.
'왜?' 프로젝트라기보다는 '안 될 건 뭐야?' 프로젝트처럼 보이는데요.
정말 멋지네요. Omarchy의 기본 스크린세이버로 설정해 봤어요. 우리 집에서 보이는 하늘을 그대로 따라가요. 끝내줘요!
멋지네요! 어떻게 하셨어요?
잘 만드셨네요. 국제우주정거장(ISS)이나 Starlink 같은 다른 우주 물체도 보여 줄 계획이 있나요? 브라우저에서 위성을 추적하다가 겪은 일인데, CelesTrak의 TLE 파일에는 여섯 자리 카탈로그 번호를 가진 위성이 빠져 있어요. 최근 발사된 위성은 대부분 여기 해당해서 새 Starlink 위성이 아예 안 나오더라고요. 그쪽 CSV 파일에는 들어 있어요.
소셜 네트워크 버전으로 비슷한 콘셉트인 곳: gno.world
괜찮은 인자들이에요:
astroterm -cub --city=Seattle -t 2 -l 2
터미널에서 동적 motd로 설정할 수 있을까요?
그대로는 안 돼요. 옵션 목록을 보면 프레임 하나만 출력하고 종료하라고 시키는 방법이 없는 것 같거든요. 아마 추가하기 쉬운 옵션일 거예요.
ASCII로 그려 낸 화면이 꽤 괜찮네요.
첫 문장을 읽고 나니, 일부 Rust 사람들이 "Rust로 작성", "안전" 같은 문구를 단 버전이 나올 거라는 기대에 군침을 멈추지 못하는 모습이 자꾸 떠올라요. ~
그렇지 않아요. 예시 이미지 하나에 카펠라, 리겔, 시리우스가 뚜렷이 표시돼 있긴 해요. 그런데도 북두칠성 다음으로 알아보기 쉬운 별자리일 오리온조차 찾을 수가 없어요.
터미널용 Stellarium 대안이 있다면 정말 좋겠지만, 이건 아니에요.