소프트웨어 에이전트
Software agent컴퓨터 과학에서 소프트웨어 에이전트는 대리점 관계에서 사용자나 다른 프로그램을 위해 행동하는 컴퓨터 프로그램입니다.이는 라틴어(대리점)에서 유래한 것입니다.이러한 "대리 조치"는 적절한 [1][2]조치가 있는 경우 이를 결정할 권한을 의미합니다.에이전트는 로봇에서 나오는 봇으로 알려져 있습니다.실행이 로봇 본체와 페어링되었을 때, 또는 전화(예를 들어 시리) 또는 다른 컴퓨팅 디바이스에서 실행되는 챗봇 등의 소프트웨어로 구현될 수 있다.소프트웨어 에이전트는 자율적이거나 다른 에이전트 또는 사용자와 함께 작업할 수 있습니다.사람과 상호작용하는 소프트웨어 에이전트(예: 챗봇, 인간-로봇 상호작용 환경)는 자연어 이해 및 언어, 성격 또는 인간형 형태와 같은 인간과 유사한 특성을 가질 수 있다(아시모 참조).
관련되고 파생된 개념에는 인텔리전트 에이전트(특히 추론 등 인공지능의 일부 측면을 나타내는), 자율 에이전트(목표 달성 방법을 변경할 수 있음), 분산 에이전트(물리적으로 다른 컴퓨터에서 실행됨), 멀티 에이전트 시스템(토그에서 작동하는 분산 에이전트) 등이 포함됩니다.ether 및 모바일에이전트(실행을 다른 프로세서로 재배치할 수 있는 에이전트)가 있습니다.
개념
Autonomous Software Agent의 기본 속성은 에이전트가
태스크에 대해 엄격하게 호출되는 것은 아니지만, 스스로를 활성화하는 것입니다.
- 호스트 상에서 대기 상태가 되어 컨텍스트를 인식할 수 있습니다.
- 조건 시작 시 호스트에서 실행 상태를 얻을 수 있습니다.
- 사용자의 조작이 필요 없습니다.
- 는, 통신등의 다른 태스크를 기동할 가능성이 있습니다.
"[citation needed]에이전트"라는 용어는 방법, 함수 및 개체와 같은 OOP 용어와 유사한 소프트웨어 추상화, 아이디어 또는 개념을 나타냅니다.에이전트의 개념은 호스트를 대신하여 태스크를 수행하기 위해 일정 수준의 자율성을 가지고 동작할 수 있는 복잡한 소프트웨어 엔티티를 설명하는 편리하고 강력한 방법을 제공합니다.그러나 메서드 및 속성 측면에서 정의되는 개체와 달리 에이전트는 동작[1][citation needed] 측면에서 정의됩니다.
다양한 저자가 에이전트의 다양한 정의를 제안하고 있습니다.이러한 정의에는 일반적으로 다음과 같은 개념이 포함됩니다.
- persistence(코드는 온 디맨드로 실행되지 않고 지속적으로 실행되며 어떤 액티비티를 수행해야 할 시기를 스스로 결정합니다)
- 자율성(에이전트는 작업 선택, 우선순위 부여, 목표 지향적 행동, 사람의 개입 없이 의사결정을 수행할 수 있는 능력이 있음)
- 사회적 능력(에이전트는 일종의 커뮤니케이션과 조정을 통해 다른 컴포넌트를 관여시킬 수 있으며, 작업에 대해 협업할 수 있음)
- 반응성(에이전트는 동작하는 컨텍스트를 인식하고 적절히 대응합니다).
에이전트와 프로그램의 구별
모든 에이전트가 프로그램이지만 모든 프로그램이 에이전트인 것은 아닙니다.용어를 관련 개념과 대조하는 것은 그 의미를 명확히 하는 데 도움이 될 수 있다.Franklin & Graesser(1997)[2]는 에이전트와 임의의 프로그램을 구별하는 4가지 주요 개념, 즉 환경에 대한 반응, 자율성, 목표 지향성 및 지속성에 대해 논의합니다.
에이전트와 오브젝트를 직관적으로 구별
- 에이전트는 오브젝트보다 자율적입니다.
- 담당자는 대응형, 프로 액티브형, 소셜형 등 유연한 행동을 취할 수 있습니다.
- 에이전트는 하나 이상의 제어 스레드를 가지고 있지만 더 [3]많은 제어 스레드를 가지고 있을 수 있습니다.
에이전트와 익스퍼트 시스템
- 전문가 시스템은 환경과 연계되어 있지 않습니다.
- 전문가 시스템은 사후 대응적이고 사전 예방적인 행동을 하도록 설계되어 있지 않습니다.
- 전문가 시스템은 사회적 [3]능력을 고려하지 않는다.
인공지능에서 인텔리전트 소프트웨어 에이전트와 인텔리전트 에이전트 구별
- 인텔리전트 에이전트(합리적 에이전트라고도 함)는 단순한 컴퓨터 프로그램이 아닙니다.또한 그것들은 기계, 인간, 인간의 커뮤니티(기업 등) 또는 목표 지향적인 행동을 할 수 있는 모든 것이 될 수 있습니다.
소프트웨어 에이전트의 영향
소프트웨어 에이전트는 복잡하거나 반복적인 [4]작업을 자동화함으로써 최종 사용자에게 다양한 이점을 제공할 수 있습니다.단, 이 테크놀로지의 조직적, 문화적 영향은 소프트웨어 에이전트를 구현하기 전에 고려해야 합니다.
조직에 미치는 영향
업무 만족도와 직무 만족도에 미치는 영향
사람들은 간단한 작업의 반복이 전체 결과에 영향을 미치지 않는 한 성공감을 주는 쉬운 작업을 수행하는 것을 좋아합니다.일반적으로 관리 요건을 수행하기 위해 소프트웨어 에이전트를 구현하면 작업 만족도가 크게 높아집니다.자체 작업을 관리한다고 해서 작업자가 만족할 수 있는 것은 아니기 때문입니다.해방된 노력은 개별 업무의 실질적인 업무에 보다 높은 수준의 참여를 가능하게 합니다.따라서 소프트웨어 에이전트는 계층적 제어 및 [5]간섭으로부터 해방된 자체 제어 작업을 구현하기 위한 기본을 제공할 수 있습니다.이러한 조건은 필요한 정식 지원을 위해 소프트웨어 에이전트를 적용함으로써 확보될 수 있습니다.
문화적 영향
소프트웨어 에이전트 구현의 문화적 영향에는 신뢰 문제, 기술 약화, 프라이버시 감소 및 사회적 고립이 포함됩니다.일부 사용자는 중요한 작업을 소프트웨어 애플리케이션에 완전히 위임하는 데 불편함을 느낄 수 있습니다.인텔리전트 에이전트에만 의존하기 시작하는 사람들은 정보 활용 능력과 관련된 중요한 기술을 잃을 수 있습니다.사용자를 대신하기 위해 소프트웨어 에이전트는 사용자의 개인 설정을 포함하여 사용자의 프로필을 완전히 이해해야 합니다.그 결과 예측할 수 없는 프라이버시 문제가 발생할 수 있습니다.사용자가 특히 커뮤니케이션 활동에 소프트웨어 에이전트에 더 의존하기 시작하면 다른 사용자와의 연결이 끊기고 에이전트의 눈으로 세상을 바라볼 수 있습니다.이러한 결과는 에이전트 연구자와 사용자가 인텔리전트 에이전트 [6]기술을 다룰 때 고려해야 할 사항입니다.
역사
에이전트의 개념은 Hewitt의 Actor Model(Hewitt, 1977년)로 거슬러 올라갈 수 있습니다.- "자체 포함, 상호작용 및 동시에 실행되는 개체로, 내부 상태와 통신 능력을 가지고 있습니다."
좀 더 자세히 설명하자면, 소프트웨어 에이전트 시스템은 MAS(Multi-Agent Systems)의 직접적인 발전입니다.MAS는 분산인공지능(DAI), 분산문제해결(DPS), 병렬AI(PAI)에서 발전해 DAI와 AI의 모든 특징(선악)을 계승했다.
John Sculley의 1987년 "Knowledge Navigator" 비디오는 최종 사용자와 에이전트 간의 관계에 대한 이미지를 표현했습니다.이상적인 첫 번째 분야였던 이 분야는 개별적인 상향식 접근 방식이 아닌 하향식 구현이 연속적으로 실패하였습니다.에이전트 타입의 범위는 현재(1990년부터) WWW, 검색 엔진 등 광범위합니다.
인텔리전트 소프트웨어 에이전트의 예
구매자 에이전트(쇼핑봇)
구매 담당자는 네트워크[7](인터넷 등)를 돌아다니며 상품 및 서비스에 대한 정보를 검색합니다.'쇼핑봇'이라고도 하는 이러한 에이전트는 CD, 서적, 전자 부품 및 기타 만능 제품과 같은 일반 제품에서 매우 효율적으로 작동합니다.구매자 에이전트는 일반적으로 전자상거래 및 기존 [8]비즈니스에서 사용되는 디지털 결제 서비스를 제공하도록 최적화되어 있습니다.
사용자 에이전트(퍼스널 에이전트)
사용자 에이전트 또는 개인 에이전트는 사용자를 대신하여 작업을 수행하는 지능형 에이전트입니다.이 카테고리에는 다음 태스크를 이미 수행했거나 곧 수행할 인텔리전트 에이전트가 포함됩니다.
- 전자 메일을 확인하고 사용자의 선호 순서에 따라 정렬한 후 중요한 전자 메일이 도착하면 알려줍니다.
- 컴퓨터 게임을 상대로 하거나 게임 구역을 순찰합니다.
- 맞춤형 뉴스 리포트를 조립할 수 있습니다.CNN을 포함한 몇 가지 버전이 있습니다.
- 선택한 주제에 대한 정보를 검색하십시오.
- 웹에서 자동으로 양식을 작성하여 나중에 참조할 수 있도록 정보를 저장합니다.
- 웹 페이지를 스캔하여 해당 정보의 "중요한" 부분을 구성하는 텍스트를 찾아 강조 표시합니다.
- 가장 두려운 것부터 스포츠에 이르기까지 다양한 주제에 대해 당신과 토론합니다.
- 이미 알려진 구인 게시판을 스캔하여 원하는 기준을 충족하는 영업 안건으로 이력서를 전송함으로써 온라인 구인 업무를 촉진합니다.
- 이기종 소셜 네트워크 간의 프로파일 동기화
감시 및 감시(예측) 에이전트
모니터링 및 감시 에이전트는 장비(일반적으로 컴퓨터 시스템)를 관찰하고 보고하는 데 사용됩니다.에이전트는 회사의 재고 수준을 추적하고, 경쟁사의 가격을 관찰하여 회사에 중계하고, 내부자 거래 및 루머에 의한 주가 조작을 감시할 수 있습니다.
예를 들어, NASA의 제트 추진 연구소에는 재고 감시, 계획, 비용 절감을 위한 장비 주문 일정, 식품 저장 시설 관리 등의 에이전트가 있습니다.이러한 에이전트는 일반적으로 네트워크에 연결된 각 시스템의 구성을 추적할 수 있는 복잡한 시스템 네트워크를 모니터링합니다.
감시 및 감시 에이전트의 특수한 경우는 전술적 운용 중 인간의 의사결정 프로세스를 에뮬레이트하기 위해 사용되는 에이전트의 조직입니다.에이전트는 자산 상태(무기, 사용 가능한 무기, 전송 플랫폼 등)를 모니터링하고 상위 레벨 에이전트로부터 목표(미션)를 받습니다.그런 다음 에이전트는 자산을 가까이에 두고 목표를 추구하며 자산 지출을 최소화하고 목표 달성을 극대화합니다(Poplewell, "에이전트와 적용 가능성" 참조).
데이터 마이닝 에이전트
이 에이전트는 정보기술(IT)을 사용하여 다양한 소스로부터 얻은 풍부한 정보의 경향과 패턴을 찾아냅니다.사용자는 원하는 정보를 찾기 위해 이 정보를 정렬할 수 있습니다.
데이터 마이닝 에이전트는 정보를 검출하는 데이터 웨어하우스 내에서 동작한다.'데이터 웨어하우스'는 다양한 소스로부터 정보를 수집합니다."데이터 마이닝"은 데이터 웨어하우스를 통해 매출을 늘리거나 탈주를 고려하고 있는 고객을 유지하는 방법 등 조치를 취하기 위해 사용할 수 있는 정보를 찾는 프로세스입니다.
'분류'는 정보에서 패턴을 찾아 다른 클래스로 분류하는 가장 일반적인 데이터 마이닝 유형 중 하나입니다.데이터 마이닝 에이전트는 트렌드의 주요 변화나 주요 지표도 탐지할 수 있으며 새로운 정보의 존재를 탐지하여 사용자에게 경고할 수 있습니다.예를 들어, 건설업계의 경기 침체를 검출할 수 있습니다.중계된 정보를 바탕으로 건설회사는 종업원의 고용/해고 또는 회사에 가장 적합한 기기의 구입/임대에 관한 현명한 의사결정을 내릴 수 있습니다.
네트워킹 및 통신 에이전트
현재 인텔리전트 에이전트의 다른 예로는 스팸 필터, 게임봇 및 서버 모니터링 도구가 있습니다.검색 엔진 인덱싱 봇은 지능형 에이전트로도 사용할 수 있습니다.
- 사용자 에이전트 - World Wide Web 브라우징용
- 메일 전송 에이전트 - Microsoft Outlook 등의 전자 메일 서비스용. 왜?사용자가 POP3 명령 프로토콜을 이해할 필요 없이 POP3 메일 서버와 통신합니다.또한 사용자를 위해 메일을 필터링하는 규칙 집합도 있으므로 사용자가 직접 메일을 필터링할 필요가 없습니다.
- SNMP 에이전트
- Unix 스타일의 네트워킹서버에서 httpd는 월드 와이드 웹의 루트에 Hypertext Transfer Protocol을 구현하는 HTTP 데몬입니다.
- 텔레콤 디바이스 관리에 사용되는 관리 에이전트
- 안전 계획이나 3D 컴퓨터 그래픽을 위한 군중 시뮬레이션,
- 무선 비콘 에이전트는 무선 리시버 상에서 호스트되는 보다 복잡한 소프트웨어 에이전트와 함께 무선 잠금 또는 전자 목줄을 구현하기 위한 단순한 프로세스 호스팅된 단일 태스크 엔티티입니다.
- 자율 에이전트(노이즈 장비)를 사용하여 [9]그룹 내 온라인 조정을 최적화합니다.
소프트웨어 개발 에이전트(소프트웨어 봇이라고도 함)
소프트웨어 [10]봇은 소프트웨어 엔지니어링에서 중요해지고 있습니다.소프트웨어 봇의 예로는 연속적인 통합 빌드 [11]오류를 자동으로 복구하는 봇이 있습니다.
보안 에이전트
또한 에이전트는 소프트웨어 보안 응용 프로그램에서 다양한 유형의 콘텐츠를 가로채고 검사하며 이에 대한 조치를 취하기 위해 사용됩니다.예를 들면 다음과 같습니다.
- Data Loss[12] Prevention(DLP) 에이전트 - 컴퓨터 또는 네트워크의 사용자 작업을 검사하고 허용된 액션을 지정하는 정책과 비교하여 적절한 액션(예: 허용, 경고, 차단)을 수행합니다.보다 포괄적인 DLP 에이전트를 사용하여 EDR 기능을 수행할 수도 있습니다.
- EDR(엔드포인트 탐지 및 응답) 에이전트 - 악의적인 액티비티를 탐지하고 대응하기 위해 엔드포인트 컴퓨터의 모든 액티비티를 모니터링합니다.
- 클라우드 액세스 보안 브로커(CASB) 에이전트 - DLP 에이전트와 유사하지만 클라우드 애플리케이션으로 가는 트래픽을 검사합니다.
설계상의 문제
에이전트 기반 시스템 개발 시 고려해야 할 문제는 다음과 같습니다.
- 작업 스케줄 설정 방법 및 작업 동기화가 이루어지는 방법
- 에이전트에 의한 태스크 우선순위 부여 방법
- 에이전트가 협업하거나 리소스를 모집하는 방법
- 다양한 환경에서 에이전트를 재검증하는 방법 및 에이전트의 내부 상태를 저장하는 방법,
- 환경을 조사하는 방법 및 환경 변화가 에이전트의 행동 변화로 이어지는 방법
- 메시징과 커뮤니케이션을 실현하는 방법,
- 에이전트의 어떤 계층이 유용한가(예: 태스크 실행 에이전트, 스케줄링 에이전트, 리소스 공급자 등)
소프트웨어 에이전트가 효율적으로 연동하려면 데이터 요소의 의미론을 공유해야 합니다.이것은, 컴퓨터 시스템에 메타데이터를 공개하는 것으로 실시할 수 있습니다.
에이전트 처리의 정의는 서로 관련된 다음 두 가지 방향에서 접근할 수 있습니다.
- 지식을 표현하기 위한 내부 상태 처리 및 온톨로지
- 인터랙션 프로토콜 – 태스크 커뮤니케이션을 지정하기 위한 표준
에이전트 시스템은 동시성 또는 병렬 처리를 통해 실제 시스템을 모델링하는 데 사용됩니다.
- 에이전트 머신 – 다양한 종류의 엔진으로 다양한 수준의 인텔리전스를 지원합니다.
- 에이전트 콘텐츠– 기계에서 사용하는 데이터 (추론과 학습)
- 에이전트 액세스– 기계가 내용을 인식하고 추론의 결과로 액션을 수행할 수 있도록 하는 방법
- 에이전트 보안 – 분산 컴퓨팅에 관한 우려 사항(에이전트와 관련된 몇 가지 특별한 우려 사항으로 확대)
에이전트는 액세스 방법을 사용하여 로컬 및 원격 데이터베이스로 이동하여 콘텐츠를 검색합니다.이러한 접근 방법에는 에이전트에 대한 뉴스 스트림 전달 설정, 게시판 검색, 거미 웹 워킹이 포함됩니다.이 방법으로 검색된 콘텐츠는 뉴스피드 또는 검색된 데이터베이스를 선택하여 이미 부분적으로 필터링되어 있을 수 있습니다.다음으로 에이전트는 상세 검색 또는 언어 처리 기계를 사용하여 수신 또는 취득한 콘텐츠 본문에서 키워드 또는 시그니처를 추출할 수 있습니다.이 추상화된 콘텐츠(또는 이벤트)는 새로운 콘텐츠에 대해 수행할 작업을 결정하기 위해 에이전트의 추론 또는 회의 기계로 전달됩니다.이 프로세스는 이벤트 콘텐츠를 사용자가 제공한 규칙 기반 또는 지식 콘텐츠와 결합합니다.이 프로세스가 새로운 콘텐츠에 적합한지 또는 일치하는지를 발견하면 에이전트는 다른 머신을 사용하여 콘텐츠에 대한 자세한 검색을 수행할 수 있습니다.마지막으로 에이전트는 새로운 콘텐츠에 따라 액션을 수행하도록 결정할 수 있습니다.예를 들어 중요한 이벤트가 발생했음을 사용자에게 통지합니다.이 액션은 보안 기능에 의해 검증되고 사용자의 권한이 부여됩니다.에이전트는 사용자 액세스 방법을 사용하여 해당 메시지를 사용자에게 전달합니다.사용자가 알림에 신속하게 대응함으로써 이벤트가 중요하다는 것을 확인한 경우 에이전트는 학습 기계를 사용하여 이러한 이벤트에 대한 가중치를 높일 수도 있습니다.
봇은 자신의 창조자를 대신해 선과 악을 모두 수행할 수 있습니다.봇이 최선의 의도를 가지고 설계되었으며 해를 끼치도록 설계되지 않았음을 입증하기 위해 봇을 만들 수 있는 몇 가지 방법이 있습니다.이것은 사이트와 통신할 때 사용자 에이전트 HTTP 헤더에서 봇이 자신을 식별하도록 함으로써 이루어집니다.또, 송신원IP 주소의 유효성을 검증하고, 그 자체를 정규로 할 필요가 있습니다.다음으로, 봇은 사이트의 로봇도 항상 존중해야 합니다.txt 파일은 대부분의 웹에서 표준이 되었기 때문에 사용할 수 있습니다.그리고 로봇을 존중하는 것을 좋아합니다.txt 파일은 봇이 너무 공격적이면 안 되고 크롤 지연 [13]명령을 따라야 합니다.
에이전트의 개념과 프레임워크
- DAML(DARPA 에이전트 마크업 언어)
- 3APL(인공 자율 에이전트 프로그래밍 언어)
- GOAL 에이전트 프로그래밍 언어
- 웹 온톨로지 언어(OWL)
- 데몬을 사용할 수 있습니다.
- Java 에이전트 템플릿(JAT)
- Java Agent Development Framework(JADE)
- SARL 에이전트 프로그래밍 언어(에이전트 지향 패러다임이 아닌 Actor일 수 있음)
「 」를 참조해 주세요.
레퍼런스
- ^ Wooldridge, M.; Jennings, N. R. (1995). "Intelligent agents: theory and practice". 10 (2). Knowledge Engineering Review: 115–152.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ Franklin, S.; Graesser, A. (1996). "Is it an Agent, or just a Program?: A Taxonomy for Autonomous Agents". Intelligent Agents III Agent Theories, Architectures, and Languages. Lecture Notes in Computer Science. Vol. 1193. University of Memphis, Institute for Intelligent Systems. pp. 21–35. doi:10.1007/BFb0013570. ISBN 978-3-540-62507-0.
- ^ a b Wooldridge, Michael J. (2002). An Introduction to Multiagent Systems. New York: John Wiley & Sons. p. 27. ISBN 978-0-471-49691-5.
- ^ Serenko, A.; Detlor, B. (2004). "Intelligent agents as innovations" (PDF). 18 (4): 364–381.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ Adonisi, M. (2003). "The relationship between Corporate Entrepreneurship, Market Orientation, Organisational Flexibility and Job satisfaction" (PDF) (Diss.). Fac.of Econ.and Mgmt.Sci., Univ.of Pretoria.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ Serenko, A.; Ruhi, U.; Cocosila, M. (2007). "Unplanned effects of intelligent agents on Internet use: Social Informatics approach" (PDF). 21 (1–2). Artificial Intelligence & Society: 141–166.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ Haag, Stephen (2006). "Management Information Systems for the Information Age": 224–228.
{{cite journal}}
:Cite 저널 요구 사항journal=
(도움말) - ^ "Maximize Your Business Impact How to Use Facebook Chatbots". Keystone Click. 2016-08-26. Retrieved 2017-09-07.
- ^ Shirado, Hirokazu; Christakis, Nicholas A (2017). "Locally noisy autonomous agents improve global human coordination in network experiments". Nature. 545 (7654): 370–374. Bibcode:2017Natur.545..370S. doi:10.1038/nature22332. PMC 5912653. PMID 28516927.
- ^ Lebeuf, Carlene; Storey, Margaret-Anne; Zagalsky, Alexey (2018). "Software Bots". IEEE Software. 35: 18–23. doi:10.1109/MS.2017.4541027. S2CID 31931036.
- ^ Urli, Simon; Yu, Zhongxing; Seinturier, Lionel; Monperrus, Martin (2018). "How to design a program repair bot? Insights from the Repairnator Project". Proceedings of the 40th International Conference on Software Engineering Software Engineering in Practice - ICSE-SEIP '18. pp. 95–104. arXiv:1811.09852. doi:10.1145/3183519.3183540. ISBN 9781450356596. S2CID 49237449.
- ^ https://info.digitalguardian.com/rs/768-OQW-145/images/SC-Labs-DLP-GROUP-TEST-AND-DG-REVIEW.pdf?field_resource_type_value=analyst-reports[베어 URL PDF]
- ^ "How to Live by the Code of Good Bots". DARKReading from Information World. 27 September 2017. Retrieved 2017-11-14.
외부 링크
- 소프트웨어 에이전트: 개요, Hyacinth S. Nwana.Knowledge Engineering Review, 11(3): 1~40, 1996년 9월.케임브리지 대학 출판부
- FIPA 인텔리전트 물리 에이전트의 기반
- JADE Java Agent Developing Framework(Telecom Italia Labs에서 개발한 오픈 소스 프레임워크)
- 유럽 소프트웨어 에이전트 연구 센터
- 시멘틱 에이전트 JADE를 기반으로 SWRL 기반 에이전트를 개발하는 오픈 소스 프레임워크
- Mobile-C 모바일 C/C++ 에이전트용 멀티 에이전트 플랫폼.
- HLL High-Level Logic(HLL) 오픈 소스 프로젝트.
- 소프트웨어 에이전트를 작성하기 위한 PHP 및 Java 개발자를 위한 오픈 소스 프로젝트 KATO