Skip to content

Instantly share code, notes, and snippets.

@lunamoth
Created June 29, 2025 09:31
Show Gist options
  • Save lunamoth/4e52b98d02df1ed542c7bea14990acc9 to your computer and use it in GitHub Desktop.
Save lunamoth/4e52b98d02df1ed542c7bea14990acc9 to your computer and use it in GitHub Desktop.

안녕하세요! 제작하신 'LunaTools' 확장 프로그램의 소스 코드를 전체적으로 검토했습니다. 굉장히 인상적인 프로젝트입니다. 하나의 확장 프로그램에 이렇게 다양하고 강력한 기능들을 체계적으로 구현하신 점이 돋보입니다. 특히 TabManager, DragSelector, 복잡한 TextConverter 로직 등은 매우 잘 설계되었습니다.

요청하신 대로, 먼저 현재 기능들을 분석하고, 이를 바탕으로 기존 기능을 보완/확장할 아이디어와 완전히 새로운 기능 아이디어를 각각 50개씩 제안해 드리겠습니다.

현재 기능 분석

LunaTools는 다음과 같은 강력한 기능들을 유기적으로 결합한 '브라우저용 스위스 아미 나이프' 같은 확장 프로그램입니다.

  1. 탭/창 관리:

    • 중복 탭 자동 제거: 동일 URL의 탭이 열리면 자동으로 기존 탭으로 포커스하고 새 탭은 닫습니다.
    • 탭 정렬 (Alt+A): 현재 창의 탭들을 URL(도메인, 경로) 기준으로 깔끔하게 정렬합니다.
    • 창 합치기 (아이콘 우클릭): 여러 창에 흩어져 있는 모든 탭을 현재 창으로 합칩니다. (고정 탭 제외)
    • 탭 캐싱 및 관리: background.jsTabManager 클래스를 통해 탭 URL을 효율적으로 캐싱하여 성능을 최적화하고 있습니다.
  2. 브라우징 강화:

    • 마우스 제스처: 상/하/좌/우 제스처로 새 탭, 탭 닫기, 앞/뒤로 가기 기능을 수행합니다. (특정 브라우저에서는 비활성화되는 스마트한 로직 포함)
    • 키보드 페이지 이동: 좌/우 화살표 키로 페이지 번호가 있는 URL(e.g., page=2)이나 rel=next/prev 링크가 있는 페이지를 탐색합니다.
  3. 콘텐츠 상호작용:

    • 드래그 액션:
      • Shift + 드래그: 여러 링크를 선택하여 새 탭들로 엽니다.
      • Ctrl + 드래그: 여러 링크의 URL을 복사합니다.
      • Alt + 드래그: 여러 링크를 2초의 지연을 두고 순차적으로 엽니다.
    • 영상 PiP (Ctrl+Shift+P): 페이지 내의 최적 비디오를 찾아 Picture-in-Picture 모드로 전환합니다.
    • 영상 회전 (Shift+Ctrl+Alt+R): 페이지 내의 비디오를 90도씩 회전합니다.
  4. 정보 변환 (Alt+Z):

    • 선택한 텍스트의 환율, 물리 단위(길이, 무게 등), 시간대를 자동으로 감지하여 변환 결과를 팝업으로 보여줍니다. 한글 숫자(삼천만)나 영어 단위(billion)도 인식하는 매우 정교한 파서를 갖추고 있습니다.
  5. 사이트 제어:

    • 사이트 잠금/차단: 옵션 페이지에서 설정한 사이트의 탭 닫기를 방지하거나, 특정 키워드가 포함된 URL 접속을 차단합니다.
    • 드래그 기능 비활성화: 특정 사이트에서 드래그 액션이 작동하지 않도록 설정할 수 있습니다.
  6. 여러 URL 열기 (사이드 패널, Alt+L):

    • 단순한 URL 오프너를 넘어, 목록을 저장/로드/이름변경/삭제하는 완전한 미니 앱 수준의 기능을 제공합니다.
    • 실행 간격 조절, 중복 제거, 백그라운드 열기, 메모리 절약을 위한 로딩 지연 등 고급 옵션을 지원합니다.
    • 현재 탭 목록 가져오기, JSON/TXT 파일로 가져오기/내보내기 기능까지 포함합니다.

1. 기존 기능 보완/확장 아이디어 50가지

