북깍스토어: 우리 학교 앱스토어를 학생들과 함께 만들었다
이름부터 학생이 지은 교내 개발 생태계
북깍스토어: 우리 학교 앱스토어를 학생들과 함께 만들었다
DoRm이 교육 현장 문제를 어떻게 기술과 실험으로 풀어가는지 기록합니다.
이 글의 문제의식
바이브코딩 방과후 수업을 운영하면서 학생들의 앱을 한곳에 담고 싶다는 바람이 있었습니다. 교사와 학생이 만든 앱은 있었지만, 발견하고 공유할 통합 채널이 없었습니다. 만들었는데 아무도 모르고, 썼는데 어디서 찾는지 모르는 상황. 개발 문화를 확산하고 성과를 인정하는 구조가 필요했습니다.
이름부터 학생들과 함께 지었습니다. "북깍스토어" — 북과학고 + 딸깍(바이브코딩을 뜻하는 학생들 은어) + 앱스토어. 프로젝트의 시작부터 학생 참여로 이루어진 에피소드입니다. 앱스토어 자체가 SW 교육 프로젝트이자 학생 참여형 플랫폼이었습니다.
누구나 올릴 수 있되, 품질은 관리되어야 한다
앱 등록의 문턱을 어디에 놓을지가 첫 번째 설계 판단이었습니다. 누구나 올릴 수 있으면 품질 관리가 안 되고, 승인 절차가 복잡하면 참여가 줄어듭니다.
제출, pending, 관리자 승인 또는 거부. 수정하면 다시 pending으로 전환. 이 단순한 워크플로가 품질 관리와 참여 장벽 사이의 균형이었습니다. 교사, 학생, 졸업생 모든 구성원이 앱을 올릴 수 있습니다.
별점 시스템으로 인기 순위를 매기고, 피드백 시스템으로 개발자와 사용자가 소통하며, 명예의 전당으로 기여자를 인정합니다. "우리 학교에 필요한 앱을, 우리 구성원이 직접 만들어 쓴다"는 문화를 구조로 만든 것입니다.
학생들이 관심을 가져야 한다
교내 앱스토어가 밋밋하면 학생들이 들어오지 않습니다. 시각적 완성도를 높이기 위해 3D 카드 스택과 그리드 전환 뷰, 글래스모피즘 UI를 적용했습니다. 처음 들어왔을 때 "이거 뭔가 다르다"는 느낌을 주는 것이 중요했습니다.
터치 디바이스에서는 데스크톱 전용 효과를 분기 처리해야 한다는 실무적 교훈도 얻었습니다. 화려한 인터랙션이 터치 환경에서 오히려 방해가 되는 경우를 여러 번 경험했습니다.
학교 서비스의 보안
학교 서비스라서 보안 사고가 나면 안 됩니다. 학생들이 개발에 참여하는 만큼 공격 표면도 넓습니다. SSRF 방어, Storage 업로드 제한, IP당 레이트 리밋, 로그인 잠금 등 17건의 보안 취약점을 일괄 수정했습니다.
초기부터 보안을 적용하는 것이 나중에 고치는 것보다 훨씬 비용이 적다는 것을 체감했습니다. 학생들이 사용하는 서비스에서 보안은 타협할 수 없는 영역입니다.
초기에는 앱 URL에서 OG 이미지를 자동으로 가져오는 기능을 넣었지만 불안정해서 수동 아이콘 업로드로 전환했습니다. 외부 의존 기능은 반드시 fallback을 준비해야 한다는 교훈입니다.
배운 점
이 프로젝트에서 가장 의미 있었던 것은 학생 참여의 깊이였습니다. 교사가 일방적으로 만든 것이 아니라, 이름을 짓는 것부터 학생이 함께했습니다. 앱을 올리고, 평가하고, 피드백을 주고받는 과정 전체가 SW 교육의 연장선입니다.
학교라는 공간에서 개발 생태계가 자생할 수 있다는 가능성을 확인한 프로젝트이기도 합니다. 한 학생이 만든 앱을 다른 학생이 쓰고 별점을 주고, 그 피드백으로 개선하는 순환. 이것이 교실에서 일어나는 것 자체가 교육적 가치입니다.
다음 단계
경기북과학고에서 정식 운영 중입니다. 등록된 앱이 늘어남에 따라 카테고리 분류와 검색 기능 강화를 검토하고 있습니다.
Knowledge Base
북깍스토어 지식 보기
북깍스토어 프로젝트에 대해 팀과 소통하기