아카이브사이트맵
© 2026 Rayon. All rights reserved.
DevDay
아티클랭킹스페이스채용
데브투 favicon데브투

peektea, 터미널에서 파일 미리보기 지원

by DD
2026-06-03
1개월 전
조회수 34

peektea는 터미널 기반 TUI 개발 프레임워크인 Bubble Tea를 활용하여 개발됨

분할 화면(Split-pane) 기능을 통해 파일 탐색과 내용 미리보기를 동시에 제공

이미지 파일 미리보기를 위해 chafa 도구와 연동하여 터미널 내 렌더링 지원

바이너리 파일은 텍스트 노이즈 대신 구분자 표시로 처리

Bubble Tea의 비동기 처리 모델 (tea.Cmd)

peektea는 Bubble Tea의 `tea.Cmd`를 활용하여 터미널 사용자 인터페이스(TUI)의 응답성을 유지함. 파일 로딩이나 이미지 렌더링과 같이 시간이 소요되는 작업은 메인 루프 외부에서 비동기적으로 실행되며, 완료 시 `previewMsg`를 통해 결과를 전달받음. 이를 통해 사용자는 파일 탐색을 계속하면서도 백그라운드에서 미리보기 로딩을 처리할 수 있어 전체적인 사용자 경험(User Experience)이 향상됨.

chafa를 이용한 터미널 이미지 렌더링

peektea는 chafa라는 터미널 이미지 뷰어를 사용하여 이미지 파일을 터미널 내에서 직접 렌더링함. chafa는 유니코드 문자(Unicode Characters)와 색상을 이용해 이미지를 표현하며, `--size` 옵션을 통해 지정된 패널 크기에 맞춰 이미지를 조정함. chafa가 설치되지 않은 경우, 사용자에게 설치를 안내하는 메시지를 표시하여 오류 발생 시에도 안정적인 사용자 경험을 제공함.

바이너리 파일 자동 감지 및 처리

텍스트 파일 미리보기 시 바이너리 파일이 잘못 로드되어 노이즈가 발생하는 것을 방지하기 위해, peektea는 파일의 처음 512바이트 내 널(Null) 바이트 존재 여부를 확인하는 휴리스틱을 사용함. 이는 `git diff`와 같은 도구에서 사용하는 표준적인 방식임. 바이너리 파일로 감지되면, 실제 내용 대신 `[binary file]`이라는 메시지를 표시하여 사용자에게 명확한 정보를 전달함.

동적 패널 크기 조절 및 UI 적응

peektea는 Bubble Tea의 `tea.WindowSizeMsg`를 통해 터미널 크기 변경을 감지하고, 이에 맞춰 좌측 파일 탐색 패널과 우측 미리보기 패널의 크기를 동적으로 조절함. 좌측 패널은 최소 너비(Minimum Width) 50자를 유지하면서 현재 디렉토리 내 가장 긴 파일 이름을 수용하도록 확장되며, 나머지 공간은 미리보기 패널이 차지함. 이러한 적응형 레이아웃(Adaptive Layout)은 다양한 터미널 환경에서 일관된 사용성을 보장함.

git-lrc: 커밋 단위 AI 코드 리뷰

본문에서 언급된 git-lrc는 마이크로 AI 코드 리뷰어로, 커밋 시점에 작동하여 코드 변경 사항을 분석함. AI가 코드를 빠르게 작성하는 장점 이면에 발생할 수 있는 로직 변경, 버그 유입 등의 문제를 프로덕션 환경에 배포되기 전에 미리 감지하는 것을 목표로 함. 60초 설정으로 간편하게 도입 가능하며, 무료 및 오픈 소스로 제공되어 개발자들의 피드백을 받고 있음.

peektea opens a second eye 👀 side-by-side file previews
중급
기술
Bubble Tea
Go
chafa
Backend
원문 읽기
원문 읽기

댓글 0

첫 번째 댓글을 남겨보세요!

관련 추천 글

CodeQL 점진적 분석으로 C/C++, Go 코드 분석 속도 UP!

깃헙 로고

Go 언어, 최신 CPU 기능 활용 시 성능은 얼마나 향상될까?

랍스타즈 로고

Confluence를 Markdown으로? Go CLI 도구로 해결!

레딧 로고

TypeScript 7.0 Beta, Go 기반으로 컴파일 속도 10배 향상!

랍스타즈 로고

TypeScript 7.0 Beta, Go 기반 컴파일러로 10배 빨라진 속도!

레딧 로고

Rust 문법 + Go 런타임 = Lisette, 개발자들의 평가는?

랍스타즈 로고
데브투 favicon데브투
중급
기술
Bubble Tea
Go
chafa
Backend

관련 추천 글

CodeQL 점진적 분석으로 C/C++, Go 코드 분석 속도 UP!

깃헙 로고

Go 언어, 최신 CPU 기능 활용 시 성능은 얼마나 향상될까?

랍스타즈 로고

Confluence를 Markdown으로? Go CLI 도구로 해결!

레딧 로고