교사 vs 학생 자동 감지 (먼저 읽기)
cc-class의 핵심 기능은 모든 컴퓨터에 동일한 패키지를 설치한다는 것입니다. 설치 후 각 컴퓨터는 자신이 "교사"인지 "학생"인지 스스로 판단합니다 — 관리자는 컴퓨터마다 다른 작업을 할 필요가 없습니다.
이 결정은 단 하나, **컴퓨터 이름(호스트명)**에 기반합니다.
1. 규칙: 어떤 이름이 "교사"로 간주되는가
컴퓨터 이름이 다음 중 어느 하나라도 일치하면(대소문자 구분 없음) 해당 컴퓨터는 교사로 취급되고, 그렇지 않으면 학생으로 취급됩니다.
- 교사 키워드 포함: 이름에
teacher,jiaoshi,laoshi또는 중국어老师가 포함됨.- 예:
teacher-01,JiaoShi,lab1-老师
- 예:
-t/_t교사 태그 포함: 독립된t로서, 그 앞 문자가-,_또는 시작 위치이고, 뒤 문자가-,_, 숫자, 또는 끝 위치인 경우.- 일치:
pc-t,lab-t-01,room1-t2,PC001-T - 잘못 발동하지 않음:
-test(t 뒤에e),team(t 뒤에e),host-time(t 뒤에i)
- 일치:
기술자용: 정확한 규칙
교사 태그는 정규식 (^|[-_])t([-_]|[0-9]|$)로 일치됩니다(소문자 변환 후). Windows 설치 프로그램(installer.nsi)과 Linux 데몬(StudentService)은 동일한 로직을 내장하고 있어, 교사 앱, 학생 앱, 설치 프로그램이 항상 일치합니다.
권장 이름 지정
| 역할 | 컴퓨터 이름 예시 | 비고 |
|---|---|---|
| 교사 | teacher, teacher-01, PC-T, PC001-T | 키워드 또는 -t 태그 |
| 학생 | PC001, PC002, stu-01, room1-15 | 일반 이름, 교사 태그 없음 |
가장 간단한 방식
교사 컴퓨터를 PC001-T(끝이 -T)로, 학생들을 PC002, PC003, … 으로 지정하세요. 이 설명서의 데모 환경이 정확히 그렇게 되어 있습니다: 교사 PC001-T, 학생 PC002 및 PC003.
2. 클라우드 데스크톱 이름 우선순위 (중요)
많은 실습실은 여러 컴퓨터가 동일한 이미지로 부팅되는 클라우드 데스크톱 / 디스크리스(IDV/VOI) 솔루션을 사용하므로, 컴퓨터들 간에 OS 호스트명이 동일할 수 있습니다. 이를 처리하기 위해 cc-class는 다음과 같이 이름을 결정합니다:
- 먼저, 플랫폼이 푸시한 "클라우드 데스크톱 컴퓨터 이름"을 읽습니다:
- Linux: 디바이스
/dev/vdchardev에서; - Windows: 디바이스
\\.\vddsk에서.
- Linux: 디바이스
- 해당 디바이스가 없거나 / 읽을 수 없거나 / 비어 있는 경우에만 OS 호스트명으로 폴백합니다.
즉, 클라우드 데스크톱 이름 > OS 호스트명입니다. 클라우드 데스크톱 환경에서는 OS 호스트명뿐 아니라 관리 플랫폼에서 해당 컴퓨터의 클라우드 데스크톱 컴퓨터 이름(예: PC001-T)을 설정하세요.
흔한 함정
OS 호스트명이 PC001-T(교사처럼 보임)이지만 푸시된 클라우드 데스크톱 이름이 PC001(학생)인 경우, cc-class는 **클라우드 이름 PC001**을 사용하여 학생으로 취급하므로 교사 앱이 시작을 거부합니다. 문제를 해결할 때는 "클라우드 데스크톱 컴퓨터 이름"을 신뢰하세요.
3. 이 결정이 일으키는 결과 (자동 동작)
| 컴퓨터가… 인 경우 | TeacherApp | StudentApp | 바탕화면 바로 가기 |
|---|---|---|---|
| 교사 | 정상적으로 시작 | 자동으로 종료(학생 앱은 교사 컴퓨터에서 실행되지 않음) | 교사 아이콘만 생성 |
| 학생 | "교사 컴퓨터가 아니므로 시작하지 않음" 표시 | 실행되어 교사에 자동 연결 | 바탕화면 아이콘을 생성하지 않음(바탕화면을 깔끔하게 유지) |
- 학생 앱은 교사 컴퓨터에서 조용히 종료됩니다(0 반환, 방해 없음).
- 교사 앱은 학생 컴퓨터에서 경고 후 종료됩니다. 긴급 상황에서는 명령줄 플래그
--no-host-check를 추가하여 검사를 건너뛸 수 있습니다(FAQ 참조).
4. 바탕화면 바로 가기: 자동, 수동 작업 불필요
아이콘을 직접 만들지 않습니다. cc-class가 역할별로 처리하고 잘못된 역할의 남은 아이콘을 정리합니다:
- 교사 컴퓨터: cc-class 교사 아이콘이 바탕화면에 배치됩니다.
- Linux에서는 학생 데몬
StudentService가 부팅할 때마다 클라우드 데스크톱 이름을 기준으로 아이콘을 다시 만들고, GNOME의metadata::trusted를 자동으로 설정하여 아이콘이 "신뢰할 수 없는 응용 프로그램 실행기"로 표시되지 않게 합니다(그럴 경우 더블클릭해도 아무 일도 일어나지 않음). - Windows에서는 설치 프로그램이 컴퓨터 이름을 기준으로
…-Teacher.lnk를 생성합니다.
- Linux에서는 학생 데몬
- 학생 컴퓨터: 바탕화면 아이콘 전혀 없음(문제 해결용으로 응용 프로그램 메뉴에는 항목이 남아 있음).
데모 환경에서의 실제 결과(바탕화면 폴더 확인):
# Teacher PC001-T desktop: has the teacher icon
~/Desktop/cc-class-teacher.desktop
# Student PC002 / PC003 desktops: empty (no cc-class icon)
(none)컴퓨터 이름을 변경했나요?
그냥 재부팅하세요. 부팅 시 데몬이 새 이름으로 역할을 다시 평가하고 바탕화면 아이콘을 재생성/정리합니다 — 완전 자동입니다.
5. 결정 흐름
┌─────────────────────────────┐
│ "클라우드 데스크톱 이름" 읽기 │
│ Linux: /dev/vdchardev │
│ Windows: \\.\vddsk │
└──────────────┬──────────────┘
비어 있지 않음 │ 그 외에는 폴백
┌──────────────▼──────────────┐
│ OS 호스트명 사용 │
└──────────────┬──────────────┘
│
이름에 teacher / jiaoshi / laoshi / 老师 포함
또는 -t / _t 교사 태그?
┌───────┴───────┐
예 │ │ 아니오
┌──────▼──────┐ ┌──────▼──────┐
│ 교사 │ │ 학생 │
│ 교사 실행 │ │ 학생 실행 │
│ 아이콘 생성 │ │ 아이콘 없음 │
└─────────────┘ └─────────────┘다음으로 플랫폼을 선택하세요 👉 Windows 설치 | Linux 설치