Skip to content
View sagaeforge's full-sized avatar
  • Joined Aug 12, 2026

Block or report sagaeforge

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
sagaeforge/README.md

⚒️  S A G A E   F O R G E

사개 — 못을 쓰지 않고, 나무를 깎아 서로 끼워 맞추는 이음
forge — 그 부품을 직접 벼리는 곳

부품부터 직접 벼려서, 끼워 맞춥니다.

언어를 설계하고 · 커널을 올리고 · VR 을 빚고 · 게임을 만들고 · 파이프라인을 세웠습니다
2016 —


C++ C x86-64 Assembly C# Unity Blender
TypeScript Kotlin Python Java Go Docker

Sagae

// nugdev — 내가 설계한 언어. 문법은 EBNF 로 30KB, 예제는 .nug 로 씁니다.
import "std/forge" as forge;

namespace Sagae {

    export struct Developer<T: module> {
        private let name:  string = "사개";      // 깎아서 서로 끼워 맞추는 이음
        private let since: number = 2016;

        public property parts: T[] {
            get(): T[] => this._forged;         // 부품은 대체로 직접 벼린다
        }

        public fn build(pieces: T[]): T {
            return pieces.fold(fn(a: T, b: T): T => fit(a, b));
        }
    }
}

nugdev 문법입니다 — 하이라이팅은 TypeScript 것을 빌렸습니다. 실제 문법과 예제는 nugdev-language 에 있습니다.


대표작

⚗️  kern-research — 커널을 쓰기 위한 언어

하드웨어를 조작하는 복잡한 프로그램을 읽기 쉬운 코드로 만든다.

순수 함수의 집합만으로 운영체제 커널을 쓸 수 있는 언어.

순수하지 않은 함수는 모나드를 반환합니다. 함수가 순수한지를 컴파일 단계에서 검사하고, 예외는 try-catch 가 아니라 모나드로 처리합니다.

마일스톤 — 2026-01-31: x86/amd64 아키텍쳐에서 피보나치 재귀 함수를 구동할 수 있다.

컴파일러 kernc 와 표준 라이브러리 stdlib/ 를 같이 씁니다. 아홉 번째 컴파일러이고, mint64 커널과 nugdev 언어가 만나는 지점입니다.

C++ 2.1 MB · 커밋 155개 · 2026.01 – 2026.03  |  archive-compiler/kern-research


⚙️  nugdev — 언어와 컴파일러

직접 설계한 언어, 그리고 그 언어를 위한 컴파일러입니다.

문법 전체를 EBNF 30KB 로 썼습니다. 모듈 / 네임스페이스 / import·export, 제네릭 제약 (struct Vector<T: number>), 프로퍼티 getter, 화살표 함수, 정적 멤버까지 들어 있고 — 그 문법으로 실제 예제 프로그램(sample.nug, physics.nug)을 짰습니다. 문법을 눈으로 보려고 SFML 뷰어도 따로 만들었습니다.

컴파일러는 단계별로 잘라 놨습니다.

01_lib → 02_scanning → 03_tokenize → 04_parsing → 05_analysis

05_analysis 안에는 심볼 테이블 · 스코프 분석 · 타입 체커 · SSA 변환 · 데이터플로우(라이브 변수 / 도달 정의 / 에일리어스 / 이스케이프 / 프로시저 간) · 최적화(상수 폴딩 / 데드코드 제거 / 루프 / 대수적 단순화)가 있습니다.

C++ · CMake · vcpkg · gtest  |  archive-compiler/nugdev-compiler-2025 · nugdev-language


🖥️  mint64 — 64비트 OS 커널

『64비트 멀티코어 OS 원리와 구조』를 따라, 부트로더부터 올렸습니다.

00_BootLoader 에서 시작해 → 01_Kernel32 에서 A20 게이트를 열고 보호모드로 넘어가 페이징 자료구조를 세우고 → 02_Kernel64 에서 롱모드로 진입해 키보드 드라이버까지. 디스크 이미지를 굽는 ImageMaker 도 같이 만들었습니다. 커밋이 7장 C언어 커널 추가 처럼 장 단위로 남아 있습니다.

x86-64 Assembly · C · Makefile · CMake  |  archive-systems/mint64


🥽  network-package — Unity 위의 VR 멀티플레이 프레임워크

