
LinKHU
경희대학교 웹서비스 117개를 클릭 한 번으로 여는 브라우저 확장
운영 중Chrome 설치 480건
AS-IS → TO-BE
AS-IS
- 북마크 아이콘이 전부 같은 학교 로고
- 이름을 정리해도 결국 글자를 읽어야 함
- 학과·단과대 주소는 모아둘 곳도 마땅치 않음
TO-BE
- 서비스마다 구분되는 아이콘으로 눈에 바로 들어옴
- 검색·단축키·숫자키로 키보드만으로 이동
- 117개를 담고 쓸 것만 골라 순서 지정
왜 만들었나
교내 사이트는 북마크로 관리하기가 유독 나쁩니다. 인포21·e-Campus·수강신청·도서관에 단과대와 학과 사이트까지 더하면 폴더 하나가 가득 차는데, 북마크에 붙는 아이콘이 전부 같은 경희대 로고입니다. 전부 같은 학교 도메인이니 favicon도 같습니다.
그래서 아이콘이 있어도 아무 구실을 못 합니다. 이름을 아무리 정리해 둬도 결국 글자를 하나씩 읽어서 골라야 합니다. 학과 사이트는 주소를 알아도 어디 적어 둘 곳조차 마땅치 않고요.
문제는 목록이 길다는 것이 아니라 아이콘이 정보를 전혀 담고 있지 않다는 것이었습니다. 그래서 서비스마다 구분되는 아이콘을 붙여, 눈으로 한 번에 찾고 클릭 한 번에 여는 확장을 만들었습니다.

교내 공통 서비스부터 단과대·학과까지 117개를 지원하고, 설정에서 자기가 쓰는 것만 골라 담고 드래그로 순서를 바꿉니다.
Chrome 웹스토어 · 네이버 웨일 스토어 · Firefox 애드온 세 곳에 배포돼 있습니다.