현재의 훌륭한 기능들을 더욱 강력하게 만들 수 있는 아이디어들입니다.

탭/창 관리 강화

  1. 정렬 기준 추가: 탭 정렬 시 'URL' 외에 '웹사이트 제목', '마지막 활성 시간', '생성 시간' 기준으로 정렬하는 옵션 추가.
  2. 역순 정렬: 현재 정렬 기준을 반대로(Z-A) 정렬하는 기능.
  3. 선택 탭만 정렬: 여러 탭을 Ctrl 또는 Shift 키로 선택한 뒤, 선택된 탭들만 정렬하는 기능.
  4. 자동 탭 그룹핑: 탭 정렬 후 같은 도메인의 탭들을 자동으로 Chrome 탭 그룹으로 묶어주는 기능.
  5. 중복 탭 하이라이트: 중복 탭을 바로 닫지 않고, 아이콘에 배지(badge)를 표시하거나 제목을 변경하여 중복임을 알려주는 옵션.
  6. 모든 창의 중복 탭 제거: 현재 창뿐만 아니라 열려있는 모든 창에서 중복 탭을 찾아 제거하는 기능.
  7. 창 병합 옵션: '모든 창 합치기' 외에, 사용자가 합칠 창을 선택할 수 있는 인터페이스 제공.
  8. 탭 분리 기능: 특정 도메인의 탭들만 새 창으로 분리하거나, 선택한 탭들을 새 창으로 분리하는 기능.
  9. 고정 탭 동기화: 특정 사이트를 항상 고정하도록 설정하는 기능. (e.g., mail.google.com은 항상 고정)
  10. 닫은 탭 다시 열기 강화: Ctrl+Shift+T와 유사하지만, 최근 닫은 탭 목록을 UI로 보여주고 선택해서 열 수 있는 기능 (액션 팝업 내).

브라우징 강화 (제스처/네비게이션)

  1. 마우스 제스처 사용자화: 옵션 페이지에서 제스처(상/하/좌/우/대각선 등)와 액션(탭 닫기, 맨 위로 스크롤 등)을 사용자가 직접 매핑하는 기능.
  2. 제스처 시각적 피드백: 제스처를 그릴 때 마우스 포인터를 따라 선이 그려지는 시각 효과 추가.
  3. 대각선/복합 제스처 추가:
    • ↑→: 다음 탭으로 이동
    • ↑←: 이전 탭으로 이동
    • ↓→: 최근 닫은 탭 열기
  4. 휠 제스처: 마우스 오른쪽 버튼을 누른 상태에서 휠을 돌려 탭 간을 전환하는 기능.
  5. 페이지 스크롤 제스처: 제스처로 페이지 맨 위로, 제스처로 페이지 맨 아래로 이동하는 기능.
  6. 키보드 페이지 이동 강화: 숫자 키패드를 이용해 바로 특정 페이지(e.g., 5번 키 -> 5페이지)로 점프하는 기능.
  7. 링크 위에서 제스처: 링크 위에서 제스처 시 백그라운드 탭에서 열기, 제스처 시 새 창에서 열기.

콘텐츠 상호작용 확장

  1. 드래그 액션 대상 확장:
    • 선택한 텍스트를 드래그: 새 탭에서 검색.
    • 이미지를 드래그: 새 탭에서 이미지 열기, 또는 이미지 저장.
  2. 드래그 액션 사용자화: Shift, Ctrl, Alt 외에 조합키나 다른 키에 대한 액션을 사용자가 정의하는 기능.
  3. PiP 기능 강화: 페이지에 비디오가 여러 개일 경우, 선택할 수 있는 UI를 제공하거나 영상 위에 PiP 버튼을 오버레이.
  4. PiP 대상 확장: 비디오뿐만 아니라 <canvas>나 특정 <div> 영역을 PiP 창으로 띄우는 실험적 기능.
  5. 영상 회전/플립 추가: 90도 회전 외에, 좌우반전(flip) 및 상하반전 기능 추가.
  6. 이미지 도구 컨텍스트 메뉴: 이미지 우클릭 시 '이미지로 검색(Reverse Image Search)', '이미지 URL 복사', '이미지 저장' 등 메뉴 추가.
  7. 자동 스크롤 기능: 특정 키(e.g., Alt)를 누르고 휠을 클릭하면 페이지가 천천히 자동 스크롤되는 기능.