Unity 안에 오브젝트 시스템을 다시 만들었습니다Object_Object / Object_Component / Object_Behaviour / Object_ObjectLoader.

그 위에 네트워크 계층(NetworkManager · NetworkSession · NetworkPacket · NetworkHandler · NetworkEventer), 플레이어 계층(Controller · Input · Interaction · Physic · Status — 전부 *Base 추상 계층으로 분리), 인게임 맵 에디터, 에셋 번들 업로드·다운로드(Utility_AssetBundle · Utility_FBXImporter), 로그인·회원가입 백엔드 연동까지 얹었습니다. XR / XRI 포함. 스크립트 133개.

C# · Unity · XR  |  archive-network/unity/network-package


🕸️  Singapore Project Collector — ELT 파이프라인

싱가포르 정부 조달(GeBIZ)·건설청(BCA) 데이터를 모아 "프로젝트 중심" 으로 정리하는 시스템.

Collector(배치 잡) / Storage(상시 API) / Processor(후처리)를 각각 독립 배포 가능하게 나눴습니다. 크롤러는 BaseCrawler 를 상속하고 팩토리에 등록만 하면 새 소스가 붙습니다. 공사비·기간 같은 정형 데이터는 RDBMS로 엄격하게, 시방서·지반 조건 같은 가변 데이터는 JSONB로 유연하게 — 두 갈래로 갈라 설계했습니다.

Playwright · FastAPI · SQLAlchemy · PostgreSQL · Docker  |  archive-web-services/crawler


프로젝트

각 항목을 눌러서 펼칠 수 있습니다.

