본문 바로가기
AI 생성 글 정리/tech_github

Twenty — AI 시대를 겨냥한 오픈소스 CRM 플랫폼

by Honbul 2026. 5. 29.

한 줄 요약: Twenty는 “Salesforce의 오픈 대안”이라는 표어를 넘어서, CRM 데이터를 객체·필드·워크플로·앱·AI 에이전트로 확장할 수 있게 만든 TypeScript 기반 CRM 플랫폼이다.

단순한 영업 관리 도구라기보다, 팀이 직접 버전 관리하고 배포할 수 있는 “CRM 애플리케이션 플랫폼”에 가깝다.

분석 기준: GitHub main 브랜치의 README·패키지 구조·package.json, 공식 문서, Discussions, 저장소 내 공개 이미지 자산을 기준으로 작성했다. GitHub Wiki는 별도 지식 베이스가 아니라 저장소 페이지로 연결되어 있어, 실질 문서 소스는 packages/twenty-docs와 공식 Docs로 보았다.


Quick Links

구분 링크 비고
GitHub Repository twentyhq/twenty 공식 저장소
Website twenty.com 제품/클라우드 진입점
Documentation docs.twenty.com 사용자·개발자·Twenty UI 문서
Developer App Quick Start Apps Quick Start Twenty 앱 개발 시작 문서
Docker Self-hosting Docker Compose Guide 자체 호스팅 배포
Local Setup Local Setup Guide 모노레포 로컬 개발
Roadmap / Issues GitHub Issues 공개 이슈·로드맵 추적
Discussions GitHub Discussions 기능 제안·커뮤니티 논의
Figma Twenty Figma 디자인 시스템/제품 화면 참고
Paper N/A README·Docs·Discussions 기준 공식 논문 링크는 확인되지 않음

Key Features

1. 객체 중심 CRM 데이터 모델

Twenty의 핵심은 CRM 데이터를 “테이블 몇 개”로 고정하지 않고 Objects, Fields, Relations로 모델링한다는 점이다.

기본 객체로 Companies, People, Opportunities, Tasks, Notes를 제공하고, 필요하면 조직별로 커스텀 객체를 추가할 수 있다.

중요한 점은 새 객체가 단순 UI 항목이 아니라 API, Views, Permissions, Workflow Trigger까지 연결되는 일급 엔티티라는 것이다.

이미지 캡션: Twenty가 데이터 모델, 서버 로직, 화면 레이아웃을 앱 개발의 기본 빌딩 블록으로 제공한다는 README 이미지다. CRM 커스터마이징이 설정 화면에 머무르지 않고 코드 기반 확장으로 이어진다는 의미를 보여준다.

 

이 설계는 의료기관의 환자-검체-진단-상담, 바이오인포매틱스의 샘플-런-변이-리포트, 세일즈 조직의 회사-연락처-기회-태스크처럼 관계가 복잡한 도메인에 특히 적합하다.

다만 LIMS, EDC, EMR처럼 규제가 강한 시스템을 대체한다기보다는 운영 데이터의 협업 레이어로 보는 편이 현실적이다.

2. Views와 레이아웃 커스터마이징

Twenty는 CRM 레코드를 표, 칸반, 캘린더, 대시보드성 화면으로 다루는 기능을 제공한다.

필터, 정렬, 저장된 뷰, 페이지 레이아웃은 운영팀이 자주 쓰는 UX지만, Twenty의 차별점은 개발자가 앱과 프론트 컴포넌트를 통해 화면을 더 깊게 확장할 수 있다는 점이다.

 

이미지 캡션: 저장소 README의 커스텀 레이아웃 이미지다. 단일 CRM 화면을 고정 UI로 소비하는 것이 아니라, 업무 맥락에 맞춰 레코드 화면과 위젯을 조정하는 사용 사례를 설명한다.

 

운영팀 입장에서는 “영업 파이프라인 화면”을 만들 수 있고, 개발팀 입장에서는 특정 객체 화면에 계산 결과, 외부 API 결과, AI 요약 컴포넌트를 삽입하는 식으로 확장할 수 있다.

3. Workflow: CRM 이벤트를 실행 가능한 프로세스로 전환

