콘텐츠로 건너뛰기

AI와 함께

AI와 함께

This category can be followed from the open social web via the handle AI와 함께@argo9.com

2.0k 토픽 2.1k 게시물
  • 인체 드로잉 프롬프트

    1
    1
    0 투표
    1 게시물
    15 조회수
    atmarkA
    나노바나나를 추가해서 광각 포즈 생성을 각도별로 할 수 있는데... 다만 돈은 좀 들어갑니다. 인체드로잉 관련 책을 빨리 팔고 정리해야겠다는 생각밖에... 안듭니다. [image: 1765404705572-ae9afb3c-2c56-43ba-9e1f-e96e8652ca2a-image-resized.png] https://www.yes24.com/product/goods/125890375
  • DB 기반 자동 게시물 등록을 위한 크롬 확장 프로그램

    이동됨
    2
    0 투표
    2 게시물
    68 조회수
    atmarkA
    크롬 확장 프로그램(MV3) 및 백엔드 API 기반 자동 콘텐츠 게시 시스템 설계 및 구현 사양 I. 시스템 개요 및 하이브리드 아키텍처 설계 제안된 자동 콘텐츠 게시 시스템은 안정성, 보안, 그리고 Manifest V3(MV3) 환경의 제약 조건을 준수하는 크로스 플랫폼 통합을 목표로 하는 하이브리드 아키텍처로 설계되었습니다. 이 시스템은 클라이언트 기반의 불안정성을 해소하고, 민감한 인증 정보를 중앙 서버에서 안전하게 관리하여 자동화의 신뢰성을 극대화하는 데 중점을 둡니다. A. 시스템 구성 요소 정의 및 역할 분담 (Separation of Concerns) 본 시스템은 엄격한 역할 분담 원칙에 따라 세 가지 핵심 구성 요소로 나뉩니다. 이러한 분리는 특히 크롬 확장 프로그램의 생명주기 제약 조건을 극복하고, 지속적인 서비스 제공을 보장하기 위해 필수적입니다. 크롬 확장 프로그램 (클라이언트): 확장 프로그램은 사용자 경험(UI) 제공, 웹 콘텐츠 수집, 그리고 백엔드 시스템과의 통신을 담당합니다. MV3의 요구 사항에 따라 서비스 워커(Service Worker)를 사용하여 백그라운드 이벤트 처리를 구현합니다.1 서비스 워커는 유휴 상태로 전환되거나 종료될 수 있으므로, 주기적인 작업을 위해 chrome.alarms API를 활용하여 백엔드 상태 동기화를 트리거하는 보조 스케줄러 역할을 수행합니다.3 중요하게도, 확장 프로그램은 소셜 미디어 플랫폼에 직접적으로 게시물 등록을 시도하지 않으며, 모든 민감한 인증 및 등록 작업은 백엔드에 위임됩니다. 백엔드 API 서버 (게이트웨이 및 데이터 관리): 이 서버는 시스템의 게이트웨이 역할을 하며, 클라이언트의 요청 처리와 데이터베이스 관리를 중앙에서 담당합니다. 파일 기반의 SQLite 데이터베이스를 안전하게 RESTful 엔드포인트로 노출하며 5, 확장 프로그램 및 내부 스케줄러의 요청을 인증 및 비즈니스 로직에 따라 처리합니다. 가장 중요한 역할은 외부 플랫폼으로부터 획득한 장기 지속성 토큰(Refresh Token)을 암호화하여 저장하고 관리하는 것입니다. 자동 스케줄링 서비스 (실행 엔진): 자동 등록의 핵심 엔진으로, 서버 측에서 24시간 상시 구동됩니다. 신뢰성 있는 자동화를 위해서는 확장 프로그램 클라이언트 측 실행에 의존할 수 없습니다. 따라서 이 서비스는 서버 내부의 신뢰성 있는 스케줄러(systemd Timer 또는 Cron)를 사용하여 주기적으로 Task Queue를 실행합니다.7 이 실행 엔진은 백엔드 API 서버를 통해 DB에 대기 중인 게시물 항목을 검색하고, 획득한 토큰을 사용하여 트위터(X)나 쓰레드(Threads) 같은 외부 플랫폼에 게시물을 실제로 등록합니다. B. 주요 데이터 흐름 및 상호작용 (Architectural Flow) 시스템의 복잡한 상호작용은 명확한 데이터 흐름을 통해 정의됩니다. 특히, 인증 과정과 자동화 실행 과정이 분리되어 독립적으로 작동합니다. 프로세스 시작 주체 경로 및 핵심 기술 보안 및 상태 변화 콘텐츠 수집 Extension Service Worker Service Worker → Backend API (/collect) Extension ID 기반 인증, DB에 게시물 PENDING 상태로 저장 외부 OAuth 인증 Extension Service Worker chrome.identity.launchWebAuthFlow (PKCE) → OAuth Provider → Backend API (Code Exchange) Refresh Token 백엔드 안전 저장, Access Token 획득 자동 등록 실행 Systemd Timer (백엔드) Task Queue → Backend Posting Logic → External API Access Token 사용, DB 상태 (twitter_status, threads_status) 업데이트 상태 동기화 chrome.alarms (클라이언트) Service Worker → Backend API (/sync) 최신 DB 상태 조회, chrome.storage.local 업데이트 8 콘텐츠 자동 등록의 신뢰성을 보장하려면, chrome.alarms의 역할이 자동 등록의 주 실행 엔진이 아닌, 서버 스케줄러의 상태를 주기적으로 확인하고 사용자에게 피드백을 제공하는 보조 동기화 트리거로 제한되어야 합니다. 서비스 워커의 생명주기가 불안정하며 브라우저 종료 시 실행이 중단되는 특성상, 24시간 자동화 요구사항은 클라이언트 측 실행의 불안정성과 근본적으로 충돌하기 때문입니다.3 C. 기술 스택 선정 본 시스템은 현대적인 분산 시스템의 요구사항을 충족하기 위해 검증된 기술 표준을 채택합니다. OAuth 2.0 PKCE: 확장 프로그램과 같은 Public Client 환경에서 클라이언트 비밀(Client Secret)을 안전하게 저장할 수 없는 문제를 해결하기 위해, 보안 표준인 Authorization Code Flow with Proof Key for Code Exchange (PKCE) 9를 채택합니다. DB API 추상화: SQLite DB 파일에 대한 직접적인 외부 접근은 보안상 매우 위험합니다. 따라서 데이터베이스와 비즈니스 로직을 분리하고 중앙 집중화하기 위해 RESTful API 게이트웨이 패턴을 사용합니다.5 크롬 환경: Manifest V3 규정을 준수하며, 백그라운드 작업 처리를 위해 서비스 워커를 사용하고 1, 인증을 위해 chrome.identity API를 활용합니다. 확장 프로그램의 ID는 단순한 식별자를 넘어, 시스템 보안 및 멀티테넌시를 위한 중요한 요소로 활용됩니다. Google API 인증 시 확장 프로그램 ID의 일관성을 유지해야 하는 기술적 요구사항 외에도 1, 이 고유 ID를 내부 API Key처럼 활용하여 백엔드 DB 스키마 (owner_extension_id)에 포함하고 모든 백엔드 API 요청 인증 헤더에 포함시킴으로써, 백엔드가 합법적인 클라이언트 인스턴스만 서비스하도록 강제하는 클라이언트 식별자 및 멀티테넌시 키로 기능하게 됩니다. 이는 시스템의 수평적 접근 제어를 설계하는 핵심 기반이 됩니다. II. 클라이언트 설계: Manifest V3 크롬 확장 프로그램 A. Manifest V3 환경에서의 Service Worker 운영 크롬 확장 프로그램의 핵심 로직은 Service Worker에서 실행됩니다. Manifest V3에서 Service Worker는 백그라운드 페이지를 대체하며, 이벤트 발생 시에만 활성화되고, 일정 시간이 지나거나 작업이 완료되면 종료되는 비영구적인 생명주기를 가집니다. Service Worker의 역할: Service Worker는 사용자 클릭(chrome.action.onClicked) 이벤트나 예약된 알람(chrome.alarms.onAlarm) 이벤트에 반응하여 활성화됩니다.2 활성화된 Service Worker는 fetch API를 사용하여 백엔드 API와의 비동기 통신을 처리하며 11, 수집된 데이터를 전송하거나 상태 동기화 정보를 가져옵니다. ID 일관성 유지: 확장 프로그램을 안정적으로 운영하기 위해서는 개발 초기에 패키징 및 개발자 대시보드에 업로드하여 고정된 확장 프로그램 ID를 확보하는 것이 필수적입니다. 이 ID는 OAuth 2.0 리디렉션 URI에 등록되어야 하며, 백엔드 API 통신 시 클라이언트 인스턴스를 식별하는 데 사용되어야 합니다.1 Manifest V3 Service Worker는 비활성화 상태에서 깨어날 때(콜드 스타트) 초기화 시간이 필요합니다. 만약 중요한 API 키나 설정 데이터가 메모리에만 의존한다면, 초기 API 호출이 지연되거나 실패할 수 있는 위험이 있습니다. 이 문제를 해결하기 위해, Service Worker가 실행되는 즉시 chrome.storage.local에서 모든 필수 설정(예: 백엔드 API 주소, 클라이언트 인스턴스 JWT)을 비동기적으로 로드하도록 설계해야 하며, 이는 어떤 백엔드 API 호출보다도 먼저 완료되어야 합니다. B. 콘텐츠 수집 및 API 호출 사용자가 웹 페이지에서 게시물 수집 기능을 활성화하면, 다음 단계에 따라 백엔드에 데이터가 안전하게 저장됩니다. 데이터 추출: Content Script는 대상 페이지의 DOM에서 필요한 콘텐츠(텍스트, URL 등)를 추출합니다. 메시징: Content Script는 추출된 데이터를 확장 프로그램의 Service Worker로 메시지를 통해 전달합니다. 게시물 저장 요청: Service Worker는 수집된 데이터를 JSON 형식으로 변환하고, 확장 프로그램의 인증 토큰 및 ID를 포함하여 백엔드 API의 /api/v1/posts/collect 엔드포인트로 POST 요청을 보냅니다. 이 요청을 통해 게시물은 데이터베이스에 PENDING 상태로 저장됩니다. C. 클라이언트 상태 관리 및 영구 저장소 활용 확장 프로그램의 UI(팝업, 옵션 페이지)와 Service Worker 간의 상태 공유는 MV3 아키텍처에서 중요한 설계 요소입니다. 중앙 집중식 상태 저장: chrome.storage.local API는 Service Worker를 포함하여 확장 프로그램의 모든 구성 요소가 비동기적으로 접근할 수 있는 영구적인 로컬 저장소를 제공합니다.8 이 저장소는 Service Worker가 재시작되더라도 데이터를 유지합니다. 저장 데이터: 저장소에는 최근 동기화된 게시물 큐의 요약 상태, 사용자 피드백을 위한 Access Token의 유효성 여부(단, 민감한 Refresh Token은 백엔드에만 저장되어야 함), 그리고 백엔드 API 주소 등의 설정값이 저장됩니다. 상태 동기화 패턴: 팝업 UI는 chrome.storage.local에 의존하여 상태를 표시하며, chrome.storage.onChanged.addListener 이벤트 리스너 8를 활용하여 백엔드로부터 새로운 상태가 Service Worker를 통해 저장될 때마다 UI를 즉각적으로 업데이트하는 반응형 패턴을 구현해야 합니다.12 UI(팝업)는 상태를 표시하고, Service Worker는 통신을 담당합니다. 따라서 영구적이거나 복잡한 상태 데이터(게시물 큐 목록)는 chrome.storage.local을 통해 공유하고, 단기적인 명령(예: "지금 동기화")에만 직접적인 메시지 전달을 사용하여 불필요한 통신 부하를 줄이는 것이 효율적입니다. D. chrome.alarms를 통한 주기적 동기화 Service Worker의 비영구성을 보완하고, 백엔드의 자동 등록 상태 변화를 클라이언트에게 전달하기 위해 chrome.alarms API를 사용합니다. 설정 및 권한: manifest.json 파일에 "alarms" 권한을 선언해야 합니다.4 runtime.onInstalled 이벤트 핸들러 내에서 chrome.alarms.create 메서드를 사용하여 알람을 생성하며, 예를 들어 5~10분 간격의 periodInMinutes를 설정할 수 있습니다.3 동기화 로직: 알람이 경과하면 (chrome.alarms.onAlarm 이벤트 발생), Service Worker는 활성화되어 백엔드 API의 /api/v1/status/sync 엔드포인트를 호출합니다. 이 호출의 목적은 백엔드 스케줄러가 게시물을 성공적으로 등록했는지, 또는 토큰 만료와 같은 중요한 오류가 발생했는지 확인하여 클라이언트의 chrome.storage.local을 최신 상태로 업데이트하는 데 있습니다. III. 데이터 관리 및 RESTful API 백엔드 구축 A. SQLite DB와 API 게이트웨이의 역할 SQLite DB는 파일 기반 데이터베이스로, 서버 측에서 신뢰성 있는 데이터 지속성을 제공하지만, 원격 접근은 반드시 API 게이트웨이를 통해 이루어져야 합니다. API 역할 강화: API 게이트웨이는 SQLite DB 파일에 대한 직접적인 외부 접근을 차단하고, 인증, 비즈니스 로직(예: Task Queue 항목 검색 로직), 그리고 동시성 처리를 통합하는 중앙 집중식 제어 지점을 제공합니다.5 이는 확장 프로그램 클라이언트와 서버 측 스케줄러를 포함한 다양한 주체로부터의 요청을 안전하게 관리하는 유일한 방법입니다. 구현 고려사항: 단순한 프로토타이핑을 넘어선 실제 운영 환경에서는, 커스텀 API 서버(예: FastAPI, Express.js)를 구축하여 복잡한 트랜잭션 무결성, 인증, 그리고 Refresh Token 관리 기능을 구현해야 합니다. B. 콘텐츠 및 상태 관리 데이터베이스 스키마 정의 자동화 시스템의 핵심은 등록 대상 게시물과 그 상태를 정확히 추적하는 데 있습니다. 게시물은 플랫폼별로 등록 상태를 독립적으로 관리해야 합니다. 게시물 관리 데이터베이스 스키마 (Post Management Schema) 필드명 데이터 타입 제약조건 설명 주요 용도 post_id INTEGER PRIMARY KEY, AUTOINCREMENT 게시물 고유 식별자 큐 관리 및 조회 owner_extension_id TEXT NOT NULL 게시물을 수집한 확장 프로그램 인스턴스 ID 멀티테넌시 및 접근 제어 content_text TEXT NOT NULL 수집된 게시물 내용 실제 포스팅 내용 scheduled_time DATETIME NOT NULL 게시 예정 시간 (UTC) 스케줄러 기준 시간 is_processed BOOLEAN DEFAULT FALSE 포스팅 큐에 의해 처리되었는지 여부 큐 필터링 twitter_status TEXT (ENUM) PENDING/POSTED/FAILED 트위터 등록 상태 등록 진행 상황 추적 threads_status TEXT (ENUM) PENDING/POSTED/FAILED 쓰레드 등록 상태 등록 진행 상황 추적 last_error TEXT NULLABLE 최근 등록 실패 시 상세 오류 메시지 오류 진단 및 재시도 refresh_token_encrypted TEXT NULLABLE 소셜 미디어 플랫폼 Refresh Token (암호화) 자동 갱신 및 보안 C. 핵심 RESTful 엔드포인트 사양 및 설계 엔드포인트는 클라이언트(확장 프로그램)와 내부 스케줄러가 사용하는 권한을 명확히 분리하여 설계해야 합니다. 요청 유형 경로 기능 설명 권한 요구사항 활용 주체 POST /api/v1/posts/collect 확장 프로그램 ID 인증, 새 게시물 저장 Extension Client (JWT) 클라이언트 GET /api/v1/posts/queue 등록 대기 중인 게시물 목록 조회 (현재 시간 기준) Internal Token (높은 권한) 스케줄러 PUT /api/v1/posts/{id}/status 특정 게시물의 상태 및 오류 로그 업데이트 Internal Token (높은 권한) 스케줄러 GET /api/v1/status/sync/{ext_id} 클라이언트의 큐 상태 및 토큰 유효성 동기화 Extension Client (JWT) 클라이언트 POST /api/v1/auth/exchange OAuth 인가 코드와 PKCE Verifier를 받아서 토큰 교환 및 저장 Extension Client (JWT) 클라이언트 (인증 직후) D. 백엔드 보안: 인증 및 토큰 관리 시스템의 보안은 내부 권한 제어와 민감 데이터의 암호화에 달려 있습니다. 내부 권한 분리 및 RBAC: 클라이언트와 스케줄러는 동일한 API 게이트웨이를 사용하지만, 역할과 신뢰 수준이 근본적으로 다릅니다. 스케줄러는 DB 쓰기 및 상태 변경에 대한 높은 권한을 가져야 하지만(Internal Token), 클라이언트는 자신의 owner_extension_id와 관련된 데이터에 대한 접근(POST, GET)만 허용되어야 합니다. API 게이트웨이에서는 역할 기반 접근 제어(RBAC)를 구현하여, Internal Token을 가진 주체만이 /queue 조회 및 /status 업데이트 같은 민감한 엔드포인트에 접근하도록 보장해야 합니다. Refresh Token 암호화: Refresh Token은 장기 자동화의 핵심이지만, 유출 시 영구적인 계정 탈취로 이어질 수 있는 가장 민감한 정보입니다. 따라서 DB에 저장 시에는 반드시 AES-256 등 강력한 대칭 암호화 알고리즘을 사용하여 암호화해야 하며, 이 암호화에 사용되는 서버 마스터 키는 환경 변수나 보안 금고(Vault)를 통해 안전하게 관리되어야 합니다. 트랜잭션 무결성 및 동시성 제어: 스케줄러가 여러 작업자(Worker)로 구성될 수 있으므로, 게시물을 큐에서 가져와 처리할 때 데이터 불일치 문제를 방지해야 합니다. 스케줄러가 게시물 처리를 위해 항목을 가져가는 작업은 is_processed 필드를 업데이트하는 과정과 함께 데이터베이스 트랜잭션 내에서 원자적으로(Atomic) 처리되어야 합니다. SQLite의 잠금 메커니즘을 고려하여 API 레이어에서 동시성 문제를 관리하는 것이 중요합니다. IV. 외부 플랫폼 통합 및 보안 프로토콜 (OAuth 2.0 PKCE) A. 크롬 확장 프로그램 환경에서의 OAuth 2.0 흐름 크롬 확장 프로그램은 클라이언트 비밀을 안전하게 보관할 수 없으므로, Public Client로 분류됩니다. 따라서 표준적인 OAuth 2.0 Authorization Code Flow를 사용하되, 보안을 강화하기 위해 PKCE(Proof Key for Code Exchange) 확장을 적용하는 것이 필수적입니다.9 Manifest V3 확장 프로그램은 리디렉션이나 쿠키 설정을 직접 수행할 수 없으므로, 인증에는 Chrome Identity API가 사용됩니다.2 암시적 부여(Implicit Flow)는 보안 문제로 인해 이미 비권장되고 있습니다.14 B. PKCE 구현 상세 절차 Twitter(X) API v2나 Threads와 같은 외부 플랫폼과의 인증은 다음과 같은 PKCE 단계를 통해 진행됩니다. Code Verifier 및 Challenge 생성: 확장 프로그램 Service Worker는 고유하고 임의적인 Code Verifier 문자열을 생성합니다. 이 Verifier는 SHA256 해시 함수를 거친 후 Base64 URL 인코딩되어 Code Challenge로 변환됩니다. 이 Challenge는 권한 부여 요청 시 사용되며, Verifier는 최종 토큰 교환을 위해 임시 저장됩니다. 이때 해싱 방법으로 S256이 사용됩니다.9 권한 부여 요청 (Web Auth Flow): Service Worker는 chrome.identity.launchWebAuthFlow API를 호출하여 외부 인증 서버의 권한 부여 엔드포인트에 사용자를 리디렉션합니다. 이 요청에는 response_type=code, client_id, redirect_uri, 필수 scope, state, 그리고 생성된 code_challenge 및 code_challenge_method=S256이 포함됩니다.10 인가 코드 포착: 사용자가 외부 플랫폼에서 로그인하고 권한을 승인하면, OAuth 서버는 사전에 등록된 리디렉션 URI로 사용자를 리디렉션합니다. chrome.identity.launchWebAuthFlow는 이 리디렉션을 안전하게 가로채어 인가 코드(Authorization Code)를 Service Worker에 반환합니다.9 토큰 교환 (백엔드 책임): Service Worker는 획득한 인가 코드와 1단계에서 생성한 Code Verifier를 백엔드 API의 /api/v1/auth/exchange 엔드포인트로 안전하게 전송합니다. 백엔드 서버는 이 정보를 사용하여 OAuth 서버에 Access Token과 Refresh Token을 요청하여 최종 토큰을 교환하고, 이를 암호화하여 DB에 저장합니다. Twitter OAuth 2.0 PKCE 흐름에서 400 Bad Request 오류가 발생하는 사례가 보고된 바 있습니다.10 이러한 오류는 대부분 설정의 불일치에서 기인합니다. 특히 Code Verifier와 Challenge의 S256 해싱 및 Base64 인코딩 과정의 정확성, 그리고 Developer Portal에 등록된 redirect_uri가 요청과 완벽하게 (대소문자까지) 일치하는지 반복적으로 검증하는 과정이 필수적입니다. C. 필수 OAuth 스코프 및 토큰 관리 전략 필수 스코프: 자동 스케줄링 및 지속적인 백그라운드 작업을 위해 가장 중요한 스코프는 offline.access입니다.10 이 스코프는 Refresh Token 획득을 가능하게 하여, 사용자가 확장 프로그램 UI를 사용하지 않거나 오프라인 상태일 때도 서버 측에서 Access Token을 갱신할 수 있도록 합니다. 게시물 등록을 위해서는 tweet.write 또는 해당 플랫폼의 쓰기 스코프가 필요하며, 사용자 계정 정보 조회를 위해 users.read가 요구될 수 있습니다.15 토큰 위치 및 보안 의무: Refresh Token을 클라이언트(chrome.storage.local)에 저장하는 것은 보안상 심각한 위험을 초래합니다. 확장 프로그램이 로컬 파일 시스템에 취약할 수 있으며, Refresh Token이 유출될 경우 공격자가 사용자의 계정에 대한 영구적인 접근 권한을 획득할 수 있습니다. 따라서 Refresh Token은 반드시 백엔드 서버에서만 관리되어야 하며, 클라이언트는 백엔드가 발급한 단기 유효기간의 JWT만 사용하도록 강제하는 것이 분산 시스템 보안의 최우선 원칙입니다. Access Token 갱신: 백엔드 스케줄러는 포스팅 작업을 실행하기 직전에 Access Token의 만료 시간을 확인하고, Refresh Token을 사용하여 Access Token을 선제적으로 갱신해야 합니다. 이를 통해 자동 등록 실행 시 발생할 수 있는 401 Unauthorized 오류를 방지하고 작업의 안정성을 높입니다. V. 자동 스케줄링 및 배포 전략 A. 신뢰성 높은 서버 측 스케줄러 및 Task Queue의 사용 자동화 시스템의 핵심은 서버 측 스케줄러의 신뢰성입니다. Cron Job은 명령 실행 스케줄러로서 검증되었지만 7, 현대적인 서버 환경에서는 systemd Timer가 더 우수합니다. systemd Timer는 로깅, 의존성 관리, 오류 발생 시 재시작 기능 등 향상된 유연성을 제공합니다. Task Queue 아키텍처: systemd Timer는 Task Queue Worker를 주기적으로 실행시키는 단순한 트리거 역할만 수행해야 합니다. 실제 포스팅 로직은 Redis나 RabbitMQ와 같은 메시지 브로커를 사용하는 Celery(Python)와 같은 전용 Task Queue 시스템 내에서 처리되어야 합니다. Task Queue 시스템을 사용하면 비동기 처리, 실패 시 자동 재시도, 동시성 관리, 그리고 포스팅 순서 보장이 가능하여 시스템의 확장성과 신뢰성을 극대화할 수 있습니다. B. 스케줄러의 큐 처리 및 오류 관리 스케줄러의 작업자(Worker)는 다음의 정교한 로직을 수행해야 합니다. 큐 폴링 및 원자적 처리: 스케줄러는 DB의 /api/v1/posts/queue 엔드포인트를 주기적으로 호출하여 현재 게시 예정 시간이 도래한(또는 초과한) 등록 대기 중인 게시물 리스트를 가져옵니다. Worker가 게시물 처리를 시작할 때, DB 상태를 is_processed=TRUE로 즉시 업데이트하여 다른 Worker에 의한 중복 처리를 방지합니다. Rate Limit 회피 및 지연 포스팅: 소셜 미디어 API는 엄격한 속도 제한(Rate Limit)을 적용하므로 16, API 호출을 분산시키기 위해 Task Queue에 지연 실행 명령을 내려 요청을 분산시켜야 합니다. Post Status의 분할 관리: 게시물 등록은 트위터와 쓰레드에 대해 독립적으로 성공하거나 실패할 수 있습니다. Task Queue는 한 번의 DB 폴링으로 여러 플랫폼에 대한 포스팅 작업을 예약하되, 각 플랫폼에 대한 작업은 별도의 서브태스크로 처리되어야 합니다. DB 스키마에 twitter_status와 threads_status를 분리하여 부분 성공(Partial Success) 시나리오를 명확하게 추적합니다. 정교한 오류 보고: 포스팅 실패 시, last_error 필드에 상세한 API 오류 코드와 메시지를 기록하고, 해당 플랫폼의 상태(예: twitter_status=FAILED)를 업데이트합니다. 정의된 재시도 정책이 남아있을 경우, Task Queue는 일정 시간 후 재시도를 예약합니다. C. API 할당량 및 속도 제한 관리 방안 Google Identity Platform을 포함한 모든 주요 API 서비스는 할당량 제한을 두고 있습니다.16 이 제한을 관리하는 것은 안정적인 서비스 운영에 필수적입니다. 사용자 인증 속도 제한: 특히 신규 애플리케이션의 경우, 사용자 인증 속도 제한(New user authorization rate limit)을 초과할 위험이 있습니다. 이 경우 사용자에게 Error 403: rate_limit_exceeded 오류가 표시될 수 있습니다.16 이를 방지하기 위해 토큰 갱신 시도를 최소화하고, 성공적으로 획득된 Refresh Token을 안전하게 사용하여 갱신 요청을 분산시켜야 합니다. 소프트웨어 Rate Limiter 구현: 백엔드 스케줄러가 외부 소셜 미디어 API를 호출하는 모든 지점에, 토큰 버킷 또는 리키 버킷 알고리즘을 기반으로 하는 소프트웨어 Rate Limiter를 적용해야 합니다. 이 내부 Rate Limiter는 외부 플랫폼의 요청 제한을 초과하지 않도록 요청 속도를 조절하는 역할을 합니다. API 호출이 임계치에 근접할 경우, 강제로 작업 속도를 늦추거나 다음 실행 시간을 연기하여 403 Forbidden 오류 발생을 선제적으로 회피해야 합니다. D. 실패 시 사용자 피드백 메커니즘 자동 스케줄링 시스템이 실패하더라도 사용자는 즉시 이를 알지 못할 수 있습니다. 사용자 경험과 시스템 신뢰성을 위해 명확한 피드백 메커니즘이 필요합니다. 스케줄러가 최종 FAILED 상태로 확정된 게시물을 발견하여 DB에 기록하면, 다음 chrome.alarms 동기화 주기 때 해당 오류 정보를 클라이언트로 전송해야 합니다. Service Worker는 이 정보를 바탕으로 chrome.notifications API를 통해 사용자에게 "포스팅 실패: 오류 코드 XXX"와 같은 즉각적인 알림을 제공하여 사용자에게 상황을 명확하게 인지시켜야 합니다. VI. 결론 및 권장사항 본 보고서에 제시된 하이브리드 아키텍처는 Manifest V3 크롬 확장 프로그램의 생명주기 제약 조건을 극복하고, OAuth 2.0 PKCE를 통한 높은 보안 수준을 달성하며, 신뢰성 높은 자동 스케줄링을 구현하기 위한 청사진을 제공합니다. 클라이언트와 서버의 역할 분담, 특히 Refresh Token을 서버에서만 관리하는 전략은 Public Client 환경에서의 보안 의무를 이행하는 데 결정적입니다. 핵심 권장사항 OAuth PKCE의 엄격한 구현: chrome.identity.launchWebAuthFlow를 사용하여 인증을 시작하고, 인가 코드 및 Code Verifier 교환을 백엔드 API에서 전담하도록 설계해야 합니다. redirect_uri와 code_challenge의 정확성을 철저히 검증해야 합니다. 보조 스케줄링 역할의 명확화: 크롬 확장 프로그램의 chrome.alarms는 서버 측 Task Queue의 상태를 동기화하는 보조 수단으로만 사용해야 하며, 실제 포스팅 자동화는 서버의 systemd Timer/Task Queue에 전적으로 의존해야 합니다. 데이터 무결성 및 접근 제어: API 게이트웨이에서 클라이언트 ID(owner_extension_id)를 기반으로 하는 수평적 접근 제어(Horizontal Access Control)와 스케줄러를 위한 내부 토큰을 통한 역할 기반 접근 제어(RBAC)를 모두 구현해야 합니다. 민감 정보 보호: 소셜 미디어 플랫폼에서 획득한 Refresh Token은 반드시 서버 DB에 암호화하여 저장하고, 클라이언트 접근을 완전히 차단해야 합니다. 이러한 구조적 접근 방식은 시스템의 확장성과 보안 취약점 최소화에 기여하며, 기술 역량을 갖춘 개발팀이 자동화된 콘텐츠 등록 서비스를 안정적으로 배포하고 운영할 수 있는 견고한 기반을 제공할 것입니다. 참고 자료 OAuth 2.0: Google로 사용자 인증 | Chrome Extensions, 12월 10, 2025에 액세스, https://developer.chrome.com/docs/extensions/how-to/integrate/oauth?hl=ko OAuth 2.0: authenticate users with Google | Chrome Extensions, 12월 10, 2025에 액세스, https://developer.chrome.com/docs/extensions/how-to/integrate/oauth chrome.alarms | API - Chrome for Developers, 12월 10, 2025에 액세스, https://developer.chrome.com/docs/extensions/reference/api/alarms?hl=ko chrome.alarms | API - Chrome for Developers, 12월 10, 2025에 액세스, https://developer.chrome.com/docs/extensions/reference/api/alarms SOUL - SQLite REST 및 실시간 서버 - GeekNews, 12월 10, 2025에 액세스, https://news.hada.io/topic?id=13950 REST API를 사용하여 데이터베이스 스키마 작성 및 메시지 파일 업로드 - IBM, 12월 10, 2025에 액세스, https://www.ibm.com/docs/ko/odm/8.12.0?topic=cdsumf-create-database-schema-upload-message-files-by-using-rest-api 크론 vs 시스템디 : r/linuxadmin - Reddit, 12월 10, 2025에 액세스, https://www.reddit.com/r/linuxadmin/comments/7ea2mj/cron_vs_systemd/?tl=ko chrome.storage | API - Chrome for Developers, 12월 10, 2025에 액세스, https://developer.chrome.com/docs/extensions/reference/api/storage?hl=ko Simple OAuth2 Client - Chrome Web Store, 12월 10, 2025에 액세스, https://chromewebstore.google.com/detail/simple-oauth2-client/bmcbmjlmbpndabffoeejkfaknnknioej X (Twitter) OAuth 2.0 Authorization Code Flow with PKCE returns 400 Bad Request before login - Stack Overflow, 12월 10, 2025에 액세스, https://stackoverflow.com/questions/79824989/x-twitter-oauth-2-0-authorization-code-flow-with-pkce-returns-400-bad-request Service Worker API - MDN Web Docs, 12월 10, 2025에 액세스, https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API 크롬 확장 프로그램에서 상태 관리는 어떻게 하나요? : r/reactjs - Reddit, 12월 10, 2025에 액세스, https://www.reddit.com/r/reactjs/comments/1c9oef3/state_management_in_chrome_extensions/?tl=ko OAuth2: Google로 사용자 인증 | Manifest V2 - Chrome for Developers, 12월 10, 2025에 액세스, https://developer.chrome.com/docs/extensions/mv2/tutorials/oauth?hl=ko OAuth 2.0 for Client-side Web Applications - Google for Developers, 12월 10, 2025에 액세스, https://developers.google.com/identity/protocols/oauth2/javascript-implicit-flow xdevplatform/oauth2.0-bot: Sample code for creating a bot with OAuth 2.0 Authorization Code Flow with PKCE and V2 of the Twitter API. - GitHub, 12월 10, 2025에 액세스, https://github.com/xdevplatform/oauth2.0-bot OAuth Application Rate Limits - Google Cloud Platform Console Help, 12월 10, 2025에 액세스, https://support.google.com/cloud/answer/9028764?hl=en Quotas and limits | Identity Platform - Google Cloud Documentation, 12월 10, 2025에 액세스, https://docs.cloud.google.com/identity-platform/quotas
  • Yes24사이트에서 도서 정보를 수집하는 크롬익스텐션

    이동됨
    2
    1
    0 투표
    2 게시물
    113 조회수
    atmarkA
    https://a1bbs.com/book/ 가져온 도서목록을 워드프레스 우커머스 상품으로 등록한 결과
  • 나노바나나에서 사용할 수 있는 한글폰트 스타일

    이동됨
    1
    1
    0 투표
    1 게시물
    49 조회수
    atmarkA
    [image: 1765154737007-3b300314-8fcf-44c7-b50b-3737e160574e-image.png] 나노바나나에서 사용할 수 있는 한글폰트 스타일 "명조체 (Serif)" - 우아하고 끝이 삐친 전통적인 명조 서체 "고딕체 (Sans-Serif)" - 깔끔하고 획이 일정한 현대적인 고딕 서체 "예서체 (Reisho)" - 납작하고 파임이 있는 고전적인 서예 서체 "감정류 (Kanteiryu)" - 굵고 구불구불하며 빈틈이 없는 가부키 스타일 서체 "손글씨풍 (Handwritten)" - 펜이나 마카로 쓴 듯한 자연스러운 필기체 "장식/타이틀 계열 (Display)" - 화려하고 눈에 띄는 디자인의 제목용 서체 "호러 계열 (Horror)" - 피가 흐르거나 거칠고 무서운 느낌의 서체 "사이버/SF 계열 (Tech)" - 디지털, 회로 기판, 또는 픽셀 느낌의 미래적인 서체 "캘리그라피 (Calligraphy / Script)" - 붓으로 멋스럽게 흘려 쓴 예술적인 서체] aspect_ratio: 1920:1080 prompt: A wide photographic infographic displayed on a gallery wall, showcasing nine distinct typography styles laid out in a 3x3 grid. Each panel contains Korean and English text rendered exactly in the style it describes. Top row, left: "명조체 (Serif)" rendered in an elegant, traditional serif font resembling printed ink on aged paper. Top row, middle: "고딕체 (Sans-Serif)" in a clean, modern, geometric sans-serif font on a minimalist white background. Top row, right: "예서체 (Reisho)" brushed in ancient Asian calligraphy style with dark ink on textured rice paper. Middle row, left: "감정류 (Kanteiryu)" in thick, dense, wavy traditional Japanese Kabuki theater style, black ink on a wooden sign. Middle row, center: "손글씨풍 (Handwritten)" written casually with a black marker on a piece of lined notebook paper. Middle row, right: "장식/타이틀 계열 (Display)" as a flashy, decorative, illuminated marquee sign with bulb lights. Bottom row, left: "호러 계열 (Horror)" in jagged, dripping blood-red letters on a dark, scratched, grungy background. Bottom row, middle: "사이버/SF 계열 (Tech)" made of glowing blue and purple digital circuit patterns on a futuristic interface screen. Bottom row, right: "캘리그라피 (Calligraphy / Script)" flowing beautifully in expressive, swooshing black ink brushstrokes on high-quality art paper. The overall style is clean and curated, emphasizing the textural differences of each font style.
  • 종이공작 + 투명 비닐 + 인형의 집 놀이북

    이동됨
    1
    2
    0 투표
    1 게시물
    44 조회수
    atmarkA
    이거 만들고 10년된 기념이라 진짜 입체로 조금 바꿨더니... [image: 1764823598497-24053057-8dfc-4812-8058-cf9aadb71b29-image.png] 예쁘긴하네요... 스마트폰을 끼워 넣고 영상을 틀면 창가에 노을 지는 개념의 스마트한 놀이로 생각했습니다. 종이공작 + 투명비닐(아크릴) 레이어에 가구, 인형의 집 스티커를 붙이는 놀이 북이었는데 요즘 스타일로 3D로 만들어 달라고 하니까 [image: 1764823661492-86788293-9cd4-4464-9169-ac5e6ffae47f-image.png] 알리, 테무에서 판매되는 플라스틱 인형의 집을 생각하면 그냥 딴일 알아보겠습니다.
  • 맥, 윈도우, 리눅스용 어플리케이션으로 만다라트 생성기

    이동됨
    1
    1
    0 투표
    1 게시물
    56 조회수
    atmarkA
    [image: 1764781923344-5efda7ff-fded-4f1b-813a-48e7d704032c-image-resized.png] 맥, 윈도우, 리눅스용 어플리케이션으로 만다라트 생성기 0.0001 은 완성했습니다. https://a1bbs.com/ 에 동작(?) 하는 리스트 외에 워드프레스, Nodebb, discourse, gnuboard 등에 내보내기 기능을 + 하는 중입니다. 편집기는 .02 정도에 붙이는 것으로 다른 사람의 템플릿을 이어 받는 CRDT 를 사용해서 온라인 비동기 워크샵도 가능한 구조이나 이것도 저것도... 다 붙이려는 마음 때문에 늦어지고 있습니다. 기본적으로 Ollama 나 GeminiAPI 를 사용하고 있습니다. 무료로 사용이 가능한 LLM으로 사용하는 이유는 함께 어떤 정보를 만들고 그 정보를 프레임워크인 만다라트, 비즈니스모델제너레이션, 피시본 같은 형태 이외에 프로젝트를 역산하는 기능도 포함하고 있습니다. 만다라트를 기본으로 하는 캘린더와 Todo List 를 만들어 놓은 것도 차례대로 추가 할 생각입니다. 일단 베타에 참여하실 분이 계실지는 모르겠지만 댓글로 대기신청 해주시면 빨리 보내드리겠습니다.
  • Simular.ai: 자율 에이전트 컴퓨팅

    이동됨
    1
    1
    0 투표
    1 게시물
    20 조회수
    손호성 0
    Simular.ai: 자율 에이전트 컴퓨팅의 기술적 아키텍처, 구현 방법론 및 산업적 함의에 대한 심층 분석 [image: 1764636861734-%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA-2025-12-02-%E1%84%8B%E1%85%A9%E1%84%8C%E1%85%A5%E1%86%AB-9.54.18-resized.png] 서문: 인공지능과 인간-컴퓨터 상호작용(HCI)의 진화 https://www.youtube.com/watch?v=UJIYX7cRZH4 인류의 컴퓨팅 역사는 인간의 의도를 기계가 이해할 수 있는 언어로 번역하는 과정의 연속이었다. 천공 카드에서 시작하여 명령줄 인터페이스(CLI)를 거쳐 그래픽 사용자 인터페이스(GUI)로의 전환은 컴퓨터 사용의 진입 장벽을 낮추고 정보 혁명을 가속화했다. 그러나 지난 수십 년간 GUI 패러다임 하에서 인간은 여전히 기계의 언어에 맞춰 수동으로 마우스를 클릭하고 키보드를 두드리는 '운영자'의 역할에 머물러 왔다. Simular.ai(이하 Simular)는 이러한 패러다임을 근본적으로 전복시키고자 등장한 기업으로, 인간이 "무엇을(What)" 원하는지 말하면 AI가 "어떻게(How)" 수행할지를 스스로 판단하고 실행하는 '에이전트 중심의 인터페이스(Agentic Interface)'를 제시한다.1 본 보고서는 Simular가 제시하는 자율 컴퓨터(Autonomous Computer)의 비전과 이를 뒷받침하는 기술적 실체를 포괄적으로 분석한다. Simular의 플랫폼은 단순한 웹 브라우저 확장이 아니라, 거대 언어 모델(LLM)의 추론 능력과 시각적 그라운딩(Visual Grounding) 기술을 결합하여 컴퓨터 화면을 인간처럼 인식하고 제어하는 뉴로-심볼릭(Neuro-Symbolic) AI 시스템이다.2 특히 본문에서는 Simular의 제품군인 Simular Browser, Simular Cloud, Simular Pro, 그리고 기저 기술인 Agent S 프레임워크의 기능과 아키텍처를 상세히 해부하고, 실제 사용자를 위한 설치 및 활용 가이드, 그리고 산업별 적용 시나리오를 심도 있게 다룬다. Simular.ai의 철학적 배경과 핵심 가치 제안 1.1 디지털 노동의 재정의: 도구에서 동료로 현대 지식 근로자는 연간 1,500시간 이상을 단순 반복적인 컴퓨터 조작에 소비하고 있다.2 이는 인간의 창의성이 발휘되어야 할 시간이 기계적인 인터페이스 조작에 낭비되고 있음을 의미한다. Simular는 이러한 비효율을 해결하기 위해 설립되었으며, 그들의 목표는 단순한 자동화 도구(Tool)를 넘어선 '디지털 동료(Teammate)'를 창조하는 것이다. 기존의 소프트웨어가 인간의 입력을 수동적으로 기다리는 도구였다면, Simular의 에이전트는 인간의 의도를 해석하고 능동적으로 작업을 계획하며 수행한다.3 이러한 접근은 기존의 RPA(Robotic Process Automation)와는 근본적으로 다르다. RPA는 사전에 정의된 규칙과 좌표에 따라 움직이기 때문에 UI가 조금만 바뀌어도 작동이 멈추는 취약성(Brittleness)을 가진다. 반면, Simular의 에이전트는 인간처럼 화면의 시각적 요소를 이해하고 상황에 맞춰 행동을 수정하는 유연성을 갖추고 있어, API가 없는 레거시 소프트웨어나 수시로 업데이트되는 최신 웹 애플리케이션 모두에 대응할 수 있다.4 1.2 기술적 접근: 뉴로-심볼릭 AI와 범용 에이전트 Simular의 기술적 차별점은 '뉴로-심볼릭(Neuro-Symbolic)' 접근 방식에 있다. 순수한 LLM 기반 에이전트는 창의적이지만 실행의 일관성이 부족하고 환각(Hallucination) 현상을 일으킬 수 있다. 반면, 전통적인 프로그래밍은 정확하지만 유연성이 없다. Simular는 이 두 가지를 결합한다. 신경망(Neural) 계층: LLM과 비전 모델(VLM)을 사용하여 사용자의 자연어 명령을 해석하고, 현재 화면의 상태를 인지하며, 작업의 전반적인 계획을 수립한다. 이는 인간의 '직관'과 '판단'에 해당한다. 기호(Symbolic) 계층: 수립된 계획을 결정론적인 코드(Python, Simulang 등)로 변환하여 실행한다. 이는 작업의 정확성과 반복성을 보장하며, 복잡한 워크플로우를 안정적으로 제어할 수 있게 한다.2 제품 생태계 및 상세 기능 분석 Simular의 생태계는 개인 사용자부터 엔터프라이즈, 그리고 AI 연구자까지 아우르는 포괄적인 라인업으로 구성되어 있다. 각 제품은 고유한 배포 환경과 목적을 가지지만, 핵심 엔진인 'Agent S'를 공유한다. 2.1 Simular Browser: 로컬 기반의 웹 탐색 에이전트 Simular Browser는 일반 사용자가 가장 쉽게 접할 수 있는 형태의 제품으로, macOS 환경에서 네이티브 애플리케이션으로 구동된다.6 클라우드 가상 머신에서 돌아가는 경쟁 서비스들과 달리, 사용자의 로컬 기기에서 직접 실행된다는 점이 가장 큰 특징이다. 2.1.1 핵심 기능 및 사용자 경험 자연어 인터페이스: 주소창에 URL을 입력하는 대신, "최신 AI 트렌드를 검색해서 요약해줘"와 같은 자연어 명령을 입력한다. 브라우저는 이를 해석하여 검색 엔진 접속, 결과 클릭, 내용 추출의 과정을 자동으로 수행한다.7 다중 탭 병렬 처리: 인간이 여러 정보를 비교하기 위해 여러 탭을 띄우는 것처럼, 에이전트 역시 멀티 탭 환경을 제어하며 병렬적으로 정보를 수집한다. 이는 쇼핑몰 가격 비교나 다수의 논문 검색 시 효율성을 극대화한다.7 개인정보 보호 및 보안: 로컬에서 실행되므로 사용자의 쿠키, 로그인 세션, 저장된 비밀번호를 그대로 활용할 수 있다. 또한, 민감한 데이터가 외부 서버로 전송되지 않고 기기 내에서 처리되므로 보안성이 우수하다.8 휴먼-인-더-루프(Human-in-the-loop): 에이전트가 작업하는 과정을 사용자가 실시간으로 지켜볼 수 있으며, 언제든지 마우스를 움직여 개입하거나 작업을 중단시킬 수 있다. 이는 AI의 실수를 방지하고 사용자가 통제권을 유지하게 하는 중요한 설계 철학이다.9 2.2 Simular Cloud: 무설치 자율 컴퓨팅 환경 Simular Cloud는 고사양의 하드웨어나 복잡한 설치 과정 없이도 웹 브라우저를 통해 AI 에이전트가 탑재된 컴퓨터를 사용할 수 있는 서비스이다.3 2.2.1 아키텍처 및 활용성 완전한 리눅스 데스크톱: 단순한 웹 샌드박스가 아니라, 실제 리눅스 데스크톱 환경을 스트리밍으로 제공한다. 따라서 웹 서핑뿐만 아니라 터미널 명령어 실행, 소프트웨어 설치, 파일 시스템 조작 등 OS 수준의 제어가 가능하다.3 확장성 및 접근성: 클라우드 인프라를 활용하므로 사용자의 로컬 기기 사양에 구애받지 않는다. 대규모 데이터 처리나 장시간의 자동화 작업이 필요한 경우, 클라우드 에이전트에게 작업을 위임하고 사용자는 로컬 기기를 자유롭게 사용할 수 있다. 비용 구조: 무료 사용자를 위한 대기열 모드(Queue Mode)와 유료 사용자를 위한 전용 인스턴스(Private Plan)로 나뉜다. 전용 플랜은 지속적인 메모리와 개인화된 환경을 보장한다.3 2.3 Simular Pro: 엔터프라이즈급 자동화 솔루션 Simular Pro는 기업 환경에서의 복잡하고 중요한 워크플로우를 자동화하기 위해 설계된 프리미엄 제품이다.6 2.3.1 엔터프라이즈 기능 고신뢰성 실행: 수천 단계에 이르는 긴 워크플로우에서도 오류 없이 작동하도록 설계되었다. Simular는 이를 위해 '뉴로-심볼릭' 아키텍처를 가장 적극적으로 활용하여, AI의 판단을 검증 가능한 코드로 변환해 실행한다.5 Simulang 스크립팅: JavaScript 문법을 기반으로 한 자체 스크립팅 언어인 Simulang을 통해 개발자가 에이전트의 행동을 정밀하게 제어하거나 수정할 수 있다.10 감사 가능성(Auditability): 에이전트가 수행한 모든 행동은 기록되고 추적 가능하여, 기업의 규정 준수(Compliance) 요건을 충족시킨다.5 기술적 기반: Agent S 프레임워크와 연구 성과 Simular의 모든 제품을 관통하는 핵심 기술은 오픈소스 프레임워크인 'Agent S'이다. Simular는 단순한 제품 개발사가 아닌 연구 중심 기업(Research-driven company)을 표방하며, 지속적으로 최신 연구 성과를 제품에 반영하고 있다.1 3.1 Agent S의 진화 과정 Agent S는 OSWorld와 같은 컴퓨터 사용 벤치마크에서 인간 수준에 근접하는 성능을 보여주며 빠르게 발전해왔다. 버전 주요 특징 및 성과 비고 Agent S (Gen 1) 초기 프레임워크. OSWorld 벤치마크 20.6% 달성. 오픈소스 에이전트의 가능성 입증.11 Agent S2 (Gen 2) 모듈러 아키텍처 도입. 일반론자(Generalist)와 전문가(Specialist) 모듈 분리. OSWorld 48.8% 달성. Claude 3.5 Sonnet 등 경쟁 모델과 경쟁 시작.12 Agent S3 (Gen 3) 최신 버전. Behavior Best-of-N (bBoN) 기술 도입. OSWorld 69.9% 달성. 인간 평균(72%)에 근접한 SOTA(State-of-the-Art) 성능.11 3.2 핵심 기술: UI-TARS와 시각적 그라운딩 에이전트가 컴퓨터를 사용하기 위해서는 화면상의 요소를 인식하고(Perception), 해당 요소의 좌표를 파악하여(Localization), 조작(Action)해야 한다. 이 과정을 '그라운딩(Grounding)'이라고 한다. UI-TARS 모델: Simular는 이를 위해 UI-TARS라는 특화된 비전-언어 모델(VLM)을 사용한다. 이 모델은 스크린샷을 입력받아 버튼, 입력창, 아이콘 등의 기능을 이해하고 그 정확한 좌표(x, y)를 반환한다.13 비전 중심 접근의 우위: 기존의 웹 자동화는 HTML 소스(DOM)를 분석하는 방식이었다. 그러나 최신 웹사이트는 Canvas나 Shadow DOM 등으로 구조가 복잡하거나 난독화되어 있어 DOM 접근이 어렵다. UI-TARS와 같은 시각적 접근은 인간처럼 '보이는 대로' 판단하므로 이러한 기술적 난관을 우회할 수 있다.12 3.3 행동 최적화 전략: Behavior Best-of-N (bBoN) Agent S3의 비약적인 성능 향상은 bBoN 기술 덕분이다. 개념: 에이전트가 다음 행동을 결정할 때 단 하나의 경로만 선택하는 것이 아니라, 여러 개의 시뮬레이션(Rollouts)을 수행해본 뒤 가장 성공 확률이 높은 결과를 선택하는 방식이다.11 효과: 이는 바둑 AI인 알파고가 몬테카를로 트리 탐색(MCTS)을 통해 최적의 수를 찾는 것과 유사한 원리로, 복잡하고 불확실한 GUI 환경에서 에이전트의 성공률을 극적으로 높여준다. 이를 통해 OSWorld 벤치마크에서 단일 모델 실행 대비 약 7% 이상의 성능 향상을 이끌어냈다.11 상세 설치 및 사용 가이드 (Technical Implementation Guide) Simular의 강력한 기능을 활용하기 위한 구체적인 설치 및 설정 방법을 단계별로 안내한다. 본 가이드는 일반 사용자를 위한 Simular Browser와 개발자를 위한 Agent S 프레임워크로 나뉜다. 4.1 Simular Browser 설치 및 설정 (macOS 사용자) 1단계: 다운로드 및 설치 Simular 공식 웹사이트 또는 배포 페이지에서 SimularBrowser.dmg 파일을 다운로드한다. 파일 크기는 내장된 로컬 모델에 따라 다를 수 있으나, 일반적으로 수 GB 내외이다. 다운로드된 디스크 이미지를 마운트하고 SimularBrowser.app을 Applications 폴더로 드래그 앤 드롭하여 설치를 완료한다.7 2단계: 초기 설정 및 권한 부여 앱을 처음 실행하면 Google 계정 로그인을 요구한다. 이는 사용자 프로필 동기화 및 서비스 접근 권한 확인을 위함이다. 로그인이 완료되면, macOS의 보안 정책에 따라 화면 제어 권한을 요청한다. 경로: 시스템 설정 > 개인정보 보호 및 보안 > 손쉬운 사용(Accessibility) 설정: 목록에서 Simular Browser를 찾아 토글을 켜준다. 이 권한이 없으면 에이전트가 화면을 인식할 수는 있어도 클릭이나 타이핑을 할 수 없다.7 3단계: 기본 사용법 브라우저 상단의 입력창(Omnibox)은 URL뿐만 아니라 자연어 명령을 받는다. 단순 검색: "OpenAI의 최신 뉴스 보여줘" 복합 작업: "아마존에서 평점 4.5 이상인 기계식 키보드를 찾아서 가장 싼 것 3개를 비교해줘." 개입: 에이전트가 작동하는 동안 마우스를 움직이면 즉시 제어권이 사용자에게 넘어오며, 작업이 일시 중단된다. 4.2 Agent S 프레임워크 설치 (개발자 및 고급 사용자) Agent S는 Python 기반의 오픈소스 프로젝트로, 더 정교한 커스터마이징이나 윈도우/리눅스 환경 사용자를 위해 적합하다. 1단계: 환경 준비 Python 3.8 이상의 환경이 필요하다. 가상 환경(Virtual Environment)을 사용하는 것을 권장한다. Bash conda create -n agent_s python=3.10 conda activate agent_s 2단계: 리포지토리 클론 및 패키지 설치 GitHub에서 소스 코드를 다운로드하고 의존성 패키지를 설치한다. Bash git clone https://github.com/simular-ai/Agent-S.git cd Agent-S pip install gui-agents gui-agents 패키지는 Simular의 핵심 기능을 라이브러리 형태로 제공한다.14 3단계: API 키 설정 Agent S는 추론을 위해 외부 LLM(GPT-4o, Claude 3.5 등)을 사용하므로 해당 공급자의 API 키가 필요하다. Bash export OPENAI_API_KEY="sk-..." 또는 export ANTHROPIC_API_KEY="sk-ant-..." 4단계: 에이전트 실행 (CLI 모드) 터미널에서 직접 에이전트를 실행하여 명령을 내릴 수 있다. 다음은 최신 모델인 GPT-4o(또는 GPT-5 preview)와 UI-TARS 그라운딩 모델을 사용하는 예시이다. Bash agent_s --provider openai --model gpt-4o-2024-05-13 --grounding_provider ui-tars 명령어가 실행되면 프롬프트가 나타나며, 여기에 "내 문서 폴더의 모든 PDF 파일을 정리해줘"와 같은 명령을 입력하면 된다.13 4.3 Python SDK (pysimular) 활용 개발자는 Python 코드로 브라우저를 제어하여 자신만의 자동화 스크립트를 작성할 수 있다. Python from pysimular import SimularBrowser 브라우저 인스턴스 초기화 (앱 경로 지정) browser = SimularBrowser("/Applications/SimularBrowser.app") 태스크 정의 및 실행 task = "TechCrunch 메인 페이지에서 'AI' 관련 기사 제목 5개를 추출해줘" result = browser.run(task) 결과 처리 print("추출된 기사 목록:", result) 이 코드는 Simular Browser를 백그라운드(또는 포그라운드)에서 실행시켜 정의된 작업을 수행하고, 그 결과를 텍스트로 반환한다. 이는 기존의 Selenium이나 Playwright보다 훨씬 추상화된 고수준의 API를 제공한다.7 산업별 응용 시나리오 및 워크플로우 분석 Simular의 기술은 단순한 편의 기능을 넘어, 특정 산업 분야의 업무 프로세스를 혁신할 잠재력을 가지고 있다. 다음은 실제 적용 가능한 구체적인 시나리오들이다. 5.1 부동산(Real Estate): 데이터 집계 및 분석 자동화 부동산 시장 분석가는 매일 수백 개의 매물을 검토하고 데이터를 엑셀에 정리해야 한다. Zillow나 Redfin 같은 사이트는 크롤링 방지 기술이 적용되어 있어 일반적인 스크립트로는 데이터 수집이 어렵다. 기존 방식의 한계: requests나 BeautifulSoup을 이용한 크롤링은 Zillow의 캡차(CAPTCHA)나 동적 페이지 로딩에 막힌다. n8n과 같은 자동화 도구를 써도 복잡한 API 설정이 필요하다.16 Simular 워크플로우: 명령: "Zillow에서 'Austin, TX' 지역의 $500k~$600k 사이 매물을 검색해." 탐색 및 추출: 에이전트는 실제 브라우저를 띄워 인간처럼 페이지를 이동한다. 시각적 그라운딩 기술로 가격, 주소, 침실 수 등의 데이터를 인식하므로 HTML 구조 변경에 영향을 받지 않는다. 데이터 가공: "추출한 데이터를 엑셀 파일로 저장하고, 평단가가 가장 낮은 매물 5개를 하이라이트 해줘." 우회 능력: 만약 캡차가 뜨면, 에이전트는 잠시 멈추고 사용자에게 해결을 요청하거나(Human-in-the-loop), 가능한 경우 시각 지능을 이용해 슬라이더 등을 조작하여 우회를 시도할 수 있다.3 5.2 금융 및 보험(Finance & Insurance): KYC 및 온보딩 자동화 은행이나 보험사는 신규 고객의 신청서를 처리하는 백오피스 업무에 막대한 인력을 투입한다. Simular 워크플로우: 문서 수신: 이메일로 접수된 PDF 형태의 가입 신청서를 에이전트가 연다. 데이터 인식: OCR 기능을 통해 신청서 내의 이름, 주소, 주민번호 등을 추출한다. 시스템 입력: 사내 레거시 CRM 시스템에 로그인한다. API가 없는 구형 윈도우 애플리케이션이라도 Agent S는 GUI를 인식하여 클릭과 타이핑으로 데이터를 입력할 수 있다. 검증: 입력된 데이터가 원본과 일치하는지 재확인(Reflection)하고 승인 처리를 완료한다. 이 모든 과정은 로그로 기록되어 감사(Audit)에 활용된다.19 5.3 데브옵스(DevOps): 인프라 구축 및 트러블슈팅 개발자는 새로운 프로젝트를 시작할 때마다 환경 설정에 시간을 낭비한다. Simular 워크플로우: 환경 구성: "이 GitHub 리포지토리를 클론하고, README.md에 있는 설치 가이드대로 패키지를 설치해줘." 에러 핸들링: 설치 도중 파이썬 버전 호환성 에러가 발생하면, 에이전트는 에러 메시지를 읽고 스스로 해결책(예: 가상 환경 생성, 특정 버전 재설치)을 검색하여 적용한다. 이는 인간 개발자가 스택오버플로우를 검색하며 문제를 해결하는 과정과 동일하다.3 성능 벤치마크 및 경쟁 우위 분석 Simular의 기술적 우수성은 객관적인 벤치마크 데이터를 통해 입증된다. 6.1 OSWorld 벤치마크 OSWorld는 실제 운영체제 환경(Ubuntu, Windows, macOS)에서 에이전트가 얼마나 과제를 잘 수행하는지 평가하는 표준 지표이다. 에이전트/모델 성공률 (Success Rate) 분석 Agent S3 (Simular) 69.9% bBoN 기술 적용 시. 현존하는 최고 성능 (SOTA). 인간 평균 (Human) 72.0% 숙련된 인간 사용자의 수행 능력. Claude 3.5 Sonnet 61.4% Anthropic의 최신 모델. 강력한 경쟁자. Agent S2 48.8% Simular의 이전 세대 모델. OpenAI Operator 32.6% 12 데이터 기준. 이 데이터는 Simular의 Agent S3가 인간의 수행 능력에 매우 근접했음을 보여준다. 특히 범용 모델인 Claude 3.5 Sonnet보다 높은 성능을 보이는 것은, 범용 지능(LLM)에 컴퓨터 조작 특화 모듈(Specialist)을 결합한 Simular의 전략이 유효함을 시사한다.11 6.2 모바일 및 웹 환경 성능 WebVoyager: 웹 브라우징 전용 벤치마크에서 Simular Browser Agent는 **90.05%**의 압도적인 성공률을 기록했다. 이는 웹 환경에서의 탐색 및 상호작용 능력이 거의 완성 단계에 이르렀음을 의미한다.8 AndroidWorld: 모바일 OS 환경에서도 **71.6%**를 기록하여, 데스크톱뿐만 아니라 모바일 인터페이스에 대한 적응력도 뛰어남을 증명했다.11 보안, 프라이버시 및 윤리적 고려사항 자율 에이전트가 사용자의 컴퓨터를 제어한다는 것은 보안 관점에서 양날의 검이다. Simular는 이를 해결하기 위해 다양한 안전장치를 마련하고 있다. 7.1 로컬 실행의 보안적 이점 클라우드 기반 에이전트는 사용자의 화면을 서버로 전송해야 하므로 데이터 유출 위험이 있다. 반면, Simular Browser는 모든 연산을 로컬에서 수행하거나, 최소한의 익명화된 데이터만 LLM 추론을 위해 전송한다. 특히 Google 계정 정보와 같은 민감한 자격 증명(Credential)은 Simular 서버에 저장되지 않고 사용자 기기에만 머무른다.8 7.2 로그인 세션 관리와 한계 현재 기술의 한계점 중 하나는 브라우저 간 세션 공유 문제이다. Simular Browser는 독립적인 애플리케이션이므로, 사용자가 Chrome이나 Safari에 로그인해 둔 상태를 자동으로 가져오지 못하는 경우가 많다.22 따라서 사용자는 에이전트 환경에서 별도로 로그인을 수행해야 하며, 2단계 인증(2FA)과 같은 보안 절차가 있을 때 에이전트가 멈출 수 있다. Simular는 이를 위해 사용자가 직접 개입하여 인증을 풀 수 있는 인터페이스를 제공한다. 7.3 데이터 보존 정책 (Data Retention) 기업 사용자를 위해 Simular는 LLM 파트너(OpenAI 등)와 협약을 맺고 'Zero Data Retention' 정책을 지원한다. 이는 에이전트가 처리한 데이터나 화면 캡처가 AI 모델의 학습 데이터로 사용되지 않음을 보장하는 것으로, 기업 비밀 유지가 필수적인 환경에서 중요한 고려 요소이다.23 시장 분석 및 도입 전략 8.1 요금제 구조 및 분석 Simular의 요금제는 사용자의 목적에 따라 명확히 구분된다.23 플랜 가격 타겟 사용자 특징 및 가치 제안 Free Plan $0 개인/체험 기본 브라우저 에이전트 기능 제공. 성능 체험 및 간단한 검색 업무에 적합. Premium (Plus) $19.99/월 파워 유저 로컬 시스템 제어, 개인 워크플로우 저장. 개발자 도구 지원. Pro Plan $500/월 기업/전문가 가상머신 지원, 팀 협업, 우선 지원. 인간 직원의 업무를 대체하는 비용 대비 저렴함 강조. Enterprise 별도 문의 대기업 커스텀 보안, 온프레미스 옵션, 전담 엔지니어링 지원. 분석: Pro Plan의 가격($500)은 일반적인 SaaS에 비해 비싸 보일 수 있으나, Simular는 이를 '소프트웨어 비용'이 아닌 '디지털 노동력 고용 비용'으로 포지셔닝하고 있다. 인턴이나 계약직 직원을 고용하는 비용과 비교했을 때 경제적이라는 논리이다. 8.2 도입 및 활용 전략 개인 사용자: 무료 플랜을 통해 뉴스 요약, 쇼핑 정보 수집 등 저위험(Low-risk) 업무부터 자동화를 시작하여 신뢰를 쌓는 것이 좋다. 스타트업: 반복적인 QA 테스트나 데이터 마이그레이션 작업에 Plus 플랜을 활용하여 개발 리소스를 절약할 수 있다. 엔터프라이즈: 보안이 중요한 금융/의료 분야는 로컬 실행이 가능한 온프레미스 형태나, 데이터 격리가 보장된 Enterprise 플랜을 검토해야 한다. 도입 전 특정 부서(예: 송장 처리팀)를 선정하여 파일럿 프로젝트를 진행하고 ROI를 검증하는 단계가 필수적이다. 결론 및 미래 전망 Simular.ai는 GUI 기반의 컴퓨팅 환경을 에이전트 기반의 환경으로 전환하는 거대한 흐름의 선두에 서 있다. 기술적으로는 시각적 그라운딩(UI-TARS)과 행동 최적화(bBoN)를 통해 기존 자동화의 한계를 극복했으며, 제품적으로는 로컬과 클라우드를 아우르는 포괄적인 솔루션을 제시하고 있다. 물론, 여전히 복잡한 예외 상황 처리나 완벽한 자율성 구현에는 과제가 남아있다. 그러나 오픈소스 커뮤니티(Agent S)의 집단 지성과 연구 중심의 개발 속도를 고려할 때, Simular는 단순한 생산성 도구를 넘어 미래의 운영체제(OS)가 나아갈 방향을 제시하고 있다고 평가할 수 있다. 지금 우리는 인간이 컴퓨터를 '사용'하는 시대에서, 컴퓨터에게 '위임'하는 시대로 넘어가는 변곡점에 서 있으며, Simular는 그 변화의 가장 강력한 촉매제이다.
  • 나노바나나로 보다 그럴듯하게 만드는 방법

    이동됨
    1
    2
    0 투표
    1 게시물
    23 조회수
    손호성 0
    나노바나나로 보다 그럴듯하게 만드는 방법은 실제를 만들고 나머지를 바꿔달라고 하면 됨 [image: 1764563925210-hxsclfifousvnw0xegsrue98qek.jpeg] [image: 1764563941614-f0be3292-c1b9-4432-91e6-6204f3576d0e-image.png] 22세기 메탈릭 로봇 작업장비로 화성에서 건축을 하는 작업중인 수 많은 장비들이 함께 일하고 있는 모습 미니피규어를 우주복으로 변경하고 90년대 SF포스트 스타일로 작업 그리고 다른 각도로 촬영한 연출을 veo3로 작업하면 짧은 영상을 작업이
  • 책공장에서 준비한 한 권의 책 이라는 강의 서비스

    이동됨
    1
    0 투표
    1 게시물
    20 조회수
    A
    책공장에서 운영진이 이야기한 몇가지 책공장 출판학교 플랫폼에 대해서 말씀드리고자 합니다. 한 권의 책 이라는 강의 서비스와 인터뷰를 중심으로 하는 교육 거래소를 만들고 있었습니다. 그래서 AI로 출판 전반에 대한 프로세스를 정리하고 실제 1인 출판사의 창업과 관련 도서를 모니터링하고 성장시키는 시뮬레이션을 경험할 수 있는 ERP도 만들어 놓았습니다. 그 다음은 한 권의 책을 만드신 모든 출판사 회원이 강의를 등록할 수 있게 할 준비를 하고 있습니다. [image: Xh84NL95cTAk7B3LZ_H0dyQ1MXs] 실제 책을 한 권 구매하시면 강의를 들을 수 있고 제작에 따른 모든 이야기를 담은 출판사가 비싸게 작업을 했건 인쇄사고가 나서 작업비용이 올라갔건 우여곡절이 있는 책에 대해서 비하인드를 풀어주는 협업의 진짜 이야기를 판매할 생각입니다. 기획단계에서 실제 실무까지 모든 데이터도 함께 현재 책공장에서 부족한 점이 바로 이 부분이라는 것을 절실히 느끼고 있지만 공개를 하지 않아 사람들이 실패를 반복하고 같은 질문을 또 하게 되는 이유라고 생각합니다. 양장을 한 출판사, 제작이 특별한 제품을 만든 교구 출판사, 세상의 모든 책의 결과물은 그 과정이 다릅니다. 링제본, KC, 기타 각기 다른 책을 내기때문에 책 한 권+ 강의(서버비용) 정도에 책공장에서도 제작노하우 인디자인 데이터(템플릿) 등의 부가 부분을 판매하는 마켓이 될 수 있으리라 생각하고 있습니다. 영상 및 문서 그리고 실제 작업한 업체, 명세서, 견적서, 지류대 같은 것을 보여줄 생각입니다. (물론 일부 가리기도 하겠지만) 실제 책 + 강의 + 데이터를 제공할 부분이 되면 제작에 대한 고민, 판매 마케팅 고민을 줄일 수 있으리라 생각하고 앞으로 새로 제작할 도서에 대한 후원이 될 수 있으리라 생각됩니다. 텀블벅, 와디즈 보다 현업에서 종사하는 분들을 지원하는 Give&Take 가 될 수 있으리라 생각합니다. 길게 보면 책공장에서도 충분히 펀딩도 가능할 것입니다. 그게 앞으로 이 책을 만드는 모든 과정을 공유하겠다 하고 펀딩을 받는 교육과정이 될 것이고 과정을 매번 올리는 것으로 서로 독려할 수 있게 될 것입니다. 정확히는 프로젝트를 후원하는 패트레온을 모델로 하고 있습니다. 더 많은 사람들이 참여하면 책 제작의 완성도와 고민한 부분을 실제 책을 받아보면서 그 과정의 고민과 시간의 기록을 한권의 책 이라는 강의를 통해 부족한 부분을 채워줄 수 있지 않을까 하고 있습니다. 지금 생각하면 빨리빨리 했어야 하는데 게으름은 아니고 서로 도움이 될 수 있는 플랫폼으로 책공장이 진화할 시점이라고 생각되어 공론의 장으로 올리게 됩니다. 모든 출판사가 참여가능하고 한 권의 실제 책이 있으면 더 좋겠습니다. 의견주세요. https://cafe.naver.com/bookfactory/179606
  • 3D글자 효과 영상편집이 가능한 에디터 책영상 제작용

    이동됨
    1
    0 투표
    1 게시물
    19 조회수
    A
    https://www.youtube.com/watch?v=xO1ggP_VIZI https://legoseriousplay.kr/capture/flat Glass https://legoseriousplay.kr/capture/flat 제가 책팔려고 동영상도 만들어야겠고 쇼츠나 유튜브영상 타이틀도 만들어야 하고 오픈소스 프로젝트중에 마음에 드는게 있어서 편집기를 만들었습니다. 폰트는 글립스를 다른 체계로 바꿔서 사용하여 Rust를 사용한 폰트서버로 필요한 글립스를 처리합니다. 그동안 만들고 고도화 하다가 잠시 파일 경로를 잊고 있어서 멈췄다가 오늘 다시 봤습니다. 책 표지 등록가능하고 타이핑 녹화도 됩니다. 가능한 것은 많은데 윈도우 어플리케이션으로 만들다가 어떤 이유때문에 ? 프로젝트를 닫아두고 있었습니다. [image: 89c04fcafe21.jpg] 타이핑하면 자동으로 재생해주는 기능도 있는데 서버에 올리면서 꺼놨습니다. 이런저런 일도 할 수 있구나 정도로 테스트한 것이라 나중에 정리해보도록 하겠습니다. https://www.argo9.com/ 봄봄스쿨 폰트, 전자책 변환기, 출판사 관련 솔루션을 제공하고 있습니다. https://www.argo9.com/
  • 2026년 내가 만드는 손글씨 캘린더 시계 폰트 2

    이동됨
    1
    0 투표
    1 게시물
    16 조회수
    A
    2026년 내가 만드는 손글씨 캘린더 시계 폰트 + 디자인폰트 54자 2 56자로 변경중입니다. 빈공백을 표현하는 것과 8x7 56개 배열을 꽉채워야 할거 같아서 이제 폰트 메트릭도 다 해결했고 기업에 판매를 해볼 생각을 하고 있습니다. [image: 1wl47brQu3Bj1BktZk5A-G85Vt0] 폰트가 균일하게 넣어주는 bbox 영역을 좌표잡고 메트릭을 잡는데 외부파일로 저장하는 것보다 일러스트레이터나 벡터에디터에서 하나만 만들어 쓸 수 있게 파일 포맷안에 다 넣어서 처리했습니다. [image: pEa1AGSUDE5G7gDoD_5dkycH4_4] 동일한 형태의 폰트로 균일하게 나옵니다. [image: 33JkSJYCb5t4DS4t8AGzu_DI3uo] 한글 숫자, 영문 커닝도 다 맞춰지며 노드도 압축하는 옵션이 있어서 11kb 정도에 폰트가 완성됩니다. 56자의 폰트 도서별 고유의 달력, 캘린더 시계 폰트를 사용해보면 어떨까요? 지금 애플워치, 아이폰앱, 타블랫, 스크린세이버로 만들고 저희가 따로 만든 font.pics 의 손글씨 쓰기의 애니메이션을 결합하면 폰트가 마스킹되어 글씨가 써지는 자막용으로 사용될 예정입니다. 오랜시간 폰트만드느라 시간이 걸렸지만 원래 손글씨가 기능적 목적외에 건강의 목적이 함께 있어서 끈질기게 연구하고 있습니다. https://www.argo9.com/ 아르고나인 | 봄봄스쿨 – Argo9 https://www.argo9.com/
  • 2026년 내가 만드는 손글씨 캘린더 시계 폰트

    이동됨
    1
    0 투표
    1 게시물
    17 조회수
    A
    캘린더 폰트 작업이 거의 끝나가고 있어요! 한글날 전에 오픈할 수 있을 것 같아요. 두 가지 애플리케이션이 준비 중인데, 하나는 https://font.pics/ 처럼 손글씨로 폰트를 만드는 것이고, 다른 하나는 다운로드한 폰트를 격자대로 SVG로 디자인해서 캘린더와 시계 폰트를 만들 수 있는 애플리케이션이에요. [image: bdc97874c3e9.jpg] 제가 디자인한 54개의 글자를 애니메이션 가이드까지 만들어서 캘린더와 시계에 사용할 수 있어요. 애플워치와 가로 위젯에서도 손글씨가 써지는 대로 디자인한 폰트가 똑같이 움직일 거예요. [image: 363d41bf0712.jpg] 결국에는 보여줘야 하니까, 2년간 쌓은 폰트 제작 기술과 휠 기반 캘린더 아이디어를 모두 결합하고 있어요. [image: bb65659ffca1.jpg] 일러스트레이터로 폰트별 데이터를 수정해서 업로드하면 폰트가 만들어집니다. 이제 달력시즌~ 올해 7년만에 텀블벅이나 https://www.argo9.com 아르고나인 | 봄봄스쿨 – Argo9 https://www.argo9.com
  • 2026 캘린더 시계 가족의 손글씨 폰트 에디터

    이동됨
    1
    0 투표
    1 게시물
    15 조회수
    A
    손글씨 폰트 만드는 것에 재미를 느끼다가 9월이 오니 뭔가 하나 남겨보려고 사이트를 오픈했습니다. 손글씨 폰트에디터 달력용 폰트를 제작해 주는 서비스를 거의 완성해 놓고 놀았습니다. 애플리케이션으로 텀블벅에 올리기 전에 테스트용으로 폰트를 이렇게 만들 수 있구나 정도로 기능을 만들었습니다. 원래는 한글폰트 제작용 에디터였는데 일단 기능을 다 지우고 캘린더 폰트에만 주력했습니다. 실제 기능은 있는데 올리지 않은 것입니다. (완성은 맥용으로 해놓고 가족의 손글씨를 모아 몇 자 안 되는 형태로 스마트워치에 움직이는 시계, 움직이는 캘린더용이 맞을 거 같아서입니다. 손글씨 획수별 애니메이션 녹화가 됩니다.) [image: 9192b2e0f3f7.jpg] Ollama가 손글씨의 폰트 Kerning 값을 자동으로 맞춰주고 미리 깔아놓은 폰트를 선택해서 진행합니다. (단 저작권 때문에 시스템폰트로만) 달력, 시계 전용 손글씨 폰트 에디터지만 조만간 저장이나 서비스용이 아니라 이런 걸 하는 사람이 있구나 정도로 한글날에 오픈을 목적으로 열심히 만드는 중입니다. [image: 6e6cb234ae9f.jpg] 미리 오픈하지만 사실 영문도 제한적으로 넣으면 80자 내외로 모든 영어, 한일대만(번체), 간체는 추가할 수 있지만 글쎄 잘 모르겠습니다. 하여간 가족의 글씨로 시계, 달력은 만들어지며 미리 써두시면 본인 브라우저에 기록되기 때문에 변환할 수 있습니다. 텀블벅에 도전하기 위해 계속 업데이트 중입니다. https://font.pics/
  • 출판사 AI활용 직접만든 책소개 영상제작 툴

    이동됨
    1
    0 투표
    1 게시물
    18 조회수
    A
    출판사에서 책 홍보 영상을 만들려면 돈도 없고 있다 치더라도 비슷한 영상은 싫고 데이터 기반의 영상이 나오게 하고 싶어서 새로 만들어 보기로 했습니다. 그렇다고 맨땅에 해딩하기는 어렵고 [image: 9560e4905bb6.jpg] 일단 오픈소스를 하나 가져와서 영상 제작에 맞는 툴을 만듭니다. 뚝딱 거짓말입니다. 데이터통신해야지 폰트 Json 으로 만든거 다시 빼내서 ttf 를 json 으로 바꿔서 폰트를 자소로 분리해서 글자가 타이핑하는 것처럼 글립을 개별 전송하는 API를 만들어서 전부 로드해서 시스템에 부하가 걸리는 것을 모두 서버에서 동작하게 합니다. [image: 54e0e4a914a9.jpg] 그리고 폰트도 마음대로 쓸 수 있지만... 일단 무료폰트로만 하고 새로운 이펙트도 추가중입니다. 각설하고 윈도우, 맥에서 동작하게 tauri 앱으로 만들었습니다. [image: 20882662d18d.jpg] 하여간 그렇게 만들어서 영상을 3D로 만들고 출력한 것에 tts를 붙이고 영상을 올려봤습니다. 쇼츠는 구글이 손들어주면 금방 조회수가 높아지니까 음성합성으로 음성을 생성하면서 자막이 자동으로 생성됩니다. [image: 6bd85180f0d0.jpg] 백날 올려봐야 199 조회수의 영상을 1초만에 뛰어넘었습니다. 계속 이어지면 좋겠지만 아니어도 기분좋습니다. https://youtube.com/shorts/DiWtrmxha5E 오랫동안 붙잡고 있었던 일이 갑자기는 아니고 대충 동작하게 해결을 했습니다. 그래서 두려운... 이제부터 영상찍어내는 매크로를 (3D조작이나 이미지, 좌표 등 Hook을 사용해서 제어하고 json 으로 저장해서 다시 로드할 수 있습니다.) 돌리면 이제 매일 판매순위 도서 영상을 만들어낼 수 있게 됩니다. 이 전에 만들었던 재본모델링 프로그램과 결합해서 책을 다양한 제본형태로 불러오기만 하면 마무리 될거 같습니다. 요즘 데이터베이스와 열심히 대화중입니다. 책을 만들어야 하는데 ^^;
  • 교과서에 저작물이 사용되어 저작권 수익이 생겼습니다.

    이동됨
    1
    0 투표
    1 게시물
    15 조회수
    A
    교과서에 내 저작물이 사용되었다고 문광부 저작권센터 메일이 왔습니다. 스팸메일인데 정성 들였나 보다 라고 했는데 너무 정성들여 쓴 메일의 내용과 증거자료인 엑셀과 hwp 파일이 있어서 열어봤습니다. 퍼즐, 스도쿠, 인도베다수학 3권이 사용됐고 보상금에 대한 내용을 알려주고 어느출판사인가 했더니 천재교육 교과서에서만 사용한거 같습니다. [image: 43e4033e7a2e.jpg] 발행년도와 출판사가 다른 책이었는데 수학 교과서 담당자가 내 책 팬인가?!? 라는 생각을 잠깐해봤습니다. 하여간 인용을 통해 저작권 부수입이 생긴거 같습니다. 치킨 한마리 정도 오랬동안 책쓰고 만들다 보니 이런 일도 생기네요. ^^ https://argo9.com 아르고나인 스튜디오 폰트, 전자책 변환기, 출판사 관련 솔루션을 제공하고 있습니다. https://www.argo9.com/
  • 출판사 AI 활용 - 3D제본 시뮬레이터

    이동됨
    1
    0 투표
    1 게시물
    14 조회수
    A
    제본 목업을 3D로 만들어서 서점 도서데이터랑 연결해서 똑같게 만든 중입니다. 그동안 영상찍기도 이제 지쳤는데 이제 목업을 온라인에서 돌리고 제어할 수 있는 코드를 넣어서 외부에서 브라우저를 100% 컨트롤 할 수 있고 이미지도 지정한 대로 바꿀 수 있고 3D 모션을 해놓은대로 움직임 책없어도 서평용 영상을 계속 뽑아낼 수 있게 작업을 했습니다. 얼마전에 올린 3D 타이틀 만드는 것의 연장선으로 이번엔 [image: FqkervgV9elf8yUy-chqjgXY8jY] 제본별 목업 만드는 프로그램을 지금까지 했습니다. 책을 만들 때 반드시 알아야 할 제본... 그걸 3D로 목업을 해보거나 제본 학습 시뮬레이터를 만들었습니다. 이 전에 영상녹화 기능을 포함해서 무선, 중철, 사철, 양장, 마루양장, 각양장 + 링제본 3D 목업이 나옵니다. 아직 100%라고 말할순 없지만 서가에 있는 책을 거의 100% 흉내낼 수 있을 정도는 됐습니다. https://youtu.be/A9x-AaVpcvg 이제 인디자인으로 책만들때 사이즈 싸바리 속지 면지 등등 3D로 주의할 점이 함께 나오는 교육영상을 만들어볼까 합니다. 책 한권의 이야기는 계속 https://www.argo9.com/ 책팔이 그만두고 영상제작을 업으로 삼아야 할거 같기도 하고...
  • 사람들에게는 보이는 게 다다

    이동됨
    1
    0 투표
    1 게시물
    18 조회수
    A
    "멋진 것을 보여주지 않으면 그 과정의 의미를 알 수 없다"는 생각 맨날 선으로 낙서하는 것을 하다가 이제 다시 결과를 내는 일로... 기술적 난이도와 실제 구현의 가치 사이에 보이는 결과물의 임팩트와 진짜 하고 싶었던 본질 사이에서 갈등을 지난 몇 년간 고민하고 있습니다. [image: 46628ed8c564.jpg] 손글씨 폰트 아이디어는 단순했는데 아주 오랜 시간 방황을 했습니다. 멋진 걸 보여주지 않으면 그 과정에 무슨 일이 있었는지 모른다라는 생각만 듭니다. [image: 0691d9d29a92.jpg] 기술적으로 더 어려운 것도... 보이는 과정의 것은 아이디어를 구현하는 게 중요한데 이런 걸 보여주는 게 아니었어요 [image: db0bdb3dfdfd.jpg] 3D 낙서 도구를 만들었지만, 정작 중요하게 생각하시는 건 '선' 그 자체이고 그걸 기록할 큰 의미가 있는데 이런 간극이 창작 과정에서 자주 일어납니다. [image: 5384d247330b.jpg] [image: f77bc7ba889f.jpg] 낙서한 대로 3D로 그려지는 걸 만들었는데 사람들이 선을 똑바로 못 그리는데 문제가 있습니다. 그걸 단순히 각도만으로 처리할 수 없어요 찌글거리는 것도 의미가 있습니다. 시간에 따른 뇌건강 (근육이 빠지면 글씨도 달라집니다. 가족의 건강을 글씨에서 찾으려는 시도를 했었죠. 타자기에서도 찾고) [image: 77210cbdf4b7.jpg] 제가 만든 한글폰트 서비스 달력과 시계용 폰트 온라인에서 달력, 숫자, 한글 최소개수 30 여자면 캘린더, 시계 앱에 가족이 쓴 글자로 달력을 만들 수 있습니다. 글씨 쓰는 것을 다 기록합니다. 폰트인데 다른 정보를 더 많이 가지고 있습니다. 그리고 온라인에서 전 세계 모두 참여해서 유니코드에 1,114,112개 글자 코드가 있는데 그걸 함께 써서 폰트를 만들어보는 것을 해볼까 하고 있습니다. 실제로는 하나의 폰트로 만들 수 없습니다. (파일이 너무 커서) 65,536개 그 정도만 쓰면 딱 10년 취미로 프로그램으로 코드 조합 나올 테니까 더 빨리 그릴 수 있을 겁니다. "사람들은 완벽한 결과물을 원하지만, 정작 중요한 정보는 그 '불완전함' 안에 있다. 3D 낙서 도구의 찌글거리는 선들, 한글폰트의 개인별 필압과 떨림, 심지어 뇌졸중 타자기 오타의 미묘한 차이까지 - 이 모든 것이 건강과 시간의 기록이다. 하지만 세상은 여전히 '깔끔하게 정리된 결과물'만 보려 한다. 가족의 건강을 추적할 수 있는 소중한 데이터들이 '불완전함' 속에 숨어있는데 말이다." 기술이 놓치는 것들 일반적인 입력 보정 기술들은 이런 "오류"를 제거하려고 하는데, 정작 그 오류 안에 건강 상태의 중요한 신호가 지워진다. 자동 완성, 맞춤법 검사, 손떨림 보정 - 이런 것들이 오히려 중요한 상태를 보정해 버린다. https://www.argo9.com/ 출판사 홈페이지나 다시 디자인해야 하는데...
  • Python 디스크분석앱을 Rust로 500배 빠르게

    이동됨
    1
    0 투표
    1 게시물
    19 조회수
    A
    3월 30일에 출판사 하드, NAS, 클라우드 등 다양한 공간에 보관된 데이터에 최신 파일을 찾고 하나로 합치는 프로젝트를 만들었습니다. 출판사 데이터가 복잡한 이유는 디자인, 편집, 마케팅 다 따로 파일을 끌어다 쓰기 때문에 엉망이 됩니다. (버전관리 그런 거 없어요 ^^; 하여간 python 프로그램을 4개월 만에 rust로 변경했는데 그동안 이야기 드린 sqlite 대신 Duckdb로 전부 바꾼 결과 디스크 분석 시간을 압도적으로 줄일 수 있었습니다. 더 빠른 데는 방식차이도 있습니다. (하이브리드, 멀 티쓰레딩) [image: 0999b43752a1.jpg] � RDiskCleaner (Rust) vs Directory Analyzer (Python) 성능 비교 결과 데이터베이스 규모 Rust (DuckDB): 142,433개 파일, 88.51 MB Python (SQLite): 1,874,141개 파일, 848.57 MB ⚡ 쿼리 성능 비교 쿼리 유형 Rust (DuckDB) Python (SQLite) 성능 차이 기본 통계 0.0134초 11.8490초 887.50배 빠름 확장자별 통계 0.0181초 11.0260초 610.72배 빠름 중복 파일 검색 0.1482초 12.4075초 83.72배 빠름 복잡한 JOIN 0.0705초 34.5635초 490.03배 빠름 크기 분포 분석 0.0155초 10.2772초 663.65배 빠름 시간별 분석 0.0238초 10.2511초 430.97배 빠름 주요 결론 성능: Rust + DuckDB가 Python + SQLite보다 평균 500배 이상 빠름 메모리 효율성: Rust DB가 Python DB보다 9.59배 압축률 (88.51 MB vs 848.57 MB) 확장성: Rust는 더 적은 파일로도 더 빠른 처리 가능 데이터 처리: DuckDB의 최적화된 엔진이 SQLite보다 월등히 우수 언제 어떤 것을 사용할까? Rust + DuckDB: 대용량 데이터 처리 실시간 분석이 필요한 경우 성능이 중요한 프로덕션 환경 메모리 제약이 있는 환경 Python + SQLite: 프로토타이핑 및 개발 단계 간단한 데이터 분석 빠른 개발이 필요한 경우 소규모 데이터셋 결론적으로, Rust 기반의 RDiskCleaner는 Python 기반 설루션 대비 압도적인 성능을 보여주며, 특히 대용량 데이터 처리에서 그 진가를 발휘합니다! NAS 외장하드 등에서 동일한 파일을 찾아 정리하려는 용도로 만들었으며 상용프로그램보다 2배 이상 이 전에 제가 Python으로 만든 것에 비교해 500배 빠릅니다. DuckDB를 최적화해서 사용한 게 주요해서 현재 별도 프로그램으로 구걸(?)하는 방식으로 데이터용량 줄여준 것만큼 0.00001원에 대해서 받아볼까 하고 있습니다. 사실상 10원이 안될지도 =3=3=3 https://www.argo9.com/ 아르고나인 스튜디오 폰트, 전자책 변환기, 출판사 관련 솔루션을 제공하고 있습니다. https://www.argo9.com/ 오늘도 Yes24서버가 멈춰 죽을 맛인 출판사 사장 ㅠㅠ 그나저나 나는 500배 효율이 좋은 사람일까? ㅠㅠ
  • 2026년 손글씨 캘린더 폰트

    이동됨
    1
    0 투표
    1 게시물
    19 조회수
    A
    오로지 한글, 한자, 숫자 달력 글자만 가능한 폰트에디터를 만들었습니다. 사실 저 글자들은 애니메이션이 됩니다. (기록한 그대로) [image: 449a7b1b90ba.jpg] 가족의 손글씨로 만들어진 달력, 아이들 글씨로 만들어진 달력용으로 2026년을 준비합니다. 물론 폰트라서 앱에서 가족이 쓴 17자의 글씨로 달력, 시간을 보여주며 손글씨는 전체 제작도 어플에서 가능합니다. 베리어블폰트라서 두께가 자유롭게 변경되어 글꼴 하나로 10여 가지 글꼴처럼 보입니다. + 영문, 한자, Moon 15 약물을 쓰면 전세계 대부분 사람들이 볼 수 있는 달력폰트가 됩니다. (실제구현 캘린더, 가계부 전문 출판사) 오직 저희 책 구매자에게만 제공할 목적으로 개발 2년 넘게 개발해서 겨우 17자만 쓰는 프로젝트가 된 이유를 먼저 정리해 보자면 인공지능도 사람 손글씨는 쉽게 폰트로 못 만듭니다. 사람이 투여돼야 하고 AI로 만든다는 서비스들이 몇 년 전에만 잠깐 반짝하고 잘 안 되는 이유가 하나 있습니다. 10만 원이라고 해도 디자이너가 폰트를 마지막에 손봐야 해요. 30일 걸리는데는 사람이 주문온 것을 다 처리해야 하는데 펀딩에 성공하는 순간 디자이너를 뽑아서 써야하는데 인건비가 안맞아요. 그래서 펀딩 성공후 홍보효과로 저렴한 손글씨 폰트는 거의 사라졌어요. 그리고 비슷비슷한 두꺼운 폰트로 만들어지는 것도 두꺼우면 잘 모르거든요 ^^ 저는 그걸 못 참아서 3D로 폰트를 균일화하게 하기 위해 획을 돌려보고 여러 가지 실험을 2년 넘게 해 봤습니다. 비슷한 폰트 ≠ 손글씨가 아니라는 판단으로 전 세계 글자를 다 쓰는 걸 여전히 혼자만의 프로젝트로 하고 있습니다. AI와 미래가 왔는데 손글씨는 여전할거예요. 이걸로 2026년 펀딩이나 해볼께요 ㅠㅠ [image: 0ae6cb04755a.jpg] 가는 볼펜의 어머님 손글씨 폰트로 11172자를 그려야 하는데 그건 무리고 3000자는 써야합니다. 1벌로는 사람의 손글씨가 되기 힘들어요. 사람은 그때그때 다르게 쓰기 때문입니다. 그걸 다 고려해서 R 이라는 개념의 폰트를 구상했는데 너무 무거운 파일이 되어 실사용 목적으로 어울리지 않아 포기했습니다. 사람의 글씨를 폰트 하나로 정형화 하기 힘들기 때문에 여러실험을 해온 기록은 브런치 안에 있습니다. 이제 비슷하지만 다른 폰트실험을 오픈해보러 2000원짜리 도메인을 사서 뚝딱뚝딱 중입니다. https://font.pics/ FONT PICS · 한글 폰트 제작소 https://font.pics/ 사실 베타로 만든 사이트는 따로 있고 달력 및 시계도 준비중입니다. 정성껏 쓴 글씨가 사용성이 있게 스마트워치, 아이패드, 아이폰에서도 보게 할 예정입니다.
  • 모르는 사람들의 낙서를 모아서 폰트로 만들어보는 실험

    이동됨
    1
    0 투표
    1 게시물
    15 조회수
    A
    모르는 사람들의 낙서를 모아서 폰트로 만들어보는 실험을 하려고 합니다. 같은글자를 다른사람이 쓰는 작업이라서 안이뤄질 수도 있지만 중간중간 애니메이션도 보고 그림따라그리기 같은 기능과 조합형 폰트만드는 것을 온라인상에서 가능할 속도로 작업은 해놨습니다. 아이들 글씨 모아서 폰트만드는 정도라고 생각합니다. 잘 되면 좋겠지만 아닐 가능성이 높겠죠 ^^ [image: AKWEzg6-d5E70rvRATxzCBO7In8] 클릭하면 다른사람이 쓴 글자를 볼 수 있습니다. 저장한 글자들이 움직이는 작업을 지금도 하고 있습니다. [image: VBGXyGeGEuCmZ6-DBOrL0qPpFmw] 폰트를 아래 깔고 그리는 형태이기는 하지만 조합해서 폰트를 만들기 전에 어떤 모양의 글자를 그리는지 미리 파이토치같은 것으로 알아볼 수 있습니다. 애니메이션 녹화는 생각보다 빠른처리를 하기 위해 rust 를 사용했습니다. 데이터도 많아져서 이전에 하던 방식하고는 조금 달라졌고 일단 글자를 모으면 다음 작업이 가능합니다. 그릴 글자는 랜덤으로 나오며 기여를 한 번 하기위해 양식을 쓰면 브라우저에 기억이 됩니다. 나만의 한글 어떻게 쓰는지 세상사람들에게 알려주세요 그리고 어르신들 아이들의 글자나 그림을 기억에 남길 수 있는 재미있는 프로젝트로 남기기 위해 어플리케이션으로도 작업중입니다. https://font.pics/ 한글 드로잉 가이드 https://font.pics/

1

온라인

26

사용자

6.9k

토픽

6.9k

게시물
  • 도서분석 출판 마케팅 서평단


  • 레고시리어스플레이, 비주얼씽킹, AI디자인씽킹