언어 · 컴파일러  —  10개  ·  Quantum · nugdev-compiler · cos · kern-research
프로젝트 무엇 스택 커밋
kern-research 2026.03 순수 함수로 커널을 쓰는 언어 + kernc 컴파일러 C++ 155
Quantum 2021.12 자작 언어용 C 런타임 — Object 박싱 · GC · Delegate · Exception + String / JSON 모듈. .c 243개 C 103
nugdev-compiler 2024 FSM 토크나이저 · 타입 파싱 C++ · vcpkg 66
AnyangTechInterpreter 2021.06 "Quantum Language" — 첫 인터프리터. 『만들면서 배우는 인터프리터』 참고 C++ · C 54
NCX 2022.03 프론트엔드를 갈아끼울 수 있는 컴파일러 확장 C++ 14
nCompiler 2022.02 C++ 로 옮기며 처음부터 재작성 C++ 11
nugdev-compiler 2025 Scanner → Tokenizer → Parser → Analysis. SSA · 데이터플로우 · 최적화 C++ · gtest 9
cos 2025.11 NASM 백엔드 — 명령어 · 오퍼랜드 · 레지스터 할당기 직접. Pratt 파서 C++ 4
MakeInterpreter 2022.05 이번엔 C# 으로 인터프리터 C# 3
nugdev-language 2025.06 EBNF 문법 30KB + .nug 예제 + SFML 문법 뷰어 EBNF · C++ 1
시스템 · 저수준  —  11개  ·  가비지 컬렉터 · mint64 커널 · NDK · wine-python
프로젝트 무엇 스택 커밋
garbage-collection 2021.11 GC 구현과 테스트. ngc · gc-rebuild 로 두 번 더 갈아엎음 C 18
program-manager 2021.12 프로그램 라이프사이클 매니저 C 16
nugunga-utility 2021.11 String / GC / Operator 종합 유틸리티 C 13
mint64 2025.11 부트로더 → 32비트 → 64비트 커널. 『64비트 멀티코어 OS 원리와 구조』 ASM · C 8
NDK 2025.04 공용 C++ 모듈 — algorithm / exception / json / string C++ · CMake 4
dm-memory 2021.08 페이지 기반 동적 메모리 매니저 C 1
nugunga-develop-kit 2023.10 C++ 리플렉션 실험 — Property / Reflection C++ 1
make_Library 2022.03 포트폴리오용 C++ JSON 라이브러리 C++ 21
Advanced-Calc 2022.04 C++ 계산기 C++ · C 5
ini-parser 2024.03 C++ INI 파서 — Comment / Field / Line / Section 분리 C++ 1
wine-python 2024.09 Wine 위에서 Python ↔ DLL 브리지 Python · Docker 2
네트워크 · 멀티플레이  —  4개  ·  C++ 포커 서버 · Unity VR 멀티플레이 + 맵 에디터
프로젝트 무엇 스택 커밋
cpp-poker-server 2022.05 포커 서버. String / StringAry 라이브러리를 먼저 만들고 그 위에 얹음 — UTF-8 인코더·디코더, 패턴 매칭, 포맷까지 함수 하나당 파일 하나로 C 13
network-package 2022.08 Unity VR 멀티플레이 + 오브젝트 시스템 + 맵 에디터 C# · Unity 2
packet 2022.09 Unity 네트워크 패킷 프로토타입 C# 1
thread-server / client 2022.06 pthread 서버·클라이언트 습작 C 2
게임  —  6개  ·  명일단보 · 오수는 게임중 · 주식게임 3종
프로젝트 무엇 스택 커밋
주식 게임 (웹) 2025.08 명재와 함께. 인증 · 게임 · 프로필까지 있는 웹 재작성판 Kotlin Spring · Next.js 25
오수는 게임중 2021.04 Java 콘솔 경제 시뮬 — 주식 · 부동산 · 코인. 실시간 타이머로 하루가 지나고 월세가 들어옴 Java 22
주식 게임 (Unity) 2025.05 같은 게임의 Unity 버전 C# · Unity 6
명일단보 2022.08 Unity 비주얼노벨. 엑셀(.xlsx)에 대사를 쓰면 NPOI 로 읽어 ScriptableObject 로 굽는 임포터 포함. 완성 C# · Unity 3
bangdream-rhythm 2022.05 뱅드림 스타일 리듬게임 C# · Unity 2
sound-engine-preset 2021.12 Unity 사운드 매니저 프리셋 C# 1
서비스 · 도구  —  8개  ·  싱가포르 ELT 크롤러 · 캘린더 · 지식베이스 · manim
프로젝트 무엇 스택 커밋
Singapore Collector 2026.01 건설 프로젝트 ELT 수집 시스템 Playwright · FastAPI · PostgreSQL 35
docker-samples 2023–2025 Next.js / Bun / Samba / 정적 웹 실습 Docker 6
calendar 2025.03 캘린더. event / note / user / workspace 도메인, Flyway 마이그레이션, OAuth2 Kotlin Spring Boot · Next.js 15 3
knowhow-base 2025.04 지식 관리 서비스. domain / infrastructure 계층 분리 + Alembic FastAPI · Next.js 3
manim 2026.01 컴파일러가 하는 일을 설명하는 영상 Python · manim 1
translator 2026.08 Papago / Google 동시 번역 Python 1
PaperBot 2024.03 Next.js 습작 — 디스코드 클론 스터디 브랜치 6개 Next.js · TS 28
portfolio-site 2021.12 개인 포트폴리오 정적 사이트 HTML · CSS 1
🥽 XR · 3D  —  XR 프로토타입 7종 · 3D 모델 165개  ·  미공개

안양공업고등학교 XR융합응용학과 를 나왔습니다. VR 과 모델링은 취미가 아니라 전공이었습니다.

무엇
XR 프로토타입 7종 XRTest_Teleport / _Movement / _Locomotion / _Connect · VR UI Canvas · XR_Preset · TEST_3D — 이동 · 텔레포트 · 핸드 모델 · VR UI 를 하나씩 뜯어서
3D 모델링 .blend · .fbx 165개 — 전공 과제 63 · VR 42 · Unity 17
런타임 3D 로딩 Utility_FBXImporter + TriLib — 게임 안에서 모델을 불러와 배치
Unity 그래픽스 Catlike Coding — Clock / Graph / Math / Performance

아직 저장소로 올리지 않았습니다.

📓 학습 기록  —  Go · DDD · TTS · Arduino · 웹 · 코딩테스트  ·  미공개
무엇
Go Chapter 03 – 31 · .go 31개 · go.mod 29개
DDD 도메인 주도 개발 노트 — 복잡성 / 설계 vs 개발 프로세스 / 세 프로젝트 비교
TTS · 음성 mimic-recording-studio (BE + FE) + 자작 녹음기 TTS_Recoder
임베디드 Arduino
웹디자인기능사 · WebStandard · Responsive · 레이아웃 13종
코딩 테스트 CodeUp · 이것이 코딩 테스트이다

