CPU·RAM·실행 시간
기본은 CPU 1개, RAM 512M, 4시간입니다. 기존 Slurm 한도에서 차감되며 GPU는 요청하지 않습니다. 필요하면 cehub-web start --time=08:00:00 --mem=1G --cpus=1 -- python3 app.py처럼 지정하세요. 현재 파티션의 최대 실행 시간은 48시간이며, 계정별 한도가 더 짧으면 그 한도를 따릅니다. 상시 자동 재시작은 제공하지 않습니다.
CEHUB · USER GUIDE
처음 접속부터 개인·팀 홈페이지 공개까지.
필요한 순서대로 따라 하고, 공개 전에 꼭 알아야 할 내용을 확인하세요.
01 · START
사용 신청 후 관리자 승인과 계정 안내를 확인하세요. 비밀번호 설정 안내를 받았다면 계정을 활성화하고, 발급된 계정으로 접속합니다. 팀 계정은 관리자가 포털에서 발급합니다.
내 Lab 열기로 접속하세요. 개인 계정은 학번 또는 s학번, 팀 계정은 team001 같은 발급된 팀 ID로 로그인합니다.
Lab 파일 탐색기에서 파일을 작성·업로드할 수 있습니다. 중요한 변경은 Ctrl + S로 저장하세요. 새 계정의 홈페이지 폴더는 정상 계정과 홈이 준비된 뒤 최대 5분 안에 자동으로 생성됩니다.
02 · YOUR WEBSITE
각자 만든 HTML·CSS·JavaScript·이미지를 public_html 폴더에 저장하면 자기 주소로 볼 수 있습니다. 웹 서버를 실행하거나 포트를 등록할 필요가 없습니다.
| 사용 계정 | 공개 주소 |
|---|---|
| 개인 · 2022810061 | https://cehub.hknu.ac.kr/2022810061/ |
| 팀 · team001 | https://cehub.hknu.ac.kr/team001/ |
개인 페이지는 자신의 계정으로, 팀 페이지는 해당 팀 계정으로 Lab에 로그인합니다. 파일 탐색기에서 public_html을 여세요. 팀원이 개인 계정으로 만든 페이지가 팀 페이지에 자동 합쳐지는 것은 아닙니다.
처음에는 기본 페이지가 있습니다. index.html을 아래처럼 바꿔 보세요. 새 텍스트 파일을 만들 때는 이름을 정확히 index.html로 지정합니다.
<!doctype html>
<html lang="ko">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>내 홈페이지</title>
<h1>안녕하세요!</h1>
<p>나의 첫 홈페이지입니다.</p>
</html>
Ctrl + S로 저장한 뒤 브라우저에서 https://cehub.hknu.ac.kr/자기학번/을 엽니다. 팀은 학번 대신 팀 ID를 넣으세요. 개인 홈페이지 주소에는 학번 앞의 s를 붙이지 않습니다.
필요한 파일을 같은 공개 폴더에 올리고 ./로 시작하는 상대 경로를 사용하세요. 예를 들어 이미지 폴더는 public_html/images/에 만들 수 있습니다.
<link rel="stylesheet" href="./style.css">
<script src="./app.js" defer></script>
<img src="./images/logo.png" alt="내 로고">
여러 프로젝트도 가능합니다. public_html/project-a/index.html을 만들면 /자기학번/project-a/로 볼 수 있습니다. 팀도 /team001/project-a/처럼 사용합니다.
03 · WEB BACKEND
화면은 public_html에 저장하고, 데이터를 처리하는 Python·Node.js 서버는 cehub-web으로 실행하세요. 개인·팀 계정에 자동으로 연결 주소가 준비되므로 관리자에게 포트를 등록할 필요가 없습니다. 파일을 올리는 것만으로 서버가 자동 실행되지는 않습니다.
예를 들어 개인 계정은 https://cehub.hknu.ac.kr/2022810061/api/, 팀 계정은 https://cehub.hknu.ac.kr/team001/api/로 연결합니다. 백엔드에는 /api/ 앞부분을 제거한 경로가 전달됩니다. /학번/api/messages 요청은 서버의 /messages로 전달됩니다. api는 백엔드 연결용 예약 경로입니다.
Lab에서 터미널을 열고 아래 명령을 실행하세요. 기존 예제 폴더가 있으면 덮어쓰지 않습니다.
cehub-web example
cd ~/webapp-example
cehub-web start -- python3 app.py/자기학번/backend-demo/ 또는 /팀ID/backend-demo/에서 예제 계정으로 회원가입·로그인·글 저장을 해볼 수 있습니다. 예제 계정은 CEHUB 계정과 별개입니다. CEHUB 비밀번호를 입력하지 마세요. 작성한 글은 공개됩니다.
cehub-web status
cehub-web logs
cehub-web stop계정당 백엔드 작업 하나를 관리합니다. 시작 시 Slurm에 제출하므로 자원이 부족하면 대기합니다. 실행 중에는 API 주소로 접속할 수 있고, 작업이 없거나 끝나면 API에 503이 표시됩니다.
서버 코드는 공개 폴더 밖의 개인 홈에 보관하세요. 서버는 TCP 포트 대신 CEHUB_WEB_SOCKET 환경변수에 지정된 Unix 소켓에서 HTTP 요청을 받아야 합니다. 필요한 패키지는 자신의 가상환경에 설치하세요.
# FastAPI: 자신의 환경에 uvicorn 설치 후
cehub-web start -- bash -c 'exec python -m uvicorn app:app --uds "$CEHUB_WEB_SOCKET"'
# Flask: 자신의 환경에 gunicorn 설치 후
cehub-web start -- bash -c 'exec gunicorn --bind "unix:$CEHUB_WEB_SOCKET" app:app'
# Node.js: server.listen(process.env.CEHUB_WEB_SOCKET) 사용
cehub-web start -- node server.js프런트엔드에서는 자신의 /학번/api/ 또는 /팀ID/api/ 주소에 fetch로 요청하세요. 예제의 HTML과 서버 코드를 참고할 수 있습니다.
기본은 CPU 1개, RAM 512M, 4시간입니다. 기존 Slurm 한도에서 차감되며 GPU는 요청하지 않습니다. 필요하면 cehub-web start --time=08:00:00 --mem=1G --cpus=1 -- python3 app.py처럼 지정하세요. 현재 파티션의 최대 실행 시간은 48시간이며, 계정별 한도가 더 짧으면 그 한도를 따릅니다. 상시 자동 재시작은 제공하지 않습니다.
예제의 ~/webapp-example/board.sqlite3는 공개 폴더 밖에 저장됩니다. 백엔드를 중지·재시작해도 DB 파일은 남습니다. DB·비밀번호·인증 토큰을 public_html에 넣지 마세요. 계정 자료 삭제와 별도 백업 정책은 그대로 적용됩니다.
CEHUB 로그인과 학생 앱은 계속 격리합니다. 앱 API에는 CEHUB 쿠키를 전달하지 않으며 서버의 쿠키 설정도 차단합니다. 쿠키·localStorage 대신 앱 자체의 Bearer 토큰을 메모리에 보관하여 사용하세요. 예제는 새로고침하면 다시 로그인하지만 글은 DB에 남습니다. 전송 버튼은 type="button"으로 만들고 클릭 이벤트에서 fetch를 호출하세요. 브라우저 기본 폼 제출은 사용할 수 없습니다.
현재는 일반 HTTP API를 지원합니다. 요청 본문은 2MiB, 응답은 8MiB까지이며 서버 응답 제한 시간은 약 20초입니다. WebSocket·장시간 스트리밍·외부 API의 브라우저 직접 호출은 지원하지 않습니다. 예제는 수업용 시작 코드이므로 실제 회원 서비스에는 계정 복구와 앱별 접근 제어 등을 구현하세요.
Lab과 백엔드의 수명은 다릅니다. Lab을 종료해도 제출한 백엔드 Slurm 작업은 남은 실행 시간 동안 유지됩니다. 시간 초과·작업 취소·서버 오류·노드 재부팅 시 API 제공은 중단됩니다. 정적 홈페이지는 계속 제공됩니다. 계정 만료나 역할 회수 시에는 둘 다 제공이 중단됩니다.
04 · BEFORE YOU USE
public_html 안의 파일은 로그인 없이 인터넷에서 접근할 수 있습니다. 비밀번호, 인증 토큰, 개인정보, 비공개 연구 자료는 넣지 마세요. 다른 개인 파일은 기존 홈 폴더에 보관합니다.
정적 페이지는 Lab을 종료해도 계속 보입니다. 편집하려면 Lab을 다시 여세요. 계정 만료나 사용 권한 회수 시에는 홈페이지 제공이 중단됩니다.
HTML·CSS·JS는 공개 폴더에서 바로 제공됩니다. 로그인·DB 저장이 필요하면 백엔드 안내에 따라 cehub-web으로 서버를 실행하세요. Python·Node 서버는 파일을 올리는 것만으로 자동 실행되지는 않습니다.
학생 페이지에서 CEHUB 로그인 쿠키와 localStorage를 사용할 수 없습니다. 다른 CEHUB API·외부 API 호출, 폼 제출, iframe도 제한됩니다. 이런 기능이 필요한 앱은 공개 전에 지원 가능 여부를 확인하세요.
학생·연구생·팀 계정은 승인된 권한 범위에서 사용합니다. 홈페이지 기능이 sudo·Docker·공유 AI 권한을 추가하지는 않습니다. 팀 페이지는 해당 팀 계정의 공개 폴더에서 관리하세요.
저장 여부를 확인하고 필요한 자료는 별도로 보관하세요. Lab이 종료되기 전 파일을 저장하고, 계정 만료 전에 필요한 자료를 내려받으세요. 개인 계정 비밀번호와 인증 파일은 공유하지 말고, 팀 작업은 승인된 팀 계정으로 진행하세요.
05 · COMPUTING
Lab에서는 파일을 편집하고 작업을 제출합니다. GPU 학습이나 장시간 계산은 Slurm 작업으로 제출하고, CPU·GPU·메모리는 승인된 자원 범위 안에서 요청하세요.
# 내 작업 상태 확인
squeue -u "$USER"
# 준비한 작업 스크립트 제출
sbatch train.sh
# 필요 없는 내 작업 취소: JOB_ID를 실제 작업 번호로 바꿉니다
scancel JOB_ID
작업이 끝나면 할당 자원은 반환됩니다. 필요 없는 작업은 취소하세요. Lab은 약 4시간 동안 사용하지 않으면 회수될 수 있으므로 저장하지 않은 편집 내용을 남겨두지 마세요.
06 · HELP
정상 계정과 홈이 준비된 뒤 최대 5분 기다리고 Lab 파일 탐색기를 새로고침하세요. 계속 없거나 이미 같은 이름의 다른 폴더가 있다면 임의로 삭제하지 말고 관리자에게 확인을 요청하세요.
주소가 /자기학번/ 또는 /팀ID/인지, 공개 폴더에 정확한 이름의 index.html이 있는지 확인하세요. 대소문자가 다르면 다른 파일입니다. 계정 만료·권한 상태도 확인하세요.
일반 저장 파일은 자동으로 읽기 권한이 적용됩니다. 비공개 권한을 유지해서 복사했다면 공개 파일은 0644, 하위 폴더는 0755가 필요합니다. 공개할 파일에만 적용하고 원래 홈 폴더의 권한은 바꾸지 마세요.
chmod 644 ~/public_html/index.html파일이 공개 폴더 안에 있는지, 이름과 대소문자가 일치하는지 확인하세요. /style.css 대신 ./style.css처럼 상대 경로를 사용합니다. 외부 API와 iframe 등 제한된 기능이 필요한지도 확인하세요.
먼저 파일을 저장하고 올바른 학번·팀 주소를 열었는지 확인하세요. 브라우저를 새로고침하고, 필요하면 Ctrl + Shift + R로 다시 불러오세요.
CEHUB 로그인과의 격리를 위해 쿠키·localStorage·브라우저의 기본 폼 제출은 제한됩니다. 전송 버튼을 type="button"으로 만들고 클릭 이벤트에서 자신의 /학번/api/로 fetch 요청을 보내세요. 백엔드와 DB를 사용하려면 백엔드 안내를 따라 실행합니다.
cehub-web status로 작업이 실행 중인지, 대기·종료 상태인지 확인하고 cehub-web logs로 오류를 확인하세요. 서버가 CEHUB_WEB_SOCKET에서 HTTP 요청을 받는지도 확인합니다. 새 계정의 실행 폴더는 최대 5분 안에 준비됩니다. 403이 계속되면 계정 권한이나 Slurm 작업 연결 상태를 관리자에게 알려주세요.
아니요. 정적 페이지는 그대로 제공됩니다. 파일을 수정하려면 Lab을 다시 시작하면 됩니다. 다만 계정 만료·사용 권한 회수 시에는 홈페이지 제공이 중단됩니다.
도움이 필요하면 계정명, 발생 시각, 접속 주소와 오류 문구를 관리자에게 알려주세요. 비밀번호·쿠키·인증 토큰은 보내지 마세요.
안내 업데이트 · 2026년 10월 8일