공식 문서 기준 Twenty Workflow는 Trigger, Steps, Variables로 구성된다. 트리거는 레코드 이벤트, 수동 실행, 스케줄, 웹훅 등으로 시작할 수 있고, 스텝은 레코드 조작, 이메일 발송, HTTP 요청, JavaScript 코드 실행, 브랜치, Iterator, AI Agent, Delay, Form 등을 포함한다.

이미지 캡션: README의 CRM 도구 이미지다. Views, Workflows, Permissions, APIs, Import/Export, Self-hosting이 하나의 CRM 코어에 묶여 있음을 보여준다.

 

이 기능은 “CRM에 데이터가 쌓인다”에서 끝나지 않고, “데이터 변화가 후속 행동을 유발한다”로 이어진다.

예를 들어 신규 리드 생성 시 담당자 배정, 이메일 초안 작성, 외부 enrichment API 호출, 승인 후 발송 같은 과정을 하나의 워크플로로 묶을 수 있다.

4. Developer-first Apps: TypeScript로 CRM을 확장

Twenty의 가장 흥미로운 방향은 앱 플랫폼화다.

npx create-twenty-app@latest로 앱을 만들고, TypeScript 코드에서 객체·필드·로직 함수·프론트 컴포넌트·스킬/에이전트·뷰를 정의한다.

SDK는 빌드 시 앱 소스를 분석해 엔티티를 추출하고, CLI는 로컬 Twenty 인스턴스와 동기화하거나 프라이빗 앱으로 배포한다.

이미지 캡션: Twenty Apps를 코드 또는 AI 보조 방식으로 만들 수 있음을 보여주는 README 이미지다. 커스텀 객체와 UI가 제품 설정이 아니라 개발 산출물로 취급된다는 점이 핵심이다.

이미지 캡션: Twenty가 CRM 변경 사항을 코드처럼 버전 관리하고 배포하는 개발 흐름을 지향한다는 이미지다. CRM 설정 변경도 Git, CI/CD, 코드 리뷰의 대상으로 만들 수 있다.

 

이 접근은 Salesforce의 Apex/Lightning, HubSpot의 Private App, Retool류 내부 도구의 장점을 섞은 방향에 가깝다.

차이는 Twenty가 오픈소스 코어와 TypeScript 생태계를 전면에 둔다는 점이다.

5. AI Agent와 CRM 데이터 권한 모델의 결합

Twenty 문서에서 AI는 별도 챗봇이 아니라 CRM 데이터 모델과 권한 체계 안에 들어간 기능으로 설명된다.

챗봇은 레코드를 검색·요약할 수 있고, 에이전트는 레코드 enrichment, 후속 이메일 작성, 파이프라인 분석, 인입 데이터 라우팅 같은 작업을 수행할 수 있다. Workflows 안에서는 조건문, API 호출, 수동 승인 단계와 함께 배치될 수 있다.

이미지 캡션: README의 AI Agent 이미지다. 사용자가 CRM 컨텍스트 안에서 질문하고, 에이전트가 데이터와 업무 흐름을 연결하는 사용 장면을 보여준다.

 

기술적으로 중요한 점은 에이전트의 행동 공간이 CRM 객체, 권한, 워크플로 단계로 제한된다는 것이다.

이는 의료 AI나 자율 에이전트 개발에서 특히 중요하다.

자유형 LLM 호출보다 감사 가능하고, 승인 지점을 넣기 쉽고, 어떤 레코드에 어떤 액션이 발생했는지 추적하기 쉽다.

6. REST/GraphQL API와 Metadata API

Twenty는 워크스페이스 스키마를 기준으로 REST와 GraphQL API를 생성한다.

공식 문서에 따르면 커스텀 객체를 만들면 해당 객체에 대한 REST/GraphQL 엔드포인트도 생긴다.

Core API는 레코드 CRUD를, Metadata API는 객체·필드·관계 같은 스키마 레벨 조작을 담당한다.

 

이 방식은 CRM을 외부 데이터 파이프라인에 붙이는 데 유리하다.

예를 들어 Bioinformatics 분석 파이프라인이 샘플 처리 상태를 Twenty의 커스텀 객체에 업데이트하거나, 병원 운영 시스템이 상담 요청을 People/Tasks 객체로 흘려보내는 구조를 만들 수 있다.

7. Webhooks와 외부 시스템 연동

웹훅은 레코드 생성·수정·삭제 이벤트를 외부 서비스에 전달한다.

공식 문서에는 이벤트명, JSON body, 2xx 응답 처리, HMAC-SHA256 서명 검증이 설명되어 있다.

Discussions에서는 WhatsApp, Telegram, Messenger, Okta, Keycloak, Salesforce/HubSpot/Zoho/Pipedrive 마이그레이션, n8n/Make/Windmill 같은 네이티브·미들웨어 통합 요구가 반복적으로 등장한다.

즉 현재의 강점은 “확장 가능한 API/웹훅 기반”이고, 향후 경쟁력은 “얼마나 많은 네이티브 통합을 안정적으로 제공하느냐”에 달려 있다.

8. Self-hosting과 데이터 소유권

Twenty는 Cloud와 Self-hosting을 모두 제공한다. Docker Compose 문서는 PostgreSQL, Redis, 서버, 워커, 프론트엔드를 포함한 구성을 안내하며, .env 설정, ENCRYPTION_KEY, 데이터베이스 비밀번호, 볼륨 보존, 백업 명령을 다룬다.

의료·바이오·엔터프라이즈 환경에서는 이 점이 핵심이다.

외부 SaaS CRM에 모든 데이터를 맡기기 어려운 조직은 자체 인프라, VPC, 사내 보안 정책에 맞춰 운영할 수 있다.

다만 자체 호스팅이 곧바로 HIPAA, GDPR, ISO 27001 같은 컴플라이언스를 보장하는 것은 아니다.

암호화, 접근 제어, 감사 로그, 백업, DPA, 운영 절차는 별도로 검증해야 한다.


Tech Stack

아래 버전은 GitHub main 브랜치의 루트 및 패키지 package.json, .nvmrc, .yarnrc.yml 기준이다.

영역 기술 버전/근거 역할
Runtime Node.js 24.5.0 루트 .nvmrc, package engines 기준
Package Manager Yarn 4.13.0 루트 packageManager, .yarnrc.yml 기준
Monorepo Nx 22.5.4 twenty-front, twenty-server, twenty-sdk 등 패키지 조율
Language TypeScript 5.9.2 전면 TypeScript 기반
Frontend React 18.2.0 CRM 웹 UI
Frontend Build Vite / SWC Vite 기반, @vitejs/plugin-react-swc 4.2.3 프론트 개발·빌드
Frontend State Jotai 2.17.1 클라이언트 상태 관리
GraphQL Client Apollo Client 4.0.0 계열 GraphQL 통신
UI / Editor Mantine, BlockNote, TipTap Mantine 8.3.11, BlockNote 0.47.3, TipTap 3.4.x UI 컴포넌트·문서 편집
i18n Lingui 5.1.x 다국어 처리
Backend NestJS 11.1.16 API 서버 구조
API GraphQL / REST GraphQL 16.8.1 Core API, Metadata API
ORM TypeORM 0.3.20 patch PostgreSQL 접근
Queue BullMQ 5.40.0 워커·워크플로 비동기 처리
Database PostgreSQL Docker/Local setup 기준 주요 데이터 저장소
Cache/Queue Infra Redis Docker/Local setup 기준 캐시, 세션/큐 보조
Observability OpenTelemetry, Sentry OTel 1.9.x+, Sentry 10.51.x 모니터링·에러 추적
SDK twenty-sdk, twenty-client-sdk workspace 패키지 앱 개발, CLI, 타입 안전 클라이언트
Docs Mintlify / MDX packages/twenty-docs 공식 문서 사이트
License AGPL-3.0 루트 package metadata 오픈소스 라이선스

패키지 구조상 주요 모듈은 다음과 같다.

twenty/
├─ packages/twenty-front                 # React 기반 CRM 프론트엔드
├─ packages/twenty-server                # NestJS 기반 API 서버/워커
├─ packages/twenty-sdk                   # 앱 개발 SDK 및 CLI
├─ packages/create-twenty-app            # 앱 스캐폴딩 도구
├─ packages/twenty-client-sdk            # 클라이언트 SDK
├─ packages/twenty-front-component-renderer
├─ packages/twenty-ui                    # UI 컴포넌트
├─ packages/twenty-docs                  # Mintlify 공식 문서
├─ packages/twenty-docker                # Docker 배포 자산
└─ packages/twenty-zapier                # Zapier 연동 패키지

Architecture

이미지 캡션: Twenty의 주요 런타임 계층과 개발자 확장 계층을 합쳐 정리한 분석용 아키텍처 다이어그램이다. 저장소 이미지가 아니라 README, 공식 문서, 패키지 구조를 바탕으로 생성한 도식이다.

 

Twenty의 아키텍처를 한 문장으로 요약하면 “메타데이터 기반 CRM 코어 + 타입스크립트 앱 확장 + 워크플로/에이전트 런타임”이다.

런타임 계층

브라우저 사용자는 twenty-front의 React UI를 사용한다.

이 프론트엔드는 Apollo Client를 통해 GraphQL API와 통신하고, REST API도 함께 활용한다.

서버 계층은 twenty-server의 NestJS 애플리케이션이 담당한다.

서버는 인증, 권한, Core API, Metadata API, 워크스페이스 데이터 모델, 워크플로 실행을 조율한다.

 

PostgreSQL은 CRM 레코드와 메타데이터의 중심 저장소다.

Redis와 BullMQ는 비동기 작업, 큐, 캐시성 처리에 사용된다. Workflows, Webhooks, 이메일/캘린더 동기화, AI Provider 호출 같은 작업은 서버와 워커 계층을 통해 처리된다.

확장 계층

개발자는 create-twenty-app으로 앱 프로젝트를 만들고, twenty-sdk와 CLI를 사용해 앱을 로컬 Twenty 인스턴스에 동기화한다.

앱은 커스텀 객체·필드, 로직 함수, 프론트 컴포넌트, 스킬/에이전트, 뷰를 정의할 수 있다.

공식 문서에 따르면 프론트 컴포넌트는 Web Worker 및 Remote DOM 기반의 격리 실행 모델을 사용하고, 서버 로직은 Node.js 환경에서 독립적으로 실행된다.

이미지 캡션: 로컬 개발 중 Twenty UI에서 앱 목록을 확인하는 화면이다. CLI로 동기화한 앱이 CRM 관리 UI에 표시되는 흐름을 설명한다.

 

이미지 캡션: 앱 상세/등록 화면이다. 개발자가 만든 앱이 Twenty 인스턴스 내부에서 관리 가능한 확장 단위로 취급됨을 보여준다.

 

이미지 캡션: 설치된 앱 페이지 예시다. 커스텀 앱이 단순 코드 조각이 아니라 관리 UI와 배포 흐름을 가진 제품 기능으로 노출된다.

Discussions에서 보이는 프로젝트 방향

Discussions에서는 중복 레코드 처리, 리드/HTML 폼, WhatsApp Business 동기화, 공유 메일박스, 네이티브 통합, Podman 성능 이슈 같은 주제가 반복적으로 보인다.

특히 네이티브 통합 논의에서는 커뮤니케이션, 인증, 스토리지, 캘린더, CRM 마이그레이션, 마케팅 자동화, 문서 도구, n8n/Make/Windmill 같은 미들웨어 연동이 폭넓게 다뤄진다.

 

이는 Twenty가 아직 모든 네이티브 통합을 갖춘 성숙 SaaS라기보다는, 오픈소스 코어와 확장 플랫폼을 빠르게 넓히는 단계라는 신호다.

기술 블로그 관점에서는 이 지점이 가장 중요하다.

Twenty의 장점은 이미 완성된 통합 카탈로그가 아니라, 통합을 만들 수 있는 구조에 있다.


Usage & Setup

1. Twenty App 개발 빠른 시작

공식 앱 Quick Start의 핵심 흐름은 다음과 같다.

npx create-twenty-app@latest my-twenty-app
cd my-twenty-app

# 로컬 Twenty 개발 인스턴스 실행
yarn twenty server

# 앱 개발 모드: 앱 변경 사항을 Twenty 인스턴스에 동기화
yarn twenty dev

 

이미지 캡션: 앱 Quick Start 문서의 로컬 서버 실행 프롬프트다. Twenty 앱 개발을 위해 Docker 기반 개발 인스턴스를 띄우는 흐름을 보여준다.

 

이미지 캡션: 로컬 Twenty 인스턴스 로그인 화면이다. 개발용 인스턴스에 접속해 앱 동기화 결과를 확인하는 단계와 연결된다.

 