아직 저장소로 올리지 않았습니다.


연표

        1   2   3   4   5   6   7   8   9  10  11  12      커밋

2020    ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ·   ▓       15
2021    ▓   ░   ░   ▓   ░   ▒   ·   ·   ·   ·   ▓   █      155
2022    █   ▓   ▓   ▒   ▓   ░   ·   ░   ·   ·   ·   ·      144
2023    ·   ·   ·   ·   ·   ·   ·   ·   ░   ░   ·   ·        3
2024    ▓   ▒   ▒   ·   ·   ·   ·   ·   ·   ·   ·   ·       42
2025    ░   ▓   ▓   ▒   ▒   ▒   ░   ▓   ·   ▒   ▒   ·      118
2026    ▓   ·   █   ·   ·   ·   ·   ·   ·   ·   ·   ·      190

        ·  없음    ░  1–4    ▒  5–14    ▓  15–49    █  50+

2022.09 부터 2023.09 까지 딱 1년이 비어 있습니다. 2023년 전체 커밋이 3개입니다. 반대로 몰아친 구간이 셋 — 2021.11–2022.03 (213커밋), 2025.02–03 (59), 2026.03 한 달에 150(kern-research).


연도 무엇을 했나
2020 AnyangTechInterpreter — 첫 인터프리터 (12월 시작)
2021 오수는 게임중 · garbage-collection · nugunga-utility · program-manager · Quantum
2022 nCompiler · NCX · MakeInterpreter · make_Library · cpp-poker-server · network-package · 명일단보
2023 거의 비어 있음NDK 리플렉션 실험 · Docker 실습
2024 PaperBot · nugdev-compiler 2024 · ini-parser · wine-python
2025 calendar · NDK · nugdev-compiler 2025 · 주식게임(Unity → 웹) · nugdev-language · cos · mint64
2026 Singapore Collector · manim · kern-research

편입·문서 커밋을 뺀 실제 작업 커밋 기준. 공개 저장소에 남은 가장 이른 커밋은 2020-12-14 입니다.


되풀이

같은 문제를 계속 다시 만듭니다. 두 갈래가 특히 그렇습니다.

컴파일러 — 아홉 번

flowchart LR
    A["AnyangTech<br/>2021.06"] --> Q["Quantum<br/>2021.12"] --> NC["nCompiler<br/>2022.02"] --> NX["NCX<br/>2022.03"] --> MI["MakeInterpreter<br/>2022.05"] --> N4["nugdev-compiler<br/>2024.03"] --> N5["nugdev-compiler<br/>2025.05"] --> CS["cos<br/>2025.11"] --> KR["kern-research<br/>2026.03"]

    style Q  stroke-width:3px
    style N4 stroke-width:3px
    style KR stroke-width:3px
Loading

고등학교 때 『만들면서 배우는 인터프리터』를 따라 만든 게 시작이었습니다. C 로 갔다가 C++ 로 옮기고, 중간에 C# 으로 한 번 새고, 2024년에 다시 잡아 2025년에 가장 멀리 갔고, NASM 백엔드를 따로 판 뒤 — 지금은 커널을 쓰기 위한 언어를 만들고 있습니다.

경제 게임 — 세 번

flowchart LR
    O["오수는 게임중<br/>2021.04 · Java 콘솔"] --> U["주식 게임<br/>2025.05 · Unity"] --> W["주식 게임<br/>2025.08 · Kotlin + React"]
Loading

2021년에 Java 콘솔로 주식·부동산·코인 시뮬레이션을 만들었고, 4년 뒤 같은 걸 Unity 로, 그 3개월 뒤 웹으로 다시 만들었습니다.


읽은 것

따라 만들어 보고, 그 다음에 처음부터 다시 씁니다.

여기서 나왔습니다
『만들면서 배우는 인터프리터 / 컴파일러』 AnyangTechInterpreter(2021.06) · nugdev-compiler(2024 · 2025) · cos(2025.11) — Pratt 파서와 AST 노드 구성이 여기서 왔습니다. 2024 에는 Monkey VM 을 스택 기반 → 레지스터 기반으로 바꾸는 연구 노트가 따로 있고, cos 의 레지스터 할당기가 그 연장선입니다
『64비트 멀티코어 OS 원리와 구조』 mint64 (2025.11) — 커밋이 장 단위로 남아 있습니다
Catlike Coding Unity 그래픽스 — Clock / Graph / Math / Performance
Go 언어 교재 Chapter 03 – 31

