Apache Unomi는 고객, 리드, 방문자 등의 데이터를 관리하고, 개인정보 규범들(ex: GDPR)을 준수하며, 고객의 경험을 개인화 하는 자바 오픈소스 고객데이터플랫폼(CDP- Customer Data Platform)이다.
Cf. GDPR: 유럽연합 일반 개인 정보 보호법(General Data Protection Regulation)의 약자


유노미는 REST 서버로 유저나 방문자의 프로필과 프로필에 관련된 이벤트를 관리합니다.
방문자가 사이트에 접속하면 방문자의 프로필을 만들어 관리하고 방문자가 사이트에서 하는 행동(session created, click, view, download, login 등)에 따라 이벤트를 수집하며, 특정 이벤트에 따라 방문자의 정보를 프로필에 반영하여 관리합니다.
확장성이 높은 아키텍쳐
쉽게 설치 가능(간단한 압축해제, 실행)
OSGI 런타임으로서 Apache Karaf 사용
쉽고 넓은 REST API 구조
플러그인 아키텍쳐를 통한 확장성(OSGI & JSON 사용)
아파치 오픈소스 프로젝트
First-Party 데이터 수집과 소유
고객, 방문자, 리더를 위한 지속적이고 통합된 프로필
익명의 개별적인 식별 정보 저장
실시간 의사결정(Scoring 로직, 세그멘테이션)
EVENT
이벤트는 특정시간의 일어난 일을 말합니다. 이벤트는 타입(ex. login, view 등)과 sessionId, profileId, timestamp, scope 등의 필드를 가짐으로서 여러 정보를 담고 있습니다.
SCOPE
Unomi에 실제로 정의된 객체가 아닌 단순히 분류를 위해 사용되는 고유한 문자열이다. 예를 들어, 사이트를 분류할 때 사용할 수 있다. 유노미의 빌트인 스코프로는 systemscope가 있고 여러 클라이언트 영역에서 공유 가능하다.
PROFILES
유노미는 event를 처리함으로서 사용자가 누구이고 어떤 행동을 하는지 그려갑니다.
유노미는 이렇게 얻은 사용자 정보를 profile로 만들어서 관리합니다.
CONDITIONS
컨디션은 아파치 유노미에 매우 범용적으로 쓰이는 객체입니다. 컨디션의 결과는 항상 boolean 타입이며, 유노미는 많은 빌트인 컨디션을 제공합니다. 컨디션의 연산자로는 and, or, not이 있습니다. 다음은 컨디션이 쓰이는 부분입니다.
RULES
룰은 condition과 action으로 이루어져 있습니다. condition은 action을 발생시키기 위한 조건 입니다.
유노미는 직접적으로 profile을 변경하지 않습니다. evnet가 발생하면 룰 엔진이 이벤트를 받아 정의된 condition에 부합하면 action이 실행되서 프로필을 변경합니다.

ACTION
action은 profile의 properties를 변경하거나 특정 list에 유저를 추가하는 등의 행동들을 action이라고 합니다.
action은 단독으로 실행 할 수 없으며, rule에 정의되어 condition이 만족할 때만 실행됩니다.
SEGMENTS
프로파일을 그룹화 할때 사용됩니다. 세그먼트 내 condition에 따라 실행되어 프로파일이 세그먼트에 속하는지 확인합니다.
c.f) 수동으로 프로파일을 그룹화하는 list도 있습니다.
GOAL
goal은 startEvent와 targetEvent 두가지 조건을 가집니다. 이름은 event로 표시되어 있지만 타입은 condition으로,startEvent를 만족하면 시작되고 targetEvent를 만족하면 충족됩니다. 또한, 선택적으로 campaign과 연관 될 수 있습니다.
CAMPAIGN
캠페인은 특정 기간동안(startDate, endDate, timezone) 특정지어진 대상(entryConditon)을 상대로 비용(cost, currency)으로 primaryGoal을 달성하는 디지털 마케팅 캠페인 입니다.
SCORING PLAN
scoring plan은 등록해놓은 element 리스트에 따라서 profile을 검사해 점수를 매깁니다. element는 condition과 value로 이루어져 있어 profile이 element에 정의된 condition에 충족되면 value에 정의된 점수를 줍니다.