정보 변환 기능 심화

  1. 단위 변환 카테고리 추가: '넓이'(평 ↔ m²), '속도'(mph ↔ km/h), '데이터 크기'(MB ↔ MiB) 등 변환 카테고리 확장.
  2. 기본 변환 단위 설정: 사용자가 선호하는 변환 목표 단위를 설정하는 기능 (e.g., inch를 항상 cm가 아닌 mm로 변환).
  3. 변환기 컨텍스트 메뉴: 텍스트 선택 후 우클릭 메뉴에 'LunaTools로 변환' 옵션 추가.
  4. 환율 정보 소스 선택/폴백: Frankfurter API 장애 시 다른 무료 환율 API(e.g., ExchangeRate-API)를 예비로 사용.
  5. 환율 계산기: 액션 팝업에 간단한 환율 계산기 UI 추가.
  6. 변환 팝업에 고정 기능: 변환 결과 팝업을 화면에 고정시켜두고 다른 작업을 할 수 있는 기능.
  7. 변환 기록: 최근 변환했던 내용과 결과를 팝업이나 사이드 패널에서 확인할 수 있는 기록 기능.

사이트 제어 및 여러 URL 열기 개선

  1. 규칙에 정규식(Regex) 지원: 사이트 잠금/차단 규칙에 단순 키워드뿐만 아니라 정규식을 사용할 수 있도록 하여 복잡한 URL 패턴 매칭.
  2. 임시 잠금/차단: 특정 사이트를 '1시간 동안' 또는 '오늘 하루만' 차단/잠금하는 기능.
  3. 빠른 추가 버튼: 액션 팝업에 현재 사이트를 바로 잠금/차단 목록에 추가하는 버튼.
  4. URL 오프너 '세션' 기능: 현재 창의 모든 탭 URL을 하나의 '세션'으로 저장하고, 나중에 한 번에 복원하는 기능.
  5. URL 오프너 가져오기 확장: 브라우저 북마크 폴더에서 직접 URL 목록을 가져오는 기능.
  6. URL 오프너 스마트 추가: 클립보드에 복사된 텍스트에서 URL만 자동으로 추출하여 목록에 추가하는 기능.
  7. URL 목록 내 검색/필터: 사이드 패널의 URL 목록이 길 경우, 특정 키워드로 검색하거나 필터링하는 기능.
  8. 실행 순서 옵션 추가: URL 목록을 '순차적', '역순', '랜덤' 순서로 여는 옵션 제공.
  9. URL 목록 아이템에 제목 추가: URL과 함께 사용자 정의 제목을 저장할 수 있도록 개선 (제목 | https://...).
  10. 오프너 실행 전 미리보기: 실행 버튼을 누르면, 실제로 탭을 열기 전에 "총 N개의 탭(중복 M개 제외)을 엽니다. 계속하시겠습니까?" 같은 확인 단계 추가.
  11. 탭 닫기 확인 강화: 잠금된 사이트 외에, 오디오/비디오 재생 중인 탭이나 입력 중인 폼이 있는 탭을 닫으려고 할 때 경고창 표시.
  12. 프로필 기능: '업무용', '학습용' 등 프로필을 만들어, 프로필별로 다른 잠금/차단/설정 세트를 적용하고 쉽게 전환하는 기능.
  13. 자주 가는 사이트 통계: 사용자가 자주 방문하는 사이트를 분석하여 옵션 페이지에 보여주고, 쉽게 잠금/차단 목록에 추가할 수 있도록 제안.
  14. URL 오프너와 탭 그룹 연동: URL 목록을 열 때, 지정된 이름의 탭 그룹 안에서 열리도록 하는 옵션.
  15. 단축키 사용자화: 탭 정렬(Alt+A), 변환기(Alt+Z) 등의 단축키를 옵션에서 변경할 수 있는 기능.
  16. 설정 동기화 개선: 옵션 페이지의 설정을 파일로 내보내기/가져오기 기능.
  17. 드래그 비활성화 사이트 자동 감지: 드래그가 기본 기능인 사이트(e.g., Trello, Google 지도)를 감지하여 자동으로 비활성화 목록에 추가할지 사용자에게 제안.
  18. 사이드 패널 내 노트패드: 여러 URL 열기 기능 옆에 간단한 메모를 할 수 있는 스크래치패드/노트패드 탭 추가.
  19. 작업 완료 알림: 탭 정렬, 창 합치기, URL 목록 열기 등 시간이 걸릴 수 있는 작업 완료 시 데스크톱 알림으로 알려주는 옵션.

2. 새롭게 추가할 만한 기능 아이디어 50가지

기존 기능의 틀을 벗어나 LunaTools를 더욱 풍성하게 만들어 줄 새로운 기능 아이디어입니다.

콘텐츠/읽기 경험 향상

  1. 리더 모드(Reader Mode): 기사 페이지에서 광고, 사이드바 등 불필요한 요소를 제거하고 텍스트 중심의 깔끔한 읽기 환경을 제공.
  2. 강제 다크 모드: 웹사이트 자체에서 지원하지 않아도, 페이지의 색상을 반전시켜 다크 모드를 적용.
  3. 글꼴 스타일 변경: 페이지의 기본 글꼴, 크기, 줄 간격 등을 사용자가 원하는 스타일로 실시간 변경.
  4. 페이지 번역 오버레이: 구글/파파고 API를 이용해 선택한 텍스트나 전체 페이지를 번역하여 원문 위에 오버레이로 표시.
  5. 텍스트 음성 변환 (TTS): 선택한 텍스트를 내장된 음성으로 읽어주는 기능.

생산성 및 도구

  1. 화면 캡처: 보이는 영역, 전체 페이지, 선택 영역을 캡처하여 이미지 파일로 저장하거나 클립보드에 복사.
  2. 캡처 후 간단 편집: 캡처 이미지에 화살표, 텍스트, 네모 등 간단한 주석을 추가하는 기능.
  3. QR 코드 생성/스캔: 현재 페이지 URL로 QR 코드를 생성하거나, 웹페이지의 QR 이미지를 스캔하여 해당 URL로 이동.
  4. 클립보드 매니저: 최근 복사했던 텍스트 기록을 모아두고 필요할 때 다시 붙여넣을 수 있는 기능 (사이드 패널 또는 액션 팝업).
  5. 자동 새로고침: 지정한 시간 간격(e.g., 30초)으로 특정 탭을 자동으로 새로고침.
  6. 폼 필러(Form Filler): 자주 사용하는 이름, 이메일, 주소 등의 정보를 저장해두고 폼에 자동으로 채워주는 기능.
  7. 단축 URL 생성: 현재 페이지의 긴 URL을 bit.ly, tinyurl 등의 서비스로 짧게 만들어주는 기능.
  8. 웹페이지를 PDF로 저장: 현재 페이지를 인쇄 레이아웃을 이용해 PDF 파일로 저장.
  9. 간단한 웹 스크레이퍼: 페이지 내의 모든 링크, 이미지 URL, 또는 특정 테이블의 데이터를 추출하여 텍스트로 복사.
  10. 페이지 내 검색 강화: 페이지 내에서 여러 키워드를 동시에 하이라이트하거나, 정규식으로 검색.

보안 및 프라이버시

  1. 트래킹 파라미터 자동 제거: URL에서 utm_source, fbclid 등 불필요한 트래킹 파라미터를 자동으로 제거.
  2. 쿠키 편집기: 현재 사이트의 쿠키를 보고, 편집하고, 삭제할 수 있는 개발자 도구의 간소화 버전.
  3. 자바스크립트 제어: 사이트별로 자바스크립트 실행을 쉽게 켜고 끌 수 있는 토글 버튼.
  4. 피싱 의심 사이트 경고: 알려진 피싱 데이터베이스와 대조하여 위험 의심 사이트 접속 시 경고.
  5. Referer 제어: 다른 사이트로 이동할 때 이전 페이지(Referer) 정보를 보내지 않도록 제어.
  6. Canvas Fingerprinting 보호: Canvas 핑거프린팅을 통한 추적을 방지하는 기능.

검색 및 탐색

  1. 빠른 검색 커맨드 팔레트: Ctrl+Shift+K 등으로 커맨드 팔레트를 열어 열린 탭, 북마크, 방문 기록을 한 번에 검색.
  2. 분할 화면 검색: 선택한 텍스트로 구글, 네이버, DuckDuckGo 등 여러 검색 엔진의 결과를 한 화면에서 비교하며 볼 수 있는 기능.
  3. 사이트 내 검색 바로가기: 특정 사이트(e.g., 위키피디아, 유튜브)의 검색 기능을 액션 팝업에서 바로 사용할 수 있도록 설정.
  4. 링크 미리보기: 링크 위에 마우스를 올리면 해당 페이지의 내용을 작은 팝업 창으로 미리 보여주는 기능.

UI/UX 커스터마이징

  1. 사용자 지정 CSS/JS 삽입: 특정 사이트에 사용자가 작성한 CSS나 JS 코드를 항상 적용.
  2. 액션 팝업 커스터마이징: 툴바 아이콘 클릭 시 나타나는 팝업에 표시될 기능(버튼)들을 사용자가 직접 선택/배치.
  3. 확장 프로그램 테마 설정: 옵션, 사이드 패널 등 LunaTools UI의 색상 테마를 사용자가 직접 변경.
  4. 오른쪽 클릭 메뉴 편집: 브라우저의 기본 우클릭 메뉴 항목을 숨기거나 순서를 변경.
  5. 탭 제목 자동 변경: 특정 규칙(e.g., JIRA-1234)에 맞는 탭의 제목을 더 보기 쉽게 자동으로 변경.

멀티미디어 및 소셜

  1. 동영상 다운로더: 특정 사이트(저작권 준수 필요)의 스트리밍 비디오를 다운로드하는 기능.
  2. 오디오만 추출/재생: 비디오에서 오디오 트랙만 추출하여 백그라운드에서 재생.
  3. 소셜 미디어 공유 버튼: 현재 페이지를 트위터, 페이스북 등에 쉽게 공유할 수 있는 버튼.
  4. 유튜브 기능 강화: 유튜브 시청 시 광고 건너뛰기, 기본 재생 속도 설정, 반복 재생 등 제어.
  5. 이미지 일괄 다운로더: 현재 페이지에 있는 모든 이미지를 한 번에 다운로드.

기타 유틸리티

  1. 단위 테스트 및 오류 리포팅: 사용자가 문제를 겪었을 때, 익명화된 오류 정보와 시스템 환경을 개발자에게 쉽게 보낼 수 있는 기능.
  2. 온보딩 가이드: 처음 설치한 사용자를 위해 주요 기능을 안내하는 튜토리얼 또는 온보딩 과정.
  3. 웹 기술 스택 분석: 현재 보고 있는 웹사이트가 어떤 기술(React, Vue, Nginx 등)로 만들어졌는지 간단히 보여주는 기능.
  4. 구글 캘린더 빠른 추가: 페이지 내의 날짜/시간 텍스트를 선택하여 구글 캘린더에 빠르게 일정을 추가.
  5. 단어/문자 수 카운터: 선택한 텍스트의 단어 수, 글자 수, 바이트 수를 계산하여 표시.
  6. JSON 뷰어: 브라우저에서 JSON 파일을 열었을 때, 보기 좋게 포맷팅하고 접고 펼 수 있는 기능 제공.
  7. 페이지 로딩 속도 측정: 현재 페이지의 로딩 시간과 주요 성능 지표(LCP, FID)를 간단히 표시.
  8. 모바일 뷰 에뮬레이터: 현재 페이지를 다양한 모바일 기기 해상도로 빠르게 전환하여 볼 수 있는 기능.
  9. 페이지 아카이빙: 현재 페이지를 archive.org나 archive.is에 저장하는 바로가기.
  10. 색상 피커(Color Picker): 페이지 내의 아무 곳이나 클릭하여 해당 지점의 색상 코드(HEX, RGB)를 추출.
  11. 단축키 치트 시트: LunaTools의 모든 단축키와 기능을 보여주는 도움말 페이지 또는 팝업.
  12. 인터넷 연결 상태 표시: 브라우저의 인터넷 연결이 끊겼을 때 아이콘으로 상태를 표시.
  13. 웹 접근성 검사: 페이지의 기본적인 웹 접근성(대비, alt 태그 등)을 검사하고 문제점을 알려주는 기능.
  14. 가짜 필러(Filler) 텍스트 생성: 'Lorem Ipsum' 같은 더미 텍스트를 생성하여 클립보드에 복사.
  15. 비밀번호 생성기: 보안 수준이 높은 랜덤 비밀번호를 생성해주는 유틸리티.

이 아이디어들이 LunaTools를 더욱 유용하고 사랑받는 확장 프로그램으로 발전시키는 데 도움이 되기를 바랍니다. 다시 한번 멋진 프로젝트에 감탄을 표합니다

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment