사내 설치형 데이터 · 소프트웨어 모델링
회사의 설계도는
회사 서버에서 그립니다
Bluetong 은 ERD · REST API · 시퀀스 다이어그램을 웹 브라우저와 macOS 앱에서 그리고 고치는 모델링 도구입니다. 서버를 회사 안에 설치하므로 모델과 편집 이력, AI 와 나눈 대화가 회사 서버에 남습니다. AI 가 만든 데이터베이스도 사람이 바로 ERD 로 보고, AI 와 사람, 사람과 사람이 한 모델을 함께 고칩니다.
블루통의 청사진 작업실
- 웹 + macOS
- 같은 기능의 두 앱 — 브라우저와 네이티브 Mac 앱
- PostgreSQL · Oracle · MySQL
- DDL 생성 · 가져오기, 운영 중인 DB 에서 바로 가져오기
- 사내 AI
- Ollama · OpenAI 호환 주소를 회사가 직접 지정
화면 속 쇼핑몰 모델은 설명을 위해 만든 예시입니다.
왜 사내 설치형인가
데이터 모델은 회사 업무의 설계도입니다
테이블 · 컬럼 · 관계에는 회사가 어떻게 일하는지가 그대로 담깁니다. Bluetong 은 그 설계도를 회사가 가진 서버에 두고, 여럿이 함께 고치고, AI 의 도움도 회사 안에서 받도록 만들었습니다.
모델이 회사 서버에 남습니다
서버는 회사 서버에 설치되고, 모델 · 편집 이력 · 공유 기록 · AI 대화 내역은 회사의 PostgreSQL 에 저장됩니다. 편집할 때마다 서버에 저장되므로 파일을 주고받으며 판을 맞출 일이 없습니다.
AI 를 쓰되, 밖으로 보내지 않습니다
AI 채팅은 서버에 등록한 AI 주소로만 갑니다. 사내에 둔 Ollama 를 연결하면 다이어그램 내용이 회사 망을 벗어나지 않습니다. AI 를 연결하지 않아도 모든 편집 기능은 그대로 씁니다.
접근과 기록을 회사가 관리합니다
초대받은 사람만 가입하고, 관리자가 회원과 쓸 수 있는 AI 를 정합니다. 로그인 · 공유 · 삭제 같은 행위는 감사 기록으로 회사 데이터베이스에 남습니다.
AI · 사람 · 팀 코워크
AI 가 개발하며 만든 데이터베이스를, 사람이 바로 확인합니다
AI 가 코드를 짜며 만든 테이블은 마이그레이션 파일과 개발 DB 에 흩어져, 무엇이 생겼는지 사람이 따라가기 어렵습니다. Bluetong 은 그것을 곧바로 관계선이 그려진 ERD 로 보여 줍니다. 사람은 빠르게 확인하고 고치고, AI 는 사람이 고친 모델을 다시 읽어 개발을 이어 갑니다. AI 와 사람, 사람과 사람이 한 모델에서 일합니다.
- 1
AI 가 직접 그립니다
코딩 AI 가 MCP 도구(
add_tables·change_tables)로 테이블을 만들면, 같은 다이어그램을 연 사람의 화면에 그 자리에서 나타납니다. - 2
AI 가 쓴 DDL 을 넣습니다
마이그레이션의
CREATE TABLE은 명령 한 줄로 다이어그램에 들어갑니다 —bluetong apply <프로젝트> <다이어그램> --ddl schema.sql - 3
개발 DB 에서 바로
「DB 에서 가져오기」로 AI 의 코드가 만든 개발 DB(PostgreSQL · MySQL · Oracle)의 테이블을 그대로 읽어 ERD 로 만듭니다.
- 4
정리해서 검토합니다
「자동 정리」 한 번이면 참조되는 테이블은 위, 관계선은 직각으로 놓입니다. 무엇이 생겼는지 한눈에 보고 그 자리에서 고칩니다.
그림 설명
- 주황 실선은 AI 에이전트의 편집입니다. 코딩 AI 가 MCP 도구(
add_tables·change_tables)나 명령줄로 테이블 · 컬럼 · 관계를 만들거나 고칩니다. - 서버가 권한을 봅니다. AI 는 회원이 만든 API 키로 들어오고, 키마다 정한 범위(읽기 전용 · 편집, 쓸 수 있는 프로젝트) 안에서만 고칩니다.
- 파란 점선은 실시간 전달입니다. 같은 다이어그램을 연 사람의 화면에 AI 가 만든 테이블이 곧바로 ERD 로 나타납니다.
- 회색 실선은 사람의 편집입니다. 여러 사람이 동시에 다듬어도 서버가 순서를 정해 모두 같은 결과에 이릅니다.
- 주황 점선은 AI 가 지금의 모델을 다시 읽는 길입니다(
describe_diagram). 사람이 고친 이름 · 주석 · 관계가 AI 의 다음 작업에 그대로 쓰입니다.
AI 가 쓰고, 사람이 봅니다
AI 가 만든 테이블은 SQL 글이 아니라 관계선이 그려진 ERD 로 보입니다. 「자동 정리」로 읽기 좋게 놓아(arrange_diagram) 무엇이 생겼는지 한눈에 검토합니다.
사람이 고치면, AI 가 다시 읽습니다
사람이 이름 · 주석 · 관계를 다듬으면 AI 는 지금의 모델을 읽어 다음 코드와 SQL 에 씁니다. 한 모델이 AI 와 팀 사이의 약속이 됩니다.
AI 에게도 권한과 기록을
AI 에이전트는 API 키로만 들어옵니다. 키마다 읽기 전용 · 편집과 쓸 수 있는 프로젝트를 정하고 언제든 폐기합니다. 앱 안의 AI 채팅은 사람이 「적용」을 눌러야 들어갑니다.
# AI 도구에 Bluetong 을 붙입니다(키는 회원이 만든 API 키 — 읽기 전용으로도 줄 수 있음)
{
"mcpServers": {
"bluetong": {
"command": "bluetong",
"args": ["mcp"],
"env": { "BLUETONG_SERVER": "https://modeling.example.com", "BLUETONG_API_KEY": "btk_…" }
}
}
}
# 도구: list_projects · list_diagrams · describe_diagram · add_tables · change_tables · arrange_diagram
기능
모델링에 필요한 것을 한 화면에서
다이어그램을 그리는 일부터 SQL 과 API 문서로 내보내는 일까지, 따로 도구를 오가지 않고 끝냅니다.
ERD
노테이션 패널에서 테이블 · 뷰 · 1:1 · 1:N · M:N 관계 · DB 시퀀스 · 저장 프로시저 · 트리거 · 일반화 · 메모를 골라 그립니다. 컬럼 주석을 이름 대신 보여 주는 「주석」 보기도 있습니다.
REST API 다이어그램
REST 리소스(메서드 · URI · 요약)와 요청 · 응답 본문, 본문이 가리키는 클래스를 한 장에 그립니다. Swagger(OpenAPI) 문서를 가져와 바로 다이어그램으로 만들고, 고친 다이어그램은 다시 Swagger 로 내보냅니다. 클래스의 속성 · 오퍼레이션은 그 자리에서 고칩니다.
시퀀스 다이어그램
생명선 · 메시지 · 반환 메시지 · 생성 · 재귀 메시지, alt · loop 같은 결합 조각과 조건을 그립니다.
손에 맞는 편집
관계선을 끌어 꺾고 직각으로 다듬기, 우클릭 메뉴, 검사 패널에서 컬럼 · 속성 편집, 실행 취소 · 다시 실행, 복사 · 붙여넣기 · 복제.
자동 정리
얽힌 관계선을 테이블을 피해 직각으로 다시 긋고, 원하면 테이블 배치까지 정리합니다. 서버가 계산하며 AI 를 쓰지 않습니다.
SQL
PostgreSQL(기본) · Oracle · MySQL DDL 생성과 CRUD SQL. pg_dump · mysqldump · Oracle DDL 가져오기, 운영 중인 DB 에 접속해 바로 가져오기(리버스 엔지니어링). SQL 은 색으로 구분해 보여 줍니다.
OpenAPI · Swagger
OpenAPI 3 · Swagger 2 문서를 가져오면 REST API 다이어그램이 되고, 다이어그램은 OpenAPI 문서(YAML · JSON)로 내보냅니다. API 설계와 문서가 한 모델에서 나옵니다.
3D 보기
한 테이블과 그 테이블을 참조하는 테이블들을 회전목마처럼 둘러보고, 여러 ERD 를 층으로 쌓아 관계선과 함께 펼칩니다. 유리 카드 모양도 고를 수 있습니다.
파일 관리 NEW
서버의 파일에 나만의 태그를 달고 태그로 찾고 정렬합니다. 지운 파일은 휴지통에 정해 둔 기간(기본 7일) 동안 남고, 보관 기간은 설정 화면에서 바꿉니다.
화면
실제 화면으로 둘러보기
아래 그림은 모두 Bluetong 웹 앱을 그대로 찍은 것입니다. 시스템이 어두운 모드면 어두운 화면으로 보입니다.
화면 속 쇼핑몰 모델은 설명을 위해 만든 예시입니다.
자동 정리
DDL 을 가져온 다음, 버튼 하나로 정리합니다
가져온 테이블은 줄지어 놓이고 관계선은 서로 엇갈립니다. 「자동 정리 ▸ 테이블 배치까지」는 참조되는 테이블을 위에, 참조하는 테이블을 아래에 두고 관계선을 테이블을 피해 직각으로 다시 긋습니다. 결과는 실행 취소 한 번으로 되돌아갑니다.
계산은 서버가 합니다(AI 를 쓰지 않음). 웹 · macOS 앱 · 명령줄(bluetong arrange) · MCP 가 같은 결과를 얻습니다.
AI 채팅
열린 다이어그램을 두고 AI 와 이야기합니다
「반품을 받을 수 있게 테이블을 만들어 줘」처럼 말하면 AI 가 새 테이블 · 컬럼 · 관계를 제안합니다. 제안은 「적용」을 눌러야 다이어그램에 들어갑니다.
- 제안 → 적용 → 한 번에 되돌리기AI 의 제안은 미리 보기로만 나옵니다. 적용한 제안 하나는 실행 취소 한 번에 통째로 되돌아갑니다.
- 쓸 AI 를 고릅니다OpenAI 호환 주소나 Ollama 를 연결합니다. 사내 Ollama 를 쓰면 다이어그램 내용이 회사 밖으로 나가지 않습니다. 키는 서버에만 저장됩니다.
- 회원별 사용 권한관리자가 AI 를 등록해 회원마다 허락합니다. 회원이 자기 AI 주소를 따로 등록할 수도 있습니다. 허락받은 AI 는 회원 화면에 이름과 모델만 보입니다.
- 다이어그램마다 남는 대화대화 내역은 다이어그램별로 서버에 저장돼, 나중에 다시 열어 이어 갑니다. 글 파일과 그림을 끌어 놓아 함께 보낼 수 있습니다.
그림 속 AI 의 답은 예시입니다. 실제 답은 회사가 연결한 모델에 따라 다릅니다. Bluetong 은 AI 에게 열린 다이어그램의 테이블 · 컬럼 · 주석 · 관계를 설명으로 보내고, AI 가 돌려준 제안 가운데 다이어그램에 맞는 것만 적용합니다.
협업
여럿이 같은 다이어그램을 동시에
편집은 그때그때 서버에 저장되고, 같은 프로젝트를 연 사람들의 화면에 곧바로 나타납니다. 서버가 순서를 정하므로 모든 화면이 같은 결과에 이릅니다.
그림 설명
- 실선은 편집이 올라가는 길입니다. 웹과 macOS 앱의 편집이 같은 서버로 갑니다.
- 서버가 순서를 정합니다. 동시에 들어온 편집은 서버가 판 번호 순으로 차례를 매기고, 칸 · 속성 단위로 합칩니다(3-way 병합).
- 이름 · 설명은 글자 단위로 합쳐져 두 사람이 동시에 친 글자가 모두 남습니다.
- 파란 점선은 실시간 전달입니다. 모든 화면이 같은 순서로 받아 같은 상태가 되고, 다른 사람의 포인터와 고른 도형도 보입니다.
프로젝트 · 다이어그램 단위 공유
프로젝트 전체 또는 다이어그램 하나만 공유합니다. 권한은 보기 · 편집 · 주인 저장소에 저장 · 본인 저장소에 저장 · 인쇄. 공유를 거두면 열어 둔 화면도 곧바로 닫힙니다.
공유 알림
누군가 공유하면 앱 안의 종 · 브라우저 푸시 · macOS 푸시 · 메일로 알립니다. 메일은 회사 SMTP 로 보냅니다.
편집마다 저장 · 이력
편집할 때마다 서버에 저장되고 판 번호가 올라갑니다. 변경 이력이 서버에 남아, 늦게 들어온 화면도 빠진 판을 받아 따라잡습니다.
보안
회사 안에서도 한 겹 더
사내망이라고 평문으로 두지 않습니다. 로그인 뒤의 모든 요청을 봉하고, 배포본이 바뀌지 않았는지 브라우저와 앱이 스스로 확인합니다.
세션 봉투
로그인 때 ECDH P-256 으로 세션 키를 만들고(HKDF), 이후 모든 API 요청과 응답을 AES-256-GCM 으로 봉합니다. 한 바이트라도 바뀌면 거절합니다.
초대 가입 · 메일 인증
가입은 초대코드로만, 전자우편 인증번호를 확인한 뒤에 됩니다. 비밀번호는 argon2id 로 저장합니다.
감사 기록
로그인 · 가입 · 잠금 · 비밀번호 재설정 · AI 사용 같은 일을 서버가 기록합니다.
.blue 파일
서버에서 내려받는 .blue 는 AES-256-GCM 으로 봉하고 서명한 파일이라, 그 파일을 만든 서버만 엽니다.
웹 묶음 무결성
배포한 웹 앱의 스크립트 · WebAssembly 에 무결성 값(SRI)을 달고 콘텐츠 보안 정책(CSP)을 겁니다. 바뀐 파일은 브라우저가 실행하지 않습니다.
난독화 · WebAssembly 코어
배포본 코드는 난독화하고, 파일 형식을 읽고 쓰는 핵심은 WebAssembly 코어로 둡니다.
공증받은 macOS 앱
macOS 앱은 Apple 공증을 받고, 실행할 때 자기 서명을 확인한 뒤에 코어를 불러옵니다. 자동 업데이트도 같은 서명 · 공증을 확인한 새 판만 받습니다.
API 키
API 키는 P-256 키 쌍입니다. 서버에는 공개키만 두고, 키마다 읽기 전용 · 프로젝트 제한을 정할 수 있습니다.
개발자
화면 밖에서도 — 명령줄 · MCP · SDK
사람이 화면에서 하는 일을 스크립트와 AI 에이전트도 할 수 있습니다. 권한은 화면과 똑같이 서버가 판단합니다.
# 회사 서버에 로그인(비밀번호는 화면에 보이지 않게 묻습니다)
$ bluetong login --server https://modeling.example.com --email kim@example.com
# 내 프로젝트와 공유받은 프로젝트
$ bluetong projects
내 프로젝트
J8K2M4Q7R1T5V9X3 r42 쇼핑몰 데모
공유받은 프로젝트
J3N6P9S2U5W8Y1Z4 회계 모델 (lee@example.com)
# 관계선과 테이블 배치를 서버가 정리
$ bluetong arrange <projectId> "주문 · 결제" --tables
# 회사가 연결한 AI 에게 묻고, 제안을 적용
$ bluetong ai <projectId> "주문 · 결제" "반품 테이블을 만들어 주문상품과 이어 줘" --apply
# AI 에이전트(MCP 클라이언트)에 붙이기
$ claude mcp add bluetong -- node /opt/bluetong/cli/bluetong.mjs mcp
bluetong CLI
login · projects · import · export · diagrams · show · apply(DDL · 연산) · ai · arrange · api. 결과는 표 또는 JSON 으로.
MCP 서버
bluetong mcp — AI 에이전트가 프로젝트 · 다이어그램을 읽고, 테이블을 더하고 고치고, 자동 정리를 부릅니다.
API 키
키 쌍은 화면에서 만들고 서버에는 공개키만. 서명으로 세션을 열고, 읽기 전용 · 프로젝트 제한을 둘 수 있습니다.
TypeScript · Python SDK
세션 봉투까지 처리하는 클라이언트 라이브러리로 사내 시스템과 잇습니다.
macOS 앱
Mac 에서는 Mac 앱으로
웹과 같은 기능을 SwiftUI 네이티브 앱으로 냈습니다. 같은 서버에 붙어 웹 사용자와 함께 편집합니다.
- Mac 다운 화면Xcode 처럼 나뉜 칸, 표준 메뉴 막대와 단축키, 우클릭 메뉴, 검사 패널, 설정 창.
- 웹과 같은 기능편집 · 노테이션 패널 · 자동 정리 · SQL · API · AI 채팅 · 공유 · 실시간 공동 편집. 3D 보기는 RealityKit 으로 그립니다.
- 공증 · 자동 업데이트Apple 공증을 받은 DMG 로 배포합니다. 새 판이 나오면 앱이 스스로 내려받아 서명 · 공증을 확인한 뒤 바꿔 끼웁니다.
macOS 15 이상 · Apple 실리콘 · Intel · Apple 공증 DMG
구성 · 도입
회사 서버 한 곳에 설치합니다
Bluetong 서버는 Tomcat 위에서 도는 자바 웹 애플리케이션이고, 데이터는 PostgreSQL 에 저장합니다. 웹 앱도 같은 Tomcat 이 내려 주므로 들일 것이 많지 않습니다.
그림 설명
- 왼쪽 위에서 오른쪽으로: 사용자 → Bluetong 서버 → PostgreSQL. 웹 앱과 API 를 한 Tomcat 이 내려 주므로 주소가 하나입니다.
- 모델 · 편집 이력 · 공유 · AI 대화 내역은 PostgreSQL 에, 세션 봉투와 서명에 쓰는 키는 서버의 설정 폴더에 있습니다. 백업은 이 둘을 매일 함께 떠 둡니다.
- 주황 점선은 회사가 정한 곳으로만 나가는 연결입니다. AI 는 관리자 · 회원이 등록한 주소로, 메일은 회사 SMTP 로 갑니다. 사내 Ollama 를 쓰면 이 둘 모두 회사 안에서 끝납니다.
- 영역 밖으로 나가는 선은 푸시 하나이며 선택 사항입니다. macOS · 브라우저 푸시 알림을 쓸 때만 Apple · 브라우저 회사의 푸시 서버로 알림을 보냅니다.
| 구성 요소 | 내용 |
|---|---|
| 서버 | Java 21 WAR · Tomcat 11. 기준 실행 환경은 Docker 이미지입니다. 웹 앱도 같은 Tomcat 에서 내려 줍니다. |
| 데이터베이스 | PostgreSQL 17 — 프로젝트(모델 · 다이어그램), 편집 이력, 공유, AI 대화 내역, 감사 기록. |
| 메일 | 회사 SMTP 로 가입 인증번호와 공유 알림 메일을 보냅니다. |
| AI (선택) | OpenAI 호환 주소 또는 Ollama. 연결하지 않아도 나머지 기능은 그대로 씁니다. |
| 백업 | 매일 pg_dump + 키 묶음. 백업을 일회용 DB 에 되살려 표마다 행 수를 운영과 대조하는 검증 명령이 있습니다. |
| 배포 · 되돌리기 | 배포와 되돌리기가 각각 명령 하나입니다. 스키마는 더하기만 하므로 한 판 전 서버로 되돌려도 안전합니다. |
- 1
서버 올리기
Bluetong 서버(Java 21 · Tomcat 11)와 PostgreSQL 17 을 회사 서버에 올리고 스키마를 만듭니다.
- 2
첫 관리자
설치 때 서버가 만드는 시작 코드로 첫 관리자가 가입합니다. 이후 회원은 관리자가 초대합니다.
- 3
메일 · 도메인 · AI
회사 SMTP 와 HTTPS 주소를 정하고, 쓸 AI(사내 Ollama 등)를 등록해 회원에게 허락합니다.
- 4
팀 초대 · 시작
관리자가 팀을 초대하면 회원은 전자우편 인증으로 가입하고, 바로 함께 모델링을 시작합니다.
도입 문의
Bluetong 도입을 검토 중이신가요?
팀 규모와 쓰는 데이터베이스, AI 를 어디에 둘지 알려 주시면 맞는 구성과 도입 절차를 안내해 드립니다.
메일에 적어 주시면 좋은 것
- 회사 · 담당자, 예상 사용 인원
- 쓰는 데이터베이스(PostgreSQL · Oracle · MySQL)
- AI 연결 계획 — 사내 Ollama 를 둘지, 다른 주소를 쓸지
Levelupsoft Inc. · Modeling makes ideas real.