아시아 라이프스타일에 맞춘 미니 앱의 안전한 구축: Macaron AI의 자율 코드 합성

작성자: Boxu Li at Macaron
소개
Macaron AI의 가장 놀라운 기능 중 하나는 맞춤형 미니 애플리케이션을 즉석에서 생성하는 능력입니다. 일상적인 대화 중에 사용자가 가족 예산 추적, 축제 일정 계획, 새로운 언어 학습 등 필요한 사항을 설명하면 Macaron은 몇 분 내에 완전한 도구를 조립합니다. 일부 미니 앱은 100,000줄 이상의 코드를 초과하지만, 인간의 개입 없이 생성됩니다. 일본과 한국 사용자에게는 지역의 관습과 규정에 맞춘 개인화된 도구를 제공한다는 의미입니다. 이 블로그는 Macaron의 미니 앱을 지원하는 자율 코드 합성 파이프라인을 분석하며, 의도 이해, 프로그램 합성, 샌드박스 실행, 오류 처리 및 안전 조치를 다룹니다. 시스템이 복잡성을 어떻게 관리하고, 외부 API와 통합하며, 지역 법률을 준수하고, 강화 학습을 통해 출력을 개선하는지에 대해 살펴봅니다.
1 자연어에서 프로그램 명세로
1.1 의도 분석 및 슬롯 추출
사용자가 앱을 요청하면, Macaron은 먼저 자연어 입력을 분석하여 구조화된 의도 사양을 만듭니다. 여기에는 도메인(금융, 교육, 요리), 원하는 기능(예산 카테고리, 알림), 제약 조건(통화, 언어) 및 일정과 같은 슬롯 식별이 포함됩니다. 일본어와 한국어의 경우, 파서는 존칭과 생략점을 처리합니다. 예를 들어, 일본어 요청 "家計簿を作りたいんだけど、食費を細かく分けて"(가계부를 만들고 싶은데, 식비를 세분화하고 싶어) 는 "예산 설정"이라는 도메인과 "상세 식비 카테고리"라는 기능, "일본 엔화"라는 제약 조건을 도출합니다. 한국어 요청 "가족 여행 일정을 계획해줘, 한식 식당 추천도"는 "여행 계획"이라는 도메인과 "식당 추천"이라는 기능, 그리고 문화적 제약 조건을 도출합니다.
Macaron은 이중 인코더 아키텍처를 사용합니다: 하나의 인코더는 현재 대화를 처리하고, 다른 하나는 사용자의 메모리를 처리합니다. 두 벡터는 주의를 통해 결합되어 통합된 의도 표현을 생성합니다. 강화 학습은 올바른 슬롯을 추출하도록 파서를 미세 조정합니다. 피드백은 생성된 미니 앱이 사용자 기대에 부합하는지 여부에서 옵니다. 그렇지 않으면 파서의 매개 변수가 업데이트됩니다.
1.2 도메인 라이브러리와 템플릿을 사용한 프로그램 합성
의도가 구조화되면, Macaron의 합성 엔진은 도메인별 모듈 라이브러리에서 함수를 구성하여 코드를 생성합니다. 모듈에는 예산 기능(비용 계산, 차트 생성), 일정 기능(캘린더 통합, 충돌 해결), 언어 학습 알고리즘(간격 반복), 요리 지원(재료 변환, 영양 분석)이 포함됩니다. 엔진은 모듈을 선택하고 구성하여 일관된 프로그램으로 결합합니다. 템플릿에는 모듈 간 데이터 흐름을 정의하는 그래프 구조(DAG)가 포함되어 있어 동시성과 비동기 작업을 허용합니다. 예를 들어, 일본어 예산 앱은 월간 요약 및 주간 알림 작업을 병렬로 실행할 수 있습니다.
합성 엔진은 오픈 소스 코드와 독점적인 예제를 기반으로 학습된 신경망 프로그램 합성 모델을 사용합니다. 또한 상징적 추론을 활용하여 "총 예산을 초과하지 말라"와 같은 제약 조건을 선형 부등식으로 표현하고 제약 해결기에 입력합니다. 이 하이브리드 접근 방식은 순수 신경망 생성에 비해 신뢰성을 향상시킵니다. 강화 학습은 사용자 만족도와 오류율을 모니터링하여 모듈의 선택 및 순서를 조정합니다.
1.3 지역화된 요구 사항 및 규제 제약
일본과 한국의 규정은 금융 및 개인 데이터 처리에 대한 특정 요구 사항을 부과합니다. 예를 들어, 일본의 개인정보 보호법은 가계 회계 데이터를 동의 없이 제3자에게 전송할 수 없도록 규정하고 있습니다. 한국의 개인정보 보호법은 데이터 익명화에 대한 엄격한 요구 사항을 가지고 있습니다. 예산 도구를 생성할 때, Macaron은 정책 바인딩 규칙을 참조하여 민감한 데이터가 로컬에 저장되고 외부 서버로 전송되지 않도록 보장합니다. 코드 생성기는 암호화 라이브러리 호출을 삽입하고 기본적으로 네트워크 접근을 차단합니다. 의료 앱의 경우, Macaron은 AI 프레임워크 법과 대조하여 의료 지침과 관련된 결정이 인간의 감독과 함께 수행되도록 합니다.
2 안전한 실행 환경

2.1 샌드박싱 및 리소스 제한
요청 시 생성되는 임의 코드를 실행하는 것은 상당한 보안 위험을 초래할 수 있습니다. 따라서 Macaron은 현대 코드 인터프리터를 연상시키는 샌드박스 환경 내에서 미니 앱을 실행합니다. 샌드박스는 파일 시스템 접근을 가상 디렉토리로 제한하고, CPU 및 메모리 사용을 제한하며, 명시적으로 허용되지 않는 한 네트워크 연결을 차단합니다. 프로그램은 읽기 전용 베이스 이미지를 가진 컨테이너 내에서 실행됩니다. 예를 들어 한국 요리 앱이 영양 정보를 가져오려는 요청을 하면, 해당 요청은 허용된 도메인을 확인하는 프록시를 통해 라우팅됩니다. 프로그램이 허가 없이 외부 사이트에 접근하려고 시도하면 샌드박스가 작업을 종료하고 사용자에게 오류 메시지를 반환합니다.
2.2 정적 분석 및 타입 체크
실행 전에 Macaron은 합성 코드에 대해 정적 분석을 수행하여 무한 루프, 인젝션 공격, 비인가 시스템 호출과 같은 취약점을 감지합니다. 타입 체크는 모듈이 올바르게 구성되었는지를 확인합니다: 숫자를 반환하는 함수는 텍스트 처리 모듈에 연결될 수 없습니다. 체크는 또한 로컬 데이터 타입과의 호환성을 검증합니다. 예를 들어, 통화 값은 부동 소수점 오류를 피하기 위해 십진수 타입으로 표현됩니다. 정적 분석에 실패하면 Macaron은 요청된 기능을 단순화하거나 앱을 더 작은 모듈로 분할할 것을 제안합니다.
2.3 실행 시 모니터링 및 자동 복구
실행 중에 Macaron은 성능 지표(CPU 사용량, 메모리 사용량), 기능적 정확성(테스트 케이스, 어설션), 사용자 상호작용(클릭, 사용 시간)을 모니터링합니다. 프로그램이 예상된 동작에서 벗어날 경우—시간 제한을 초과하거나 예외를 발생시키는 경우—Macaron의 자동 복구 모듈이 개입합니다. 마지막 안정 상태로 롤백하거나 즉석에서 생성된 패치를 적용하거나 기능을 우아하게 축소할 수 있습니다. 예를 들어, 일본 정원 가꾸기 앱의 날씨 API가 실패하면 프로그램은 백업 데이터 소스로 전환하거나 사용자에게 일시적인 장애에 대해 알릴 수 있습니다.
3 강화 학습과 지속적인 개선
3.1 사용자 피드백과 작업 성공에서 얻는 보상 신호
각 미니 앱 세션은 풍부한 피드백을 제공합니다. 사용자는 앱을 계속 사용하여 암묵적으로 만족을 표시하거나 경험을 명시적으로 평가합니다. Macaron은 이러한 신호를 보상 함수로 집계하여 향후 코드 생성에 가이드로 삼습니다. 이 보상은 버그, 혼란스러운 인터페이스, 느린 성능을 벌하고 신뢰성, 문화적 적합성 및 참신함을 보상합니다. 시간이 지남에 따라 합성 엔진은 일본 사용자가 미니멀리즘과 사용의 용이성을 중요시하는 반면, 한국 사용자는 맞춤 옵션과 화려한 비주얼을 선호한다는 것을 학습합니다. 이러한 선호는 모듈과 사용자 인터페이스 패턴을 선택하는 RL 정책에 인코딩됩니다.
3.2 커리큘럼 학습과 메타 학습
사용자 요청의 복잡성이 증가함에 따라, 마카롱은 커리큘럼 학습을 활용합니다: 합성 엔진은 간단한 프로그램(예: 계산기, 할 일 목록)을 생성하는 것부터 시작하여 점차 더 복잡한 작업(예: 다중 사용자 예산 플랫폼)을 처리합니다. 시스템이 새로운 도메인을 접할 때, 메타 학습을 통해 적응을 가속화합니다. 엔진이 일본과 한국 사용자로부터 유사한 요청을 받으면, 예를 들어 학교 행사 계획이나 노인 돌봄 관리 같은 경우, 작업 전반에 걸쳐 일반화할 수 있습니다. 메타 학습은 또한 법적 또는 문화적 변화에 적응하는 데 도움을 줍니다; 만약 AI 진흥법이 새로운 규정 요구사항을 도입한다면, 마카롱은 이를 코드 템플릿에 신속하게 통합할 수 있습니다.
3.3 커뮤니티 기여와 모듈 마켓플레이스
마카롱은 커뮤니티 참여를 장려합니다. 개발자들은 마켓플레이스에 새로운 모듈을 기여할 수 있습니다. 모듈은 포함되기 전에 보안과 컴플라이언스를 위해 검토됩니다. 이는 지역 생태계를 조성합니다: 일본 개발자들은 다도 일정 관리나 애니메이션 추천 모듈을 만들 수 있고, 한국 개발자들은 K-팝 안무 배우기나 가족 행사 관리 모듈을 기여할 수 있습니다. 기여자들은 아몬드(마카롱의 인앱 화폐)로 보상을 받아 플랫폼의 지속적인 개선을 장려합니다.
4 외부 API 및 서비스와의 통합

