TRENDSHIFT DEEP DIVE · 2026.05.22 · 8위

Fincept Terminal:
오픈소스 Bloomberg를 C++로 짓다

월 24,000달러짜리 금융 단말기를 무료로 대체하겠다는 19.4k 스타 프로젝트. C++20 네이티브 코어 + Qt6 UI + 임베디드 Python + 37개 AI 에이전트 + 100개 데이터 커넥터를 단일 바이너리에 우겨넣은 풀스택 데스크탑 앱이다.

1프로젝트 한 줄 요약

무엇을 하는 프로젝트인가.

한 문장

"Bloomberg 단말기를 부수고,
그 안의 모든 기능을 오픈소스로 다시 만들고 있다."

실시간 시세 차트, 펀더멘털 분석(DCF), 포트폴리오 최적화, 채권·파생상품 가격 책정, 16개 증권사 직접 주문, 워런 버핏·벤저민 그레이엄 같은 투자 거장 페르소나의 AI 에이전트, MCP 도구 연결, 노드 에디터 기반 자동 매매 파이프라인까지 — 월 24,000달러짜리 Bloomberg Terminal의 핵심 기능을 단일 네이티브 바이너리 하나에 다 우겨넣은 데스크탑 앱이다.

v4부터는 Electron이나 PyQt 같은 래퍼를 다 버리고 순수 C++20 + Qt6로 다시 짰다. Python은 분석 엔진으로 임베드된다 — 별도 프로세스가 아니라 같은 프로세스 안에서 직접 호출된다.

용어
Bloomberg Terminal (블룸버그 터미널)
전문 트레이더가 쓰는 금융 정보 단말기. 월 사용료가 약 USD 24,000(약 3,300만 원)이라 헤지펀드·은행만 쓴다. Fincept Terminal은 이걸 "그냥 오픈소스로 만들자"는 시도다.

2왜 지금 주목받는가

트렌딩 8위로 올라온 이유.

같은 도메인의 경쟁자는 두 종류가 있다. 상용 단말기(Bloomberg, Refinitiv, Capital IQ — 비싸고 폐쇄적), 그리고 오픈소스 분석 라이브러리(pandas, yfinance, QuantLib — 단편적, 통합 UI 없음). Fincept Terminal은 그 사이에 있다. "통합된 데스크탑 GUI 경험"을 무료로 주는 게 핵심이다.

차별 포인트 1

Electron이 아니라 진짜 네이티브

최근 데스크탑 앱의 90%는 Electron(VS Code, Discord, Slack 식)이다. 크롬 브라우저를 통째로 번들링해서 200MB+, 메모리 1GB+ 먹는다. Fincept v4는 크롬·JavaScript·Node 없이 Qt6로만 그린다. 19.4k 스타 중 상당수가 "드디어 빠른 금융 단말기"에 끌린 사용자다.

차별 포인트 2

37개 AI 에이전트 — 투자 거장 페르소나

버핏(Buffett), 그레이엄(Graham), 린치(Lynch), 멍거(Munger), 클라먼(Klarman), 마크스(Marks) 등 가치투자 거장의 사고 프레임을 각각 별도 에이전트로 만들었다. 거시경제 분석 에이전트, 지정학 분석 에이전트도 있다. 한 종목을 8명이 다른 관점으로 동시 평가하게 시킬 수 있다.

차별 포인트 3

16개 증권사 직접 주문

Zerodha·Angel One·Upstox(인도), Alpaca·IBKR(미국), Saxo(유럽), Kraken·HyperLiquid(크립토) 등이 직접 연결된다. WebSocket으로 실시간 호가 수신, 같은 앱 안에서 주문까지. 별도 HTS·MTS를 띄울 필요가 없다.

차별 포인트 4

이중 라이선스의 영리한 전략

코드는 AGPL-3.0으로 풀려 있어 개인·학습·연구는 무료다. 회사·SaaS·자산운용사가 쓰려면 별도 상용 라이선스(연간 USD 50,000 위약금까지 명시)를 사야 한다. "공부는 무료, 돈 벌면 우리도 나눠 갖자"는 모델 — MongoDB·Elastic·Redis가 갔던 길과 같다.

용어
AGPL-3.0 (Affero General Public License, 어피로 GPL)
GPL의 강화판. "네트워크 너머로 서비스만 제공해도 소스 공개 의무가 발동"한다. SaaS 회사가 코드를 변형해서 몰래 운영하는 걸 막는 라이선스. AWS가 MongoDB·Elastic을 fork해 가는 사태를 막기 위해 만들어졌다.

3기술 스택 전체 지도

백엔드 · 프론트엔드 · 인프라 — 각 층을 자세히.