포크해 둔 코드도 그대로 관심사입니다.

chibicc · tinycc — 소형 C 컴파일러  /  llvm-project · lamina — 컴파일러 백엔드  /  chromium · boost · jdk — 대형 C++ · Java 코드베이스  /  mint64os — 64비트 멀티코어 OS


직접 만들어 본 것들 — 라이브러리를 가져다 쓰기 전에
런타임 시스템 도구
가비지 컬렉터 ×3 부트로더 → 64비트 커널 C 소스 자동 생성기
문자열 라이브러리 (String / StringAry) A20 게이트 · 페이징 · 키보드 엑셀 → 게임 대사 임포터
UTF-8 인코더 / 디코더 C++ 리플렉션 (Property) EBNF 문법 뷰어 (SFML)
페이지 기반 동적 메모리 매니저 Wine 위 Python ↔ DLL 브리지 Unity 사운드 매니저 프리셋
C 튜플 · 델리게이트 테이블 pthread 서버 / 클라이언트 Unity 인게임 맵 에디터
C++ 오브젝트 시스템 (nobject) 소켓 네트워크 스택 Unity 오브젝트 / 컴포넌트 시스템
가상 머신 (Quantum) 레지스터 할당기 (cos) manim 컴파일러 설명 영상

아카이브

저장소 내용 기간
⚙️ archive-compiler 자작 언어와 컴파일러 9세대 · VM · GC · EBNF 설계 2021 – 2026
🧩 archive-c-toolkit GC · 문자열 · 동적 메모리 · 튜플 · 델리게이트를 C 로 직접 2021 – 2024
🖥️ archive-systems mint64 커널 · NDK · Wine ↔ Python 브리지 2023 – 2025
🎮 archive-games 명일단보 · 오수는 게임중 · 주식게임 · 리듬게임 2021 – 2025
🌐 archive-network C++ 포커 서버 · Unity VR 멀티플레이 + 맵에디터 2022
🕸️ archive-web-services 건설 프로젝트 ELT · 지식베이스 · 캘린더 2021 – 2026

770 커밋 — 한 개도 버리지 않고 옮김
79 legacy/* 태그 — 원본 브랜치 끝점 전부
4 → 1 흩어져 있던 GitHub 계정을 하나로
19 GB → 640 MB 빌드 산출물만 걷어냄
C++         ██████████████████                    52.9 %
TypeScript  ████                                  10.3 %
C           ███                                    8.6 %
C#          ███                                    8.5 %
HTML        █                                      3.4 %
ShaderLab   █                                      3.1 %
CMake       █                                      3.0 %
Python      █                                      2.8 %
Kotlin      █                                      2.5 %
Others      ██                                     4.9 %

공개 저장소 기준 · 2026.08  /  위의 XR·3D 와 학습 기록은 아직 여기 포함돼 있지 않습니다.

히스토리는 어떻게 보존했나

각 프로젝트는 git subtree 로 편입했고, 원본 저장소의 커밋을 한 개도 버리지 않았습니다. 원본 브랜치 끝점은 전부 legacy/<프로젝트>/<브랜치> 태그로 남아 있습니다.

git tag -l 'legacy/*'              # 보존된 원본 브랜치 79개
git log  legacy/quantum/main       # 그 프로젝트의 원본 커밋 히스토리
git show legacy/quantum/main       # 편입 직전 최종 상태

git log -- <디렉터리>/ 로는 편입 커밋 1개만 보입니다. subtree 편입에 -s ours 병합을 썼기 때문이고, 원본 커밋은 전부 저장소 안에 있습니다.


지금

흩어져 있던 계정 4개를 하나로 모았습니다. 여기서부터 다시 시작합니다.


⚒️  깎아서, 끼워 맞춥니다.

Popular repositories Loading

  1. sagaeforge sagaeforge Public

  2. stock-game-with-myeongjae stock-game-with-myeongjae Public archive

    C#

  3. archive-compiler archive-compiler Public

    C++

  4. archive-systems archive-systems Public

    C++

  5. archive-c-toolkit archive-c-toolkit Public

    C

  6. archive-web-services archive-web-services Public

    Python