이미지 캡션: CLI가 Twenty 인스턴스에 접근하기 위해 OAuth 승인을 받는 화면이다. 앱 개발 도구가 실제 CRM 인스턴스와 안전하게 연결되는 과정을 보여준다.

 

이미지 캡션: create-twenty-app 실행 후 앱 스캐폴딩이 완료된 터미널 예시다. 기본 앱 구조가 생성되고 다음 개발 명령으로 이어진다.

 

이미지 캡션: yarn twenty dev로 앱 변경 사항을 감시하고 Twenty 인스턴스에 동기화하는 터미널 예시다.

앱을 프라이빗으로 배포할 때는 README 기준 다음 흐름을 사용한다.

npx twenty app:publish --private

2. 저장소 로컬 개발

Twenty 자체를 로컬에서 개발하려면 공식 Local Setup 문서 기준 대략 다음 흐름이다.

git clone https://github.com/twentyhq/twenty.git
cd twenty

# Node 24.5.0 / Yarn 4 준비
nvm install
yarn

# 데이터베이스 초기화
npx nx database:reset twenty-server

# 서버, 워커, 프론트 실행
npx nx start twenty-server
npx nx worker twenty-server
npx nx start twenty-front

# 또는 루트에서 통합 실행
npx nx start

 

개발 환경에서 프론트엔드는 일반적으로 localhost:3001, 서버는 localhost:3000, GraphQL은 localhost:3000/graphql, REST는 localhost:3000/rest로 접근한다.

데모 로그인 정보는 공식 문서에 tim@apple.dev / tim@apple.dev로 안내되어 있다.

3. Docker Compose Self-hosting

운영 또는 자체 호스팅 목적이라면 Docker Compose 문서를 따른다.

# 공식 설치 스크립트 방식
curl -fsSL https://raw.githubusercontent.com/twentyhq/twenty/main/packages/twenty-docker/scripts/install.sh | bash

 

수동 구성에서는 .env, docker-compose.yml을 내려받고, 최소한 다음 값을 설정한다.

openssl rand -base64 32   # ENCRYPTION_KEY 생성
# .env에서 PG_DATABASE_PASSWORD, SERVER_URL 등 설정

docker compose up -d

 

운영 환경에서는 SERVER_URL을 실제 도메인으로 지정하고 HTTPS를 적용해야 한다.

데이터 영속성은 Docker volume에 의존하므로, docker compose down -v처럼 볼륨을 제거하는 명령은 운영 환경에서 매우 주의해야 한다.


Personal Insights

의료 AI 관점

Twenty의 가장 큰 가능성은 “CRM”이라는 이름보다 권한 있는 업무 데이터 위에 AI Agent를 얹는 구조에 있다.

의료 AI에서는 환자 정보, 상담 이력, 검사 의뢰, 보험/행정 태스크처럼 비정형 운영 데이터가 많다.

Twenty의 커스텀 객체와 Workflow를 이용하면, 예를 들어 다음과 같은 흐름을 구성할 수 있다.

신규 환자 문의 생성
→ 개인정보/동의 여부 필드 검증
→ 담당 코디네이터 배정
→ AI가 상담 요약 초안 생성
→ 사람 승인 후 후속 안내 메일 발송
→ 감사 로그와 태스크 상태 저장

 

다만 실제 PHI/PII를 다루려면 자체 호스팅만으로 충분하지 않다.

접근 제어, 데이터 암호화, 로그 보존, 모델 제공자와의 데이터 처리 계약, 삭제 요청 처리, 내부 감사 절차를 별도로 설계해야 한다.

Twenty는 이런 시스템의 “운영 워크플로 레이어” 후보이지, 의료 규제 준수를 자동으로 해결하는 솔루션은 아니다.

Bioinformatics 관점

Bioinformatics 팀은 분석 파이프라인보다 오히려 “누가 어떤 샘플을 요청했고, 어느 단계까지 처리됐고, 어떤 결과 리포트가 전달됐는가” 같은 운영 추적에서 병목을 겪는다.

Twenty의 객체 모델은 샘플, 코호트, 시퀀싱 런, 변이 리포트, 연구자, 협력기관 같은 엔티티를 CRM 스타일로 연결하는 데 적합하다.

가능한 모델 예시는 다음과 같다.

Institution ─ Researcher ─ Project ─ Cohort ─ Sample ─ Sequencing Run ─ Analysis Report

