이 포털을 관리하는 방법
연구진이 도움 없이 직접 고치고 늘려 나가기 위한 안내 · 2026-08-23
어떻게 만들어져 있나
이 포털은 국문과 영문 두 개의 사이트이고, 하나의 원본 파일 묶음에서 생성됩니다. 한국어 문장과 영어 문장이 같은 자리에 나란히 들어 있고, 한 번 빌드하면 둘이 함께 나옵니다.
일부러 이렇게 만들었습니다. 한쪽 언어만 뒤처지는 일 — 영문 페이지가 조용히 2년째 옛날 내용인 흔한 문제 — 이 구조적으로 일어날 수 없게 됩니다.
주소는 https://aimigenlab.com 입니다.
파일이 하는 일
작업 폴더는 portal/ 입니다.
| 파일 | 하는 일 | 자주 고치나 |
|---|---|---|
content.py |
사이트 문구, 연구진, 자료실, 연구 도구 | 자주 |
topics.py |
연구 주제의 본문 | 자주 |
vision.py |
비전·목표·전략·실행계획·예상 성과 | 가끔 |
pubs.py |
논문, 분야별로 묶음 | 가끔 |
style.css |
디자인 | 이따금 |
guard.php |
연구 주제의 암호 잠금 | 드물게 |
build.py |
위 내용을 읽어 페이지를 생성 | 드물게 |
deploy.py |
결과를 서버에 올림 | 드물게 |
make_thumbs.py · make_portraits.py |
주제 이미지와 연구진 초상 | 추가할 때 |
script.py · make_subs.py · assemble_video7.py |
영상 대본·자막·조립 | 드물게 |
고치고 싶은 것의 대부분은 content.py, topics.py, vision.py 안에 있습니다.
기본 작업 흐름
1. 내용 고치기 content.py / topics.py / vision.py
2. 빌드 python portal/build.py
3. 올리기 python portal/deploy.py
두 단계를 한 줄로 실행해도 됩니다.
python portal/build.py && python portal/deploy.py
그림책은 별도 빌더가 있습니다.
python portal/build_story.py
암호 잠금
연구 주제는 공개하지 않습니다. 아직 생각을 다듬는 단계라 연구실 안에 둡니다.
- 암호는
portal/guard.php의AIMIGEN_PW에 있습니다 - 잠긴 것: 홈의 주제 목록, 주제 상세 페이지 전체, 그림책
- 열린 것: 연구실 소개, 논문, 연구진, 자료실, 연구 도구
- 잠그려면 아무 주소 뒤에
?lock=1을 붙입니다
⚠️ 암호를 바꾸면 알고 있는 사람 모두에게 알려 주세요. 복구 수단이 없습니다.
자주 하게 될 일
논문 추가
pubs.py 의 PUBS 에서 알맞은 분류를 찾아 한 항목을 넣습니다.
dict(y=2026, new=True, pmid='42518166',
t='발표된 그대로의 논문 제목',
j='저널 이름',
au='저자 목록, 연구실 구성원은 <b>굵게</b>',
tp={'ko': '주제', 'en': 'Topic'},
me={'ko': '방법론', 'en': 'Methodology'},
rs={'ko': '결과', 'en': 'Results'}),
pmid 를 넣으면 제목이 PubMed 링크가 됩니다(doi 도 됩니다).
new=True 를 넣으면 옆에 NEW 표시가 붙습니다.
연구진 추가·변경
content.py 의 TEAM 에 한 사람을 넣고, 사진을 준비합니다.
- 원본 사진을 프로젝트 폴더에 둡니다 — 증명사진이면 충분합니다
make_portraits.py의PEOPLE목록에 한 줄을 더합니다python portal/make_portraits.py를 실행합니다
사진은 다른 사람들과 같은 그림체로 다시 그려집니다. 초상이 생기기 전까지는 이름의 첫 글자가 대신 나오므로, 사람을 먼저 넣어도 문제없습니다.
연구 주제 수정
topics.py 를 엽니다. 주제 하나는 다음 조각들로 이루어져 있습니다.
| 항목 | 담는 내용 |
|---|---|
title · lead |
제목과 한 줄 요약 |
question |
핵심 질문, 목록에도 함께 나옵니다 |
problem |
무엇이 문제인가 — 문단의 목록 |
approaches |
어떻게 접근하는가 — (소제목, 설명) 짝 |
progress |
지금 어디까지 왔나 — 넣으면 해당 칸이 생깁니다 |
why |
왜 중요한가 — 문단의 목록 |
links |
관련 자료, 썸네일이 붙은 카드로 나옵니다 |
{'ko': ..., 'en': ...} 로 적힌 것은 두 언어를 함께 담고 있습니다. 한쪽만 고치지 마세요.
영상 고치기
소개 영상의 문장은 전부 portal/script.py 한 곳에 있습니다.
음성과 자막이 같은 원본에서 나오므로 서로 어긋나지 않습니다.
nar_ko / nar_en 음성으로 읽는 문장
cues_ko / cues_en 화면에 차례로 넘어가는 자막 조각
자막 조각 하나는 최대 두 줄입니다. | 가 줄바꿈 위치이고, 자동 줄바꿈은
꺼져 있어 적은 그대로만 접힙니다. 한 줄이 한국어 23자·영어 46자를 넘으면
화면 밖으로 나가니 문장을 줄여 주세요.
python portal/make_narration.py # 음성 다시 만들기
python portal/make_subs.py # 자막 이미지 다시 만들기
python portal/assemble_video7.py # 조립
python portal/add_music.py # 배경 음악 얹기
python portal/compress_deploy.py # 압축해서 올리기
하지 말아야 할 것
| 하지 말 것 | 이유 |
|---|---|
portal/ 안의 index.php 를 직접 고치기 |
다음 빌드가 덮어씁니다 |
| 국문만 고치고 영문을 두기 | 두 사이트가 벌어집니다 |
| 페이지에 비밀번호나 API 키를 적기 | 적힌 그대로 공개됩니다 |
| 서버 위의 파일을 직접 고치기 | 다음 배포 때 사라집니다 |
잘 안 될 때
- 화면이 그대로 →
Ctrl+F5 - 빌드가 실패 → 대개 따옴표나 쉼표가 빠진 것입니다. 오류에 줄 번호가 나옵니다
- 페이지가 500 → 서버의
private/php-error.log를 봅니다 - 그래도 막히면 → 연구실에 알려 주세요