4.1 데이터 소스의 현지화
일본과 한국 사용자는 서로 다른 데이터 제공자를 이용합니다. Macaron은 금융 앱을 위해 일본 은행 API(예: J‑Debit)를 통합하고, 공휴일에는 일본 달력(골든위크, 오본)을, 이벤트 계획을 위해 지역 뉴스 소스를 사용합니다. 한국에서는 KOSPI 주식 API, 네이버의 날씨 서비스, 카카오톡 메시지 API에 연결합니다. 각 통합은 속도 제한, 캐싱 및 오류 처리를 보장하는 모듈로 래핑되어 있습니다. 코드 생성기는 관련이 있을 때 이러한 모듈을 자동으로 삽입합니다.
4.2 API 구성에 대한 자연어 인터페이스
사용자가 API 키를 수동으로 입력할 필요 없이, Macaron은 대화를 통해 안내합니다. 일본 사용자가 은행에서 거래 내역을 가져오고 싶다면, 에이전트가 동의 절차를 설명하고, 필요한 토큰을 획득하여 안전하게 저장합니다. 마찬가지로, 한국 사용자가 자녀의 학교 일정을 연결하고 싶다면, 에이전트는 OAuth를 사용하여 접근을 승인하고 앱이 필요한 데이터만 읽도록 보장합니다. 이러한 상호작용은 기록되고 검토할 수 있으며, 차별화된 투명성 원칙을 따릅니다.
4.3 엣지 컴퓨팅 및 오프라인 지원
일본과 한국의 많은 지역에서는 간헐적인 연결 상태에서도 신뢰성을 기대합니다. Macaron의 미니 앱은 엣지 컴퓨팅을 지원하여 가능한 경우 로컬에서 연산을 수행합니다. 이 에이전트는 점진적 웹 앱(PWA)을 생성하여 데이터를 캐시하고 네트워크가 사용 가능해지면 서버와 동기화합니다. 예를 들어, 한국의 등산객이 산악 트레일 플래너를 사용할 때 오프라인으로 경로를 계속 추적하고 하산 후 클라우드와 동기화할 수 있습니다. 오프라인 기능은 특히 개인정보 보호에 중요하며, 사용자가 공유를 선택할 때까지 민감한 데이터는 기기에 남아 있습니다.
5 안전성, 준수 및 문화적 민감성
5.1 코드 생성 시 규제 준수
미니 앱은 현지 규정을 준수해야 합니다. 일본의 AI 촉진법은 투명성을 강조하므로, 예산 앱은 데이터 흐름의 명확한 로그를 포함하고 지출이 어떻게 분류되는지 사용자에게 설명합니다. 한국의 AI 규정은 고위험 결정에 대한 인간 감독을 요구하므로, 건강 관련 앱은 사용자가 조언을 따르기 전에 전문가와 상담하도록 합니다. Macaron의 코드 생성기는 민감한 작업에 대한 경고를 삽입하고 명시적 동의를 얻습니다. 사용자가 세금 신고 앱을 생성하려고 하면, Macaron은 현지 세법 업데이트를 상기시키고 공인 회계사와의 상담을 제안합니다.
5.2 UI의 문화적 규범 및 현지화
문화적 미학은 사용자 인터페이스 디자인에 영향을 미칩니다. 일본에서는 미니멀리즘과 공백에 대한 존중이 중요시되며, 이에 따라 Macaron은 일본 사용자를 위해 은은한 색상과 간단한 아이콘을 사용합니다. 한국의 인터페이스는 더 생동감 있을 수 있으며 애니메이션을 포함할 수 있습니다. Macaron의 UI 모듈은 온보딩 시 결정된 사용자 선호에 따라 이러한 스타일을 자동으로 적용합니다. 에이전트는 또한 문화적 규범에 맞추어 도움말 메시지를 맞춤화합니다: 일본의 도움말 화면은 문맥적 설명을 포함할 수 있는 반면, 한국의 도움말 화면은 단계별 지침을 강조할 수 있습니다.
5.3 재난 회복력 및 윤리적 고려 사항
일본과 한국은 지진과 태풍과 같은 자연재해에 취약합니다. 긴급 대응 앱을 생성하는 개인 에이전트는 신뢰할 수 있어야 합니다. Macaron은 정부 경보 시스템과 통합되어 긴급 지침이 최신 상태임을 보장하는 재난 회복력 모듈을 포함합니다. 윤리적으로 시스템은 금융 도구에서 "다크 패턴"과 같은 조작적 디자인을 피하고 공정성 지침을 준수합니다. 예를 들어, 레스토랑을 추천할 때 에이전트는 식단 제한을 고려하고 사용자가 선호를 표현하지 않는 한 특정 지역이나 체인에 대한 편향을 피합니다.
5.4 사례 연구: 하나미 플래너 및 K‑팝 팬 매니저
두 가지 사례 연구는 마카롱의 코드 합성의 강력함과 세밀함을 강조합니다. 하나미 플래너는 일본 가족들이 벚꽃놀이를 경험하고자 요청한 계절별 앱입니다. 사용자는 "벚꽃의 절정기와 혼잡을 피하는 계획을 만들어줘"라고 요청합니다. 마카롱은 일본 기상 API에서 날씨와 개화 예보를 가져오고, 과거 데이터를 교차 참조하여 인근 공원의 절정 개화 날짜를 예측합니다. 그런 다음 여러 모듈의 앱을 합성합니다: 날짜를 차단하기 위한 캘린더 일정 관리; 교통 및 대중교통을 고려한 경로 계획자; 피크닉 용품을 위한 예산 추적기(가계부 카테고리를 포함); 쓰레기 처리 및 공원 규칙에 대한 문화적 예절 가이드. 강화 학습을 통해 제안을 개인화합니다: 가족에 노인이 있는 경우 접근 가능한 경로가 있는 공원을 우선시하고, 아이들이 있는 경우 가족 친화적인 명소를 추천합니다. 또한 앱은 한국어 또는 영어만 사용하는 친구들도 참여할 수 있도록 이중 언어 초대장을 생성하여 마카롱의 다국어 능력을 선보입니다.
K‑pop 팬 매니저 사례는 여러 음악 그룹을 따르는 한국 사용자를 대상으로 합니다. 사용자는 "다음 커백 스케줄과 팬미팅 일정 관리 앱을 만들어줘"라고 요청할 수 있습니다. 에이전트는 엔터테인먼트 회사의 API에서 출시 일정을 가져오고, 차트 알고리즘을 기반으로 스트리밍 목표를 계산하며, 카운트다운 위젯을 표시합니다. 모듈에는 티켓 구매 도우미(재판매에 대한 현지 법률 확인), 포토 카드를 수집하는 디지털 스크랩북, 팬 프로젝트를 조율하는 소셜 모듈이 포함됩니다. 사용자가 알림에 과부하되지 않도록 RL 보상 모델이 긴급성(예: 팬미팅 티켓 마감일)과 인지 부하를 균형 있게 조절합니다. 팬들이 일본 친구들과 조율할 때는 크로스링구얼 기능이 작동하여 앱이 자동으로 일정을 일본어와 영어로 번역하고, 메모리 태그가 언어 간 문맥을 유지합니다. 이러한 사례 연구는 지역 문화, 규제 인식 및 기술적 정교함을 맞춤형 도구로 엮어내는 마카롱의 능력을 보여줍니다.
5.5 기술적 도전: 동시성, 버전 관리 및 디버깅
대규모 프로그램을 즉석에서 생성하는 것은 엔지니어링 과제를 도입합니다. 미니 앱이 데이터를 가져오면서 UI를 업데이트하는 등 여러 작업을 동시에 수행해야 할 때 동시성 문제가 발생합니다. Macaron의 코드 생성기는 의존 관계를 정의하는 **유향 비순환 그래프(DAG)**를 구축하고, 비차단 작업을 피하기 위해 비동기 프로그래밍 구조(JavaScript의 promise 또는 Python의 asyncio 등)를 사용합니다. Macaron의 모듈 라이브러리가 지속적으로 발전하기 때문에 버전 관리가 중요해집니다. 생성된 앱에는 모듈 버전을 기록하는 매니페스트 파일이 포함되어 있으며, 업데이트가 있을 경우 Macaron은 버전을 비교하고 사용자에게 업그레이드하거나 안정된 기존 버전을 유지할 수 있도록 안내합니다. 디버깅은 아마도 가장 어려운 문제일 것입니다. 자동 생성된 코드는 미묘한 버그나 엣지 케이스를 포함할 수 있습니다. Macaron은 프로그램 불변성을 테스트하기 위해 무작위 입력을 생성하는 속성 기반 테스트와 실행 경로를 탐색하기 위한 상징적 실행을 통해 이를 해결합니다. 실제로 버그가 발생하면 에이전트는 익명화된 오류 추적을 수집하고 프로그램 수리 기술을 적용하여 향후 개선에 수정을 반영합니다. 이러한 엔지니어링 관행은 코드 없는 프로그래밍의 약속이 신뢰할 수 있고 유지 관리 가능한 미니 앱으로 변환되도록 보장합니다.