여기에 Workflows를 붙이면 “FASTQ 업로드 완료 → QC 태스크 생성 → 분석 파이프라인 실행 요청 → 결과 레코드 업데이트 → 연구자 알림” 같은 운영 자동화를 만들 수 있다.

다만 변이 호출, BAM/VCF 관리, LIMS 수준의 샘플 체인 오브 커스터디는 전문 시스템과 통합하는 편이 맞다.

Autonomous Agent 개발 관점

자율 에이전트 개발에서 가장 어려운 문제는 모델 성능보다 행동 경계, 권한, 감사 가능성이다.

Twenty는 에이전트가 접근할 수 있는 데이터와 실행할 수 있는 액션을 CRM 객체, 권한, 워크플로 단계로 제한할 수 있다.

이는 에이전트를 제품에 넣을 때 실용적이다.

특히 다음 패턴이 유효하다.

LLM 판단
→ 구조화된 CRM 객체 업데이트
→ Workflow 조건 분기
→ 사람이 승인해야 하는 단계 삽입
→ 외부 API 호출
→ 결과와 근거를 레코드에 기록

 

이 구조는 “완전 자율”보다 “승인 가능한 반자율”에 적합하다.

의료·바이오처럼 오류 비용이 큰 분야에서는 이 절충이 더 안전하다.

향후 Twenty가 에이전트 실행 로그, 프롬프트/툴 호출 추적, 정책 기반 차단, 평가셋 기반 회귀 테스트까지 강화한다면 AI 운영 플랫폼으로서의 가치가 커질 수 있다.


분석 결론

Twenty는 아직 “모든 통합이 준비된 완성형 엔터프라이즈 CRM”이라기보다, 오픈소스 CRM 코어를 기반으로 개발자가 CRM을 직접 빌드·버전관리·배포할 수 있게 만드는 플랫폼에 가깝다.

따라서 Twenty를 평가할 때는 단순 CRM 기능 체크리스트보다 다음 질문이 더 중요하다.

  1. 우리 조직의 CRM 데이터 모델이 표준 Salesforce/HubSpot 모델을 넘어서는가?
  2. CRM 변경 사항을 코드 리뷰와 CI/CD의 대상으로 만들 필요가 있는가?
  3. 자체 호스팅 또는 데이터 소유권이 중요한가?
  4. AI Agent를 실제 업무 데이터와 권한 체계 안에서 실행해야 하는가?
  5. 네이티브 통합 부족을 API, Webhook, SDK, 미들웨어로 보완할 수 있는 개발 역량이 있는가?

이 질문에 “그렇다”가 많다면 Twenty는 단순 CRM 대안이 아니라, 조직별 운영 시스템을 만드는 개발 플랫폼으로 검토할 가치가 있다.


이미지 자산 매칭 요약

파일 설명
figures/앱_생성_및_코드_확장.png Twenty Apps를 코드/AI로 만드는 README 이미지
figures/버전_관리_기반_앱_개발.png CRM 커스터마이징을 버전 관리 대상으로 다루는 README 이미지
figures/데이터_로직_레이아웃_프리미티브.png 데이터·로직·레이아웃 빌딩 블록 설명 이미지
figures/레이아웃_커스터마이징.png 커스텀 레이아웃/화면 구성 설명 이미지
figures/AI_에이전트와_채팅.png CRM 컨텍스트 안의 AI Agent/Chat 설명 이미지
figures/CRM_기본_도구_모음.png Views, Workflows, APIs, Permissions 등 CRM 도구 모음 이미지
figures/로컬_인스턴스_시작_프롬프트.png 앱 개발용 로컬 인스턴스 시작 안내 화면
figures/로그인_화면.png 로컬 Twenty 로그인 화면
figures/CLI_OAuth_승인_화면.png CLI OAuth 승인 화면
figures/앱_스캐폴딩_완료_터미널.png 앱 스캐폴딩 완료 터미널
figures/개발_모드_동기화_터미널.png 앱 개발 모드 동기화 터미널
figures/개발자_앱_목록.png Twenty UI의 개발자 앱 목록 화면
figures/앱_등록_상세.png 앱 등록/상세 화면
figures/설치된_앱_페이지.png 설치된 앱 페이지
figures/아키텍처_다이어그램.png 분석 결과를 바탕으로 생성한 Twenty 아키텍처 다이어그램

Source Notes