배포·운영 성과
Chrome 웹 스토어 설치 480건, 주간 사용자 지표 최고 132명을 기록했습니다. Chrome 개발자 콘솔의 CSV를 2025년 9월 12일~2026년 9월 11일 기준으로 확인했으며, 실제 데이터는 2026년 2월 5일부터 발생합니다. 웨일·Firefox 수치는 포함하지 않았습니다.
| 지표 | 확인한 값 |
|---|---|
| 설치 | 480건 |
| 주간 사용자 지표 최고치 | 132명 · 2026년 9월 7일 |
| 주간 사용자 지표 최신값 | 130명 · 2026년 9월 11일 |
| 제거 | 27건 · 2026년 9월 10일까지 |
23월에 설치 198건을 확보한 뒤에도 46월 171건, 78월 98건, 9월 111일 13건으로 신규 설치가 이어졌습니다. 월별 주간 사용자 지표 최고치는 48월 122128명 수준을 유지하다가 9월 132명으로 갱신됐습니다. 출시 초반 이후에도 설치와 사용자 지표를 확인하며 수개월간 운영한 경험이 이 프로젝트의 성과입니다.
설치 480건은 고유 사용자 480명을 뜻하지 않으며, 설치·제거 건수로 유지율을 계산하지 않았습니다. 주간 사용자 지표도 바로가기 기능을 매주 사용한 사람 수로 단정할 수 없습니다. 9월 9~10일의 사용자 값이 0이었다가 11일 130명으로 돌아오는 구간은 집계 이상 가능성이 있어, 이를 포함한 평균이나 성장률은 성과로 제시하지 않았습니다.
웨일·Firefox로 배포 채널 확장
웨일 스토어에서는 2026년 9월 13일 확인 기준 다운로드 27건을 기록했습니다. Chrome 설치 480건과 합산하지 않은 별도 지표로, 추가 배포 채널을 확보한 성과입니다. Firefox도 지원하며, 이용 규모보다는 세 브라우저의 요구사항에 맞춰 배포·운영한 경험에 의미를 두었습니다.
스토어 유입의 절반은 에브리타임에서
스토어 GA4의 2026년 1월 1일~9월 13일 보고서에서는 방문 사용자 502명, 세션 590회를 확인했습니다. 그중 **에브리타임 경유 방문은 295세션으로 전체의 50%**였습니다. Google 자연검색은 51세션, GitHub는 28세션으로, 타깃 사용자가 모인 대학 커뮤니티가 가장 큰 유입 경로였습니다.
같은 기간 install 이벤트는 139건, 해당 이벤트가 있는 사용자는 129명이었습니다. GA4에는 보고서 필터링 경고가 있고 개발자 콘솔과 측정 범위도 달라, 설치 480건과 합산하거나 전체 방문자의 설치 전환율을 계산하지 않았습니다. 에브리타임 경유 방문 역시 해당 경로의 설치 건수를 뜻하지 않습니다.
랜딩페이지에서 스토어 이동까지 확인
별도 랜딩페이지의 GA4에서도 같은 기간 방문 사용자 68명, 세션 75회를 확인했습니다. 에브리타임 관련 소스를 합치면 40세션으로 53.3%였습니다. Chrome 스토어 이동은 13회·12명, Whale과 Firefox 스토어 이동은 각각 2회·2명으로 기록됐습니다.
이 값은 설치 완료가 아닌 스토어 링크 클릭입니다. 스토어별 클릭 사용자와 랜딩페이지·스토어 방문자는 서로 겹칠 수 있어 합산하지 않았습니다. 또한 테스트 유입 1세션이 포함된 작은 표본이므로 해석에 주의가 필요합니다.
유입 출처가 everytime과 everytime.kr로 나뉘는 등 UTM 표기가 섞여 있어, 다음 측정에서는 표기를 통일하고 테스트 트래픽을 분리할 필요가 있습니다. 현재 확인한 범위는 설치·스토어 방문·랜딩페이지 행동까지이며, 검색·바로가기 클릭·설정 변경 같은 확장 내부 기능의 이용 빈도는 별도 측정이 필요합니다.
손이 키보드를 떠나지 않게
아이콘으로 눈은 빨라졌는데 손이 느리면 소용이 없습니다. 자주 쓰는 사람일수록 마우스로 팝업을 열고 아이콘을 겨냥하는 게 부담이라, 키보드만으로 끝나는 경로를 따로 뒀습니다.
| 키 | 동작 |
|---|---|
Ctrl/Cmd + Shift + L |
확장 열기 |
/ |
검색창으로 이동 |
Enter |
첫 번째 결과 열기 |
1~9 |
해당 순서 항목 바로 열기 |
검색은 이름뿐 아니라 ID와 카테고리로도 걸리고, 이름이 일치하는 것을 먼저 보여줍니다. 117개를 다 담아 두고 검색으로 꺼내 쓰는 방식이 가능해진 건 이 때문입니다.
만들면서 정한 것
서비스 목록을 코드가 아니라 데이터로
117개를 화면 코드에 직접 넣지 않고 데이터로 분리했습니다. 학교가 URL을 바꾸거나 서비스가 늘어도 데이터만 고치면 되고, 화면 로직은 건드리지 않습니다.
링크가 죽었는지 CI가 검사한다
교내 서비스는 학교 사정으로 주소가 조용히 바뀝니다. 사용자가 먼저 발견하면 이미 늦기 때문에, GitHub Actions에 검증 워크플로를 두고 데이터가 규칙을 지키는지 push마다 확인합니다.
스토어 세 곳을 한 소스로
Chrome·Whale·Firefox는 확장 매니페스트 요구사항이 다릅니다. 소스를 하나로 두고 빌드에서 갈라 세 스토어 심사를 통과시켰습니다.
트러블슈팅
드래그하면 링크가 아니라 이미지가 열리던 문제
팝업의 사이트 아이콘을 드래그하면 링크로 인식되지 않고 이미지 자체가 열렸습니다. 브라우저가 <img>의 기본 드래그를 먼저 잡아, 부모 <a>의 URL이 아니라 이미지 리소스를 끌고 간 것입니다.
이미지의 자체 드래그를 끄고(draggable=false) 부모 링크의 URL이 잡히게 했습니다. 고치는 김에 여는 방식도 정리했습니다 — 좌클릭은 새 탭, Ctrl/Cmd + 클릭은 백그라운드 탭. 학교 서비스는 원래 보던 페이지를 두고 여는 경우가 대부분이라 기존 탭을 덮어쓰는 게 맞지 않았습니다.
드래그로 순서를 바꾸는데 화면 밖으로 못 나가던 문제
설정 페이지에서 항목을 드래그해 순서를 바꿀 때, 목록이 화면보다 길면 화면 밖 위치로 옮길 방법이 없었습니다. 드래그를 유지하는 동안 자동으로 스크롤되게 했습니다.
학교가 조용히 바꾸는 URL
교내 서비스는 공지 없이 주소가 바뀝니다. 학부 개편으로 명칭이 바뀌기도 합니다. 실제로 자유전공학부·자율전공학부·전자공학부 명칭과 융합전공·소프트웨어융합학과·디지털콘텐츠학과 URL을 한 번에 정정한 적이 있습니다.
사용자가 먼저 발견하면 이미 늦기 때문에, 지원 서비스 문서를 데이터와 함께 갱신하고 CI가 형식을 검증하도록 걸어뒀습니다.
사용자에게 직접 듣기
팝업과 설정 페이지에 문의하기를 넣었습니다. 버그 제보나 추가 요청을 스토어 리뷰까지 가지 않고 그 자리에서 보낼 수 있습니다. 답변받을 이메일은 선택 입력이라, 익명으로 한 줄만 던지는 것도 됩니다.
위의 트러블슈팅 세 건이 전부 사용자 제보에서 나왔습니다. 제보 경로를 짧게 만드는 것이 기능 하나를 더 만드는 것보다 나았습니다.
기술 스택
JavaScriptChrome ExtensionGitHub Actions