읽고 끄덕이는 대신, 직접 움직여 보게
계절이 왜 생기는지는 누구나 한 번쯤 배웁니다. 그런데 "지구가 기울어져 있어서" 라는 문장을 읽고 나서도, 그럼 여름에 태양이 더 가까운 거냐고 물으면 대답이 갈립니다. 글로 읽어서 아는 것과 그림이 머릿속에 서는 것은 다른 일입니다. RainyLab 은 그 간격을 직접 조작해 보는 것으로 메워 보려는 시도입니다.
무엇이 있는가
크게 두 갈래입니다. 인터랙티브 시뮬레이션과, 그것을 만들며 정리한 개발 정보입니다.
- 지구의 계절 — 자전축 23.4° 기울기와 공전으로 계절이 생기는 과정을 3D로 봅니다. 1년 타임라인을 끌면 태양 고도·낮밤 경계·백야와 극야가 함께 움직입니다. 해설 문서가 따로 있습니다.
- 왜 인공위성은 떨어지지 않는가 — 위성이 떠 있는 이유는 중력이 약해서가 아니라 계속 떨어지는 중이기 때문입니다. 속도 하나가 충돌·원궤도·타원· 탈출을 어떻게 가르는지 직접 바꿔 봅니다. 해설 문서가 따로 있습니다.
- 돈의 열역학 — 금리가 오르면 왜 채권 가격은 떨어질 수밖에 없는지를, 채권을 산 사람과 은행에 넣은 사람을 나란히 놓고 봅니다.
- 개발 정보 — 위 자료들을 만들면서, 또 그 전부터 일하면서 정리해 둔 것들입니다. 웹에서 데이터를 파일로 둘지 문자열로 심을지 같은 이야기와, 오라클 PL/SQL 노트가 있습니다.
주제별로는 태그 목록에서 찾을 수 있습니다.
어떻게 쓰는가
자료를 만들 때 지키려는 것이 몇 가지 있습니다. 거창한 원칙이라기보다, 안 지켰다가 한 번씩 데고 나서 남은 것들입니다.
- 직접 만들어 확인한 것만 씁니다. 시뮬레이션은 공식을 그대로 코드로 옮겨 돌려 보고, 결과가 알려진 값과 맞는지 확인한 뒤에 올립니다. 개발 정보도 마찬가지로 실제로 동작시켜 본 코드만 싣습니다.
- 옛 글을 옮길 때는 고쳐서 옮깁니다. 2018년에 쓴 글을 그대로 복사하면 그때의 오류까지 같이 옵니다. 옮기면서 다시 검증하고, 틀렸던 곳은 무엇이 틀렸는지 본문에 남깁니다. 지운 자리는 나중에 같은 실수를 반복하게 만듭니다.
- 버전과 시점을 밝힙니다. 오라클 9i 시절 자료처럼 지금 기준과 다른 글에는 맨 위에 그 사실을 적어 둡니다. 읽는 사람이 자기 환경에 해당하는지를 첫 화면에서 판단할 수 있어야 합니다.
- 결론을 앞에 둡니다. 답을 마지막 문단까지 숨겨 두지 않습니다. 필요한 사람은 첫 문단만 읽고 떠나도 됩니다.
어떻게 만드는가
시뮬레이션은 React 로 짜고, 3D는 Three.js, 2D는 캔버스를 직접 그립니다. 빌드는 Vite, 배포는 Cloudflare Workers 의 정적 자산 호스팅입니다.
사이트 자체에는 정적 사이트 생성기를 쓰지 않습니다. 대신 의존성이 하나도 없는
Node 스크립트 하나가 각 페이지의 <head> 를 프리앰블처럼 읽어
상단 바·태그 페이지·문서 사이 백링크·sitemap.xml·캐시 헤더를 만듭니다.
페이지를 하나 추가할 때 손으로 고칠 파일이 없다는 것이 목표였고, 지금은 HTML 파일
하나만 만들면 나머지가 따라옵니다.
도메인 하나 아래 경로로 묶여 있는 것도 이유가 있습니다. 서브도메인으로 나누면 자료들이 서로 유입을 주고받지 못하고, 검색엔진과 광고 심사도 각각 받아야 합니다.
만든 사람
장종민이 혼자 만들고 씁니다. 2018년부터 개인 블로그에 개발 노트를 써 왔고, 그중 지금도 값어치가 있다고 판단한 글을 검증해서 이곳으로 옮겨오고 있습니다. 옛 블로그는 정리할 예정이라 링크는 걸지 않습니다.
잘못된 내용을 발견하셨거나 다뤘으면 하는 주제가 있으면 알려 주세요. 특히 틀린 곳 제보는 환영합니다 — 위에 적은 대로 옛 글에서 오류가 나오는 일이 실제로 있었고, 고치고 나면 글이 나아집니다.
운영
이 사이트는 광고로 운영비를 충당합니다. 광고가 붙는다고 해서 자료의 내용이나 순서가 달라지지는 않습니다. 어떤 정보가 수집되는지는 개인정보처리방침에 정리해 두었습니다.
자료는 전부 무료이고 회원가입도 없습니다. 수업이나 발표에 쓰셔도 됩니다 — 출처만 밝혀 주시면 됩니다.