3-1. 코어 & 언어

용어
C++20
2020년에 표준화된 C++의 최신 버전(2025년 기준 C++23 직전). 모듈, 코루틴, concepts, ranges 같은 신기능이 들어간다. Fincept은 MSVC 19.40+ / GCC 12.3+ / Apple Clang 15.0+로 핀(pin)했다. 더 낮은 버전은 빌드 자체를 거부한다.

C++ 55.3% + Python 43.1%. 바이트 기준으로는 C++가 더 많지만, "무거운 일은 C++, 분석은 Python"이라는 명확한 분업이 있다. UI 렌더링·실시간 WebSocket·차트 그리기는 전부 C++. DCF 모델·통계 계산·머신러닝은 임베디드 Python이 처리한다.

용어
Embedded Python (임베디드 파이썬)
C++ 앱 안에 Python 인터프리터를 통째로 묶어서 같은 프로세스 안에서 직접 호출하는 기법. Py_Initialize()로 인터프리터를 띄우고 C++ 함수에서 Python 객체를 주고받는다. 별도 프로세스로 띄우는 것(IPC 비용)과 달리 함수 호출 한 번이라 굉장히 빠르다. 게임 엔진(Blender), 3D 툴(Maya)에서 자주 쓰는 패턴.

3-2. UI 프레임워크: Qt6

용어
Qt6 (큐트 식스)
노르웨이산 C++ GUI 프레임워크. Windows/macOS/Linux에서 똑같이 그리는 위젯·차트·웹뷰·멀티미디어를 다 제공한다. 발음은 "큐트"(영어 cute). Fincept은 정확히 6.8.3에 핀.

Qt 모듈 중 qtcharts, qtwebsockets, qtmultimedia 세 개를 추가로 쓴다. qtcharts로 캔들·라인 차트를, qtwebsockets로 Kraken·HyperLiquid의 실시간 호가를, qtmultimedia로 알람음·뉴스 영상을 처리한다.

비유

Qt6는 "Windows·Mac·Linux의 통역사 + 그림 도구 박스"라고 보면 된다. 같은 C++ 코드 하나로 세 OS에서 일관된 모양을 그릴 수 있게 해준다. 카카오톡 PC가 OS별로 따로 만들어지는 것과 달리, Fincept은 코드 한 벌로 세 OS 인스톨러를 뽑는다.

3-3. 분석 엔진: Python 3.11.9 + QuantLib

용어
QuantLib (퀀트립)
투자은행이 실제로 쓰는 오픈소스 금융 수학 라이브러리(C++ 작성, Python 바인딩 제공). 채권 가격, 옵션 그릭스(Δ·Γ·Θ·V), 변동성 모델, 이자율 곡선 같은 걸 검증된 수식으로 계산한다. Fincept은 이 위에 18개 모듈을 얹었다.
용어
DCF (Discounted Cash Flow, 현금흐름할인법)
기업의 미래 현금 흐름을 현재 가치로 할인해서 "이 회사의 진짜 가치"를 계산하는 가치투자의 기본기. 워런 버핏이 평생 쓰는 방법. Excel로 짜면 한나절 걸리는 작업을 Fincept은 종목 코드 입력 한 번에 끝낸다.
용어
VaR (Value at Risk, 최대 손실 추정치)
"내 포트폴리오가 95% 확률로 하루에 잃을 수 있는 최대 금액은 얼마인가?"를 통계적으로 추정한 값. 1990년대 J.P.Morgan에서 만든 리스크 관리 표준 지표. 1억 원 포트폴리오의 1일 VaR이 200만 원이면, 평균적으로 100일 중 5일은 200만 원 이상 잃는다는 뜻.

3-4. AI 레이어 — 멀티 LLM + 37 에이전트

지원하는 LLM 프로바이더가 의도적으로 많다: OpenAI · Anthropic · Gemini · Groq · DeepSeek · MiniMax · OpenRouter · Ollama(로컬). 클라우드 차단 환경에서는 Ollama로 로컬 LLM만 쓰는 것도 가능.

용어
MCP (Model Context Protocol, 모델 컨텍스트 프로토콜)
2024~2025년 Anthropic이 표준화한 "LLM에게 도구를 끼워주는 규약". USB 같다고 생각하면 된다. Fincept의 Node Editor는 MCP 서버에 연결돼 외부 도구(예: 별도의 뉴스 분석 모델)를 에이전트가 호출할 수 있게 한다.

3-5. 데이터 커넥터 — 100개 이상

다음 카테고리로 묶인다: 시세 API(Yahoo Finance, Polygon, Alpha Vantage), 매크로 데이터(FRED — 미 연준, IMF, World Bank, DBnomics), 중국·아시아(AkShare), 정부 API(US Treasury, SEC EDGAR), 크립토(Kraken WebSocket, HyperLiquid), 대체 데이터(Adanos 시장 심리 — Reddit·X·뉴스·Polymarket 통합).

3-6. 빌드 인프라

용어
CMake 3.27.7 + Ninja 1.11.1
CMake는 빌드 설계도를 작성하는 메타 빌드 시스템(Makefile/Visual Studio/Ninja로 변환된다). Ninja는 그 결과로 빌드를 실제 실행하는 빠른 빌드 엔진. Make 대비 2~3배 빠르다. Fincept은 두 도구 모두 정확한 버전에 핀.
용어
ccache / sccache (컴파일러 캐시)
한 번 컴파일한 결과를 디스크에 캐싱해서, 같은 코드를 다시 빌드할 때 "이거 어제 빌드한 거랑 똑같네"라며 즉시 통과시키는 도구. Fincept CMakeLists.txt 주석에 따르면 "clean rebuild 5~20배 단축". 5분 빌드가 15초가 된다.

그 외 핀: Qt Online Installer 또는 aqtinstall로 Qt 6.8.3 설치, MSVC 17.10+ / GCC 12.3+ / Apple Clang 15.0+ 강제 체크, macOS는 deployment target 13.0(Ventura), Windows는 SDK 10.0.22621.0(11 22H2). 버전이 어긋나면 빌드 자체를 거부한다.

함정
"버전 안 맞아도 되겠지" 함정

CMakeLists.txt 주석에 명시된 사례 — MSVC 19.40 미만으로 빌드한 바이너리가 Windows 11 26H2에서 STATUS_STACK_BUFFER_OVERRUN으로 즉사하는 버그(이슈 #215). 그래서 메인테이너가 빌드 자체를 거부하게 만들었다.

해결책
Pinned toolchain — "딱 이 버전" 규칙

오픈소스 데스크탑 앱이 흔히 망하는 지점이 "사용자마다 빌드 환경이 달라서 어떤 사람만 크래시"다. Fincept은 컴파일러·SDK·Qt·CMake 모든 버전을 정확히 못 박고, 어긋나면 친절한 에러 메시지와 함께 빌드를 정지시킨다. 이게 "오픈소스 프로페셔널리즘"의 신호.

4아키텍처 심화 분석

단일 바이너리 안에서 모든 게 어떻게 협력하는가.

Fincept Terminal의 핵심 설계 결정은 "한 프로세스, 두 언어, 다층 데이터"다. UI와 분석을 같은 메모리 공간에서 돌리되, 데이터 소스는 100여 개를 추상화한 커넥터 레이어 뒤에 숨긴다.

4-1. 전체 시스템 구조도

┌───────────────────────────────────────────────────────────────┐ │ 사용자 (Windows / macOS / Linux) │ └────────────────────────────┬──────────────────────────────────┘ │ 클릭, 단축키, 차트 조작 ▼ ┌───────────────────────────────────────────────────────────────┐ │ Qt6 UI Layer (C++20) │ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │ │ │ Equity 화면 │ │ Portfolio │ │ Node Editor (자동화) │ │ │ │ 차트+펀더 │ │ Risk·VaR │ │ 드래그&드롭 파이프 │ │ │ └──────┬───────┘ └──────┬───────┘ └──────────┬───────────┘ │ └─────────┼────────────────┼────────────────────┼───────────────┘ │ │ │ ▼ ▼ ▼ ┌───────────────────────────────────────────────────────────────┐ │ Application Core (C++20) │ │ - 이벤트 디스패처 · 캐시 매니저 · 세션 상태 │ │ - WebSocket Pump (qtwebsockets, 비동기 I/O) │ └──────┬──────────────────┬────────────────────┬────────────────┘ │ │ │ ▼ ▼ ▼ ┌──────────────┐ ┌───────────────────┐ ┌──────────────────┐ │ Embedded │ │ 100+ Data │ │ 16 Broker │ │ Python 3.11 │ │ Connectors │ │ Adapters │ │ │ │ │ │ │ │ - QuantLib │ │ FRED · IMF · Yahoo│ │ Zerodha · Alpaca │ │ - Pandas │ │ Polygon · Kraken │ │ IBKR · Saxo … │ │ - DCF Models │ │ AkShare · Adanos │ │ (REST + WS) │ │ - 37 Agents │ │ … (총 100+) │ │ │ └──────┬───────┘ └────────┬──────────┘ └────────┬─────────┘ │ Py_BuildValue │ HTTP/WebSocket │ HTTPS+WS ▼ ▼ ▼ ┌───────────────────────────────────────────────────────────────┐ │ External APIs: OpenAI · Anthropic · Gemini · Groq · Ollama · │ │ Yahoo · FRED · IMF · Polygon · Kraken · 거래소 라우터 … │ └───────────────────────────────────────────────────────────────┘

4-2. 핵심 설계 패턴 다섯 가지

패턴 1 — Pinned Toolchain Enforcement

"버전 안 맞으면 빌드 거부"

CMakeLists.txt 안에 if(MSVC_VERSION LESS 1940) message(FATAL_ERROR ...) 식의 가드가 박혀 있다. C++ 빌드 시스템은 일반적으로 사용자 환경에 관대한데, Fincept은 반대로 엄격하다. 데스크탑 앱 메인테이너가 "내 컴퓨터에선 되던데"의 디버그 지옥에서 탈출하는 정공법.

패턴 2 — Hybrid C++/Python with Embedded Interpreter

"성능은 C++로, 분석은 Python으로"

금융 분석 코드는 학계·논문 생태계가 전부 Python인데, GUI를 Python으로 만들면 (PyQt 식) 부팅도 느리고 메모리도 많이 쓴다. Fincept은 GUI는 C++로 그리고, 분석 함수만 Python을 호출하는 절충안. 게임 엔진의 스크립팅 패턴과 같다.

패턴 3 — Connector Abstraction

"100개 API를 같은 인터페이스로"

FRED와 Yahoo와 Kraken은 인증 방식·응답 포맷이 다 다르다. Fincept은 추상화된 DataConnector 인터페이스 뒤에 어댑터를 두고, 사용자는 "심볼·기간"만 던지면 된다. 새 데이터 소스 추가는 어댑터 하나 작성으로 끝.

패턴 4 — Visual Node Pipeline (Node Editor)

"코드 없이 자동매매 파이프 그리기"

"가격 받기 → 이동평균 → 신호 생성 → 알파카 주문" 같은 흐름을 노드를 끌어 연결하는 식으로 만든다. Blender의 셰이더 노드, Unreal의 Blueprint, n8n과 같은 발상. MCP 도구를 노드 하나로 끼울 수 있어 외부 LLM 분석도 파이프에 들어간다.

패턴 5 — Single Binary, Bundled Qt

"의존성 0개로 설치"

Dockerfile을 보면 빌더 스테이지에서 aqtinstall로 Qt 6.8.3을 받고, 런타임 스테이지에서 그 Qt 라이브러리를 /opt/Qt 통째로 복사한다. 사용자 PC에 Qt가 없어도 Fincept 바이너리에 묶여 있어 바로 실행. 인스톨러는 그냥 압축 풀기 수준이다.

4-3. ccache 환경변수까지 신경 쓰는 빌드 시스템

CMakeLists.txt를 보면 ccache.conf를 자동으로 생성하고 ccache용 launcher 스크립트(ccache_launcher.cmd / .sh)를 만든다. PCH(Precompiled Header)가 있는 MSVC 환경에서 ccache가 99% 거부하는 이슈를 우회하기 위한 코드다. 보통 이런 디테일은 사내 빌드 엔지니어가 만들지 오픈소스에 박지 않는다.

"# PCH SUPPORT — without this, ccache rejects 99% of calls with 'Could not use precompiled header' because MSVC-style PCH files include a serialised path that defeats the cache key." — CMakeLists.txt 주석

5디렉토리 구조 해부

레포 최상위에 무엇이 있는가.

FinceptTerminal/ ├── .github/ # 릴리스 워크플로 (release.yml — 멀티 플랫폼 빌드) ├── docs/ # COMMERCIAL_LICENSE.md, CONTRIBUTING.md, │ # PYTHON_CONTRIBUTOR_GUIDE.md ├── fincept-qt/ # 메인 C++ 앱 (전체 코드의 핵심) │ ├── CMakeLists.txt # 빌드 설계도 (1900+ 줄 — 매우 정교) │ ├── CMakePresets.json # win-release · linux-release · macos-release │ ├── src/ # C++ 소스 (Qt6 위젯, WebSocket, UI 로직) │ ├── resources/ # 아이콘, 테마, 폰트 │ └── scripts/ # 분석·에이전트·데이터커넥터 Python 모듈 (100+개) ├── images/ # README용 배너·스크린샷 ├── Dockerfile # 멀티스테이지 멀티아치 빌드 (amd64+arm64) ├── .dockerignore # 빌드 컨텍스트 최적화 ├── setup.sh # 원-클릭 빌드 스크립트 (Linux/macOS) ├── LICENSE # AGPL-3.0 ├── funding.json # 후원 메타데이터 ├── updates.json # 자동 업데이트 채널 ├── fincept_icon.ico # Windows 아이콘 └── README.md # 사용자용 첫 페이지

fincept-qt/가 사실상 모든 코드의 집이다. 거기 아래 src/(C++ Qt 화면들), scripts/(분석·에이전트·커넥터 Python 허브), resources/(아이콘·테마)로 다시 갈라진다. 레포 최상위는 그 위에 얹은 "멀티 플랫폼 배포 인프라"다.

비유

대형 앱 레포는 "건물 + 부지" 구조라고 보면 된다. fincept-qt/가 건물 본체, 그 외(Docker, GitHub Actions, setup.sh, docs)는 부지·진입로·전기·수도. 본체만 보면 C++ 앱인데, 부지를 다 합치면 "세 OS 인스톨러를 자동 생산하는 공장"이 된다.

6학습 포인트 — 기술별 배울 것

이 레포에서 무엇을 가져갈 수 있는가.

6-1. C++ 진영 — "현대 C++ 데스크탑 앱"의 모범

최근 Electron이 너무 흔해져서 C++ 데스크탑 앱 코드 자체가 흔하지 않다. Fincept은 "2026년에도 C++ 네이티브로 앱 만드는 게 정상이다"를 보여주는 살아있는 샘플이다.

배울 것

CMake 모던 패턴

CMakeLists.txt 한 파일이 1,900줄+이지만 그 안에 CMakePresets.json, FetchContent로 외부 의존성 자동 다운로드, Unity Build, LTO 옵션, ccache 자동 검출이 깔끔히 모듈화돼 있다. 작은 C++ 프로젝트의 CMake와 차원이 다른 디테일.

실습: 본인의 C++ 토이 프로젝트에 ccache + CMake Preset만 적용해보기. 빌드 시간 5배 빨라지는 걸 체감.
배울 것

Qt6 위젯 + 차트

Qt Charts로 캔들·라인 차트 그리는 법, QWebSockets로 실시간 데이터 받기, QML 없이 순수 C++ 위젯만으로 복잡한 화면 구성하기. qmake가 아닌 CMake 기반 Qt6 프로젝트의 전형이라 Qt6 입문자에게 좋은 레퍼런스.

6-2. Python 임베딩 — "C++과 Python의 결혼"

Python을 C++ 앱 안에 끼우는 작업은 문서가 부족한 영역이다. Fincept의 fincept-qt/scripts/ 디렉토리(분석·에이전트·커넥터 Python 허브)는 이 패턴을 실전 규모로 보여준다.

배울 것

Py_Initialize → PyRun_SimpleString → 결과 회수

C++ 쪽에서 Python 함수를 호출하고 결과를 받는 패턴. GIL(Global Interpreter Lock) 관리, 객체 참조 카운트 관리, 멀티 스레드 환경에서의 안전성 같은 까다로운 부분을 실제 어떻게 다루는지 볼 수 있다.

용어
GIL (Global Interpreter Lock, 전역 인터프리터 락)
CPython 인터프리터가 "한 번에 한 스레드만 Python 바이트코드 실행"하게 만드는 큰 자물쇠. 임베디드 Python을 C++ 멀티 스레드에서 호출할 때 가장 큰 걸림돌. PyGILState_Ensure / PyGILState_Release로 안전 구간을 명시해야 한다.

6-3. AI 에이전트 설계 — "페르소나 + RAG + 멀티 LLM"

한 종목을 8명의 가치투자 거장이 동시에 평가하는 발상이 흥미롭다. 각 에이전트는 다음 3가지로 구성된다고 추론할 수 있다:

배울 것

멀티 프로바이더 추상화

OpenAI · Anthropic · Gemini · Ollama 같은 LLM들을 같은 인터페이스 뒤에 둬서, 사용자가 키 하나만 바꿔도 다른 모델로 평가가 돌아간다. 전략 패턴의 교과서적 예. LangChain·LiteLLM이 한 방향, Fincept은 자체 어댑터로 한 방향.

6-4. 멀티 플랫폼 배포 — "GitHub Actions로 인스톨러 자동 생산"

.github/workflows/release.yml은 Windows runner에서 .exe를, macOS runner에서 .dmg를, Linux runner에서 .run/.deb/.rpm을 동시에 빌드한다. Tag 하나 푸시하면 Windows(.exe) + Linux(.run/.deb/.rpm) + macOS(.dmg) 형태로 6~7개 인스톨러 아티팩트가 자동 생산된다. Dockerfile은 Linux 컨테이너용 추가 옵션.

배울 것

CPack IFW로 GUI 인스톨러 만들기

CMake의 CPack + Qt Installer Framework(IFW)로 사용자가 "다음 다음 동의 설치" 식으로 클릭하는 GUI 인스톨러를 자동 생성한다. NSIS(Windows)·DMG(macOS)·AppImage(Linux) 같은 형식을 코드 한 번에 다 뽑는다.

7하드웨어 / 시스템 요구사항

설치·빌드에 필요한 것.

7-1. 그냥 실행만 (Option 1 — 인스톨러 다운로드)

릴리스 페이지에서 본인 OS에 맞는 인스톨러를 받아 더블클릭하면 끝이다. CPU·RAM 요구는 README에 명시되지 않았지만 Qt6 + 임베디드 Python 앱이라 다음 정도가 합리적 추측:

실행 환경 (추정)

OS: Windows 10/11 x64, macOS 11.0+(Apple Silicon 권장), Linux glibc 2.31+(Ubuntu 22.04 / Debian 12 이상)

RAM: 8GB 최소, 16GB 권장 — 실시간 차트 + 임베디드 Python + 멀티 데이터 스트림 운영

디스크: 500MB(앱) + 데이터 캐시(자유)

네트워크: 시세 WebSocket + API 호출용 안정적 인터넷

7-2. 직접 빌드 (Option 4 — Build from Source)

맥북에서 처음 빌드 시 기준:

필수 도구 버전 디스크 ───────────────── ──────────────── ────── Git latest - CMake 3.27.7 EXACT ~50MB Ninja 1.11.1 ~5MB C++ 컴파일러 MSVC 19.40+ VS 2022 17.10+ GCC 12.3+ Ubuntu 22.04+ Apple Clang 15.0+ Xcode 15.2+ Qt 6.8.3 EXACT ~5GB (모듈 포함) Python 3.11.9 ~100MB 플랫폼 SDK Win10 22621.0 - macOS 14.0 - glibc 2.31+ - ───────────────── ──────────────── ────── 빌드 결과물 캐시 ~3GB ccache (선택) ~5GB ───────────────── ──────────────── ────── 실질 디스크 점유 약 13~15GB
함정
Qt 6.8.3가 아닌 다른 버전을 깔면

"Could not find Qt6 6.8.3"가 발생하며 빌드 중단. Qt Online Installer는 기본적으로 "최신" 버전만 보여주고, 6.8.3 같은 옛 버전은 "Archive" 체크박스를 켜야 보인다.

해결책
aqtinstall로 정확 핀 설치

pip install aqtinstallaqt install-qt linux desktop 6.8.3 linux_gcc_64 --modules qtcharts qtwebsockets qtmultimedia 한 줄이면 깔끔하다. Dockerfile이 정확히 이 방법을 쓴다.

8직접 해볼 수 있는 실습 과제

난이도별로 다섯 개.

난이도 ★ — 1~2시간

설치 후 5종목 DCF 분석 돌려보기

Windows·macOS 인스톨러로 깔고, Apple(AAPL)·Microsoft(MSFT)·Tesla(TSLA)·삼성전자(005930.KS)·SK하이닉스(000660.KS) 5개를 입력해 DCF 결과를 비교한다. DCF Fair Value가 현재 주가보다 높으면 저평가(매수 후보), 낮으면 고평가(매도 후보) — 가치투자의 가장 기본 도구를 손에 익히는 단계.

난이도 ★★ — 반나절

새 데이터 커넥터 1개 추가하기

FRED·Yahoo가 아닌 한국은행 ECOS API나 KRX 일자별 시세 API를 어댑터로 추가해본다. 기존 fincept-qt/scripts/ 안의 어댑터 하나(예: fred.py)를 베껴 새로 만들고, 등록 후 UI에서 호출되는지 확인한다. "100+ 커넥터 추상화"가 실제로 어떻게 동작하는지 손으로 만지며 익힌다.

난이도 ★★★ — 주말 한 번

"한국 가치투자 거장" 페르소나 에이전트 추가

존 리(메리츠자산운용)·박영옥(스마트인컴) 같은 페르소나의 시스템 프롬프트를 작성하고, 기존 37개 에이전트 구조를 그대로 따라 1개를 더 추가한다. 같은 종목을 8개 에이전트가 평가하던 화면에 9번째 의견이 추가된다.

힌트: 페르소나 정의는 보통 (1)투자 철학 2~3줄 + (2)핵심 지표 5개 + (3)출력 포맷 JSON 스키마 + (4)금지 행동 ("기술적 분석은 무시한다" 등) 4부 구성.
난이도 ★★★★ — 1~2주

Node Editor로 자동 매매 파이프 만들기

"매일 오전 9시 → Kraken에서 BTC 가격 가져오기 → 200일 이동평균과 비교 → 골든크로스면 0.001 BTC 매수 알림"을 노드를 끌어 만든다. 종이 매매(paper trading) 엔진을 켜서 실제 돈은 안 쓰고 가상 손익만 추적. 시각적 프로그래밍이 자동매매에 어떻게 적용되는지 체험하는 단계.

난이도 ★★★★★ — 1~2개월

본인 만의 fork — "FinceptKR"

레포를 fork해서 (a) UI를 한글화, (b) 기본 데이터 소스를 KRX·DART로 교체, (c) 한국 증권사 키움·미래에셋 어댑터 추가, (d) 한국세제(양도세·배당세) 계산기를 한 화면 추가 — 한국형 Fincept Terminal로 재포지셔닝. 상용 라이선스 조건 때문에 공개 배포는 못 하지만, 개인 학습용으로는 굉장한 풀스택 학습이 된다.

주의: AGPL-3.0이라 fork 자체는 자유. 단, 회사·SaaS로 운영하려면 commercial license 협의 필수.

9관련 기술 심화 학습 로드맵

8주 코스로 풀어쓰기.

Fincept Terminal을 "그냥 쓸 수 있는" 단계에서 "이 레포에 기여할 수 있는" 단계까지 도달하는 8주 커리큘럼:

1~2주차

Modern C++20 기초 다지기

Bjarne Stroustrup의 "A Tour of C++ (3rd Edition)" 또는 cppreference.com의 C++20 섹션. 특히 std::ranges, std::format, concepts, coroutines. RAII 패턴 손에 익히기. 작은 콘솔 앱 하나(예: 파일 wc 클론) C++20으로 작성.

3주차

CMake 모던 패턴

"Modern CMake" 가이드(gitlab.kitware.com), Craig Scott의 "Professional CMake". target_* 명령, FetchContent, CMakePresets.json까지. Fincept의 CMakeLists.txt를 켜놓고 한 줄씩 의미 추적해보기.

4~5주차

Qt6 위젯 프로그래밍

Qt 공식 튜토리얼 → QWidget 계층 → QCharts → QWebSockets. 토이 프로젝트: 간단한 시세 워처(yfinance 한 종목 가격을 실시간 차트로 그리는 작은 앱). Qt Creator IDE보다 CLion·VSCode + CMake가 Fincept 스타일.

6주차

Python 임베딩 + pybind11

CPython C API 공식 문서의 "Embedding Python in Another Application" 챕터. 그 후 pybind11로 같은 작업을 더 편하게 하기. 토이 프로젝트: C++ 메인이 Python에게 "이 숫자 리스트의 통계 내줘"라고 호출해서 결과 받는 미니 앱.

7주차

금융 도메인 — QuantLib + DCF + VaR

QuantLib Python 튜토리얼 → 채권 가격 책정, Black-Scholes 옵션 가격, 이자율 곡선. Aswath Damodaran의 NYU Stern "Valuation" 유튜브 강의(무료)로 DCF 모델 직접 만들기. VaR은 historical / parametric / Monte Carlo 세 방법 다 한 번씩 구현.

8주차

AI 에이전트 설계 + MCP

Anthropic의 Building Effective Agents 블로그 → 12-Factor Agents 원칙 → MCP 스펙(modelcontextprotocol.io). Fincept의 에이전트 코드를 읽으며 "프롬프트·툴·출력 포맷"이 어떻게 분리됐는지 파악. 본인의 페르소나 1개 추가가 졸업 과제.

10핵심 키워드 사전

이 레포에서 자주 마주칠 용어를 한 번에.

금융 — 정량 분석
DCF · WACC · 그릭스 (Greeks)
DCF: 현금흐름 할인. 미래 현금흐름을 현재가치로 환산. WACC (Weighted Average Cost of Capital, 가중평균 자본비용): DCF의 할인율로 쓰는 회사 자본조달 비용. 그릭스: 옵션 가격이 기초자산·시간·변동성에 얼마나 민감한지를 나타내는 그리스 문자(Δ Γ Θ V).
금융 — 리스크
VaR · Sharpe · 변동성 (Volatility)
VaR: 최대 손실 추정치. Sharpe Ratio: (수익률 − 무위험수익률) ÷ 변동성. "수익률 대비 얼마나 안정적인가". 1 이상이면 양호, 2 이상이면 우수. Volatility: 가격 변동 폭(표준편차). 변동성 자체가 옵션 가격의 핵심 입력.
코딩 — 빌드
CMake · Ninja · CPack · IFW
CMake: 빌드 메타. Ninja: 빠른 빌드 실행기. CPack: CMake 부속 — 배포용 패키지 자동 생성. IFW (Qt Installer Framework): Qt가 제공하는 GUI 인스톨러 빌더. CPack의 generator로 사용된다.
코딩 — Qt
moc · AUTOMOC · QML · 위젯 (Widget)
moc (Meta-Object Compiler): Qt의 시그널/슬롯·리플렉션을 위해 C++ 헤더를 한 번 전처리하는 도구. AUTOMOC: CMake가 자동으로 moc를 호출하게 만드는 옵션 (Fincept에서 ON). QML: Qt의 선언형 UI 언어 — Fincept은 안 쓰고 순수 C++ 위젯만 씀. 위젯: QWidget·QPushButton·QLineEdit 같은 전통 데스크탑 컨트롤.
코딩 — Python 임베딩
GIL · CPython · pybind11
GIL: 전역 인터프리터 락. CPython: C로 작성된 표준 Python 인터프리터 구현(우리가 그냥 "Python"이라 부르는 것). pybind11: C++과 Python 간 바인딩을 헤더 한 줄로 만드는 라이브러리. Fincept이 임베딩에 어떤 도구를 쓰는지는 소스를 봐야 알지만, 최신 트렌드는 pybind11.
AI
LLM · 페르소나 · MCP · RAG
LLM (Large Language Model, 거대 언어 모델): GPT·Claude·Gemini 등. 페르소나: 시스템 프롬프트로 모델에게 부여하는 캐릭터·역할. MCP: 모델에 도구를 끼우는 표준 규약. RAG (Retrieval-Augmented Generation, 검색 증강 생성): 답변 전에 외부 DB·문서를 검색해 컨텍스트에 끼우는 패턴. Fincept 에이전트가 "이 회사 최근 뉴스 보고 평가"하면 RAG가 작동한 것.
인프라
aqtinstall · BuildKit · TARGETARCH
aqtinstall: pip로 설치하는 Qt 자동 설치 도구. CI에서 정확한 Qt 버전을 보장하는 표준. BuildKit: Docker의 차세대 빌더. 멀티 플랫폼·캐시·시크릿 지원. TARGETARCH: BuildKit이 자동으로 주입하는 변수(amd64/arm64). Dockerfile에서 분기 처리에 사용.

11참고 링크

원문과 학습 자원.

레포 & 공식

GitHub 레포: github.com/Fincept-Corporation/FinceptTerminal

공식 사이트: fincept.in

TrendShift 페이지: trendshift.io/repositories/17028

최신 릴리스: v4.0.2 (2026-04-24)

기술 학습 자료

Qt6 공식 문서: doc.qt.io/qt-6

CMake 공식 가이드: cmake.org/cmake/help/latest

aqtinstall: github.com/miurahr/aqtinstall

QuantLib: quantlib.org

MCP 스펙: modelcontextprotocol.io

금융 도메인 무료 강의

Aswath Damodaran (NYU Stern): pages.stern.nyu.edu/~adamodar — DCF·가치평가의 세계적 권위자, 강의 전체 무료 공개

Investopedia: investopedia.com — 금융 용어 사전

실용 가이드

지금 바로 시도해볼 만한 것들

  1. 인스톨러 다운로드 후 5분 투어. 본인 OS 인스톨러를 받아 깔고, 관심 종목 3개를 입력해 DCF·포트폴리오·뉴스 화면을 한 번씩 클릭. "이 앱이 무엇을 약속하는가"를 손으로 체감하는 단계.
  2. CMakeLists.txt 한 줄씩 읽기. 1,900줄짜리 빌드 스크립트를 끝까지 읽는 건 그 자체로 좋은 학습이다. ccache 환경변수 처리, 컴파일러 버전 가드, FetchContent 패턴 등 실전 노하우가 가득.
  3. Dockerfile 모사하기. 본인의 작은 Qt 프로젝트에 Fincept의 멀티스테이지 Dockerfile을 베껴 적용. docker buildx build --platform linux/amd64,linux/arm64 한 줄로 멀티아치 빌드되는 걸 체험.
  4. Python 임베딩 토이. "Hello from C++" → Python으로 numpy 평균 계산 → 결과 C++로 회수. 200줄짜리 mini 프로그램. CPython API의 진입장벽을 부수는 가장 빠른 길.
  5. AI 에이전트 페르소나 글쓰기 연습. 코드 없이 종이에 "워런 버핏 에이전트"의 시스템 프롬프트를 30분 안에 써본다. 어떤 지표를 보고, 어떤 출력 포맷으로 답하는지를 자기 말로 정의. LLM 시대의 가장 중요한 스킬.
원문 · Fincept-Corporation/FinceptTerminal · v4.0.2 · 2026-05-22 TrendShift 8위 · github.com