이 프로젝트는 단순한 스케줄 관리 도구를 넘어, Agentica(AI 에이전트)를 통해 사용자의 자연어 요청을 실시간으로 이해하고, 복잡한 스케줄 관리 작업을 자동으로 처리하는 지능형 어시스턴트 애플리케이션입니다. 사용자는 더 이상 버튼을 찾고 폼을 채우는 대신, 채팅 하나만으로 모든 것을 해결할 수 있습니다.
기존의 스케줄 관리 앱은 사용자가 직접 메뉴를 탐색하고, 폼을 찾아 정보를 입력해야 하는 번거로움이 있었습니다. 이 프로젝트의 목적은 이러한 과정을 완전히 제거하고, 사용자가 가장 직관적인 방식인 '대화'를 통해 스케줄을 관리할 수 있는 혁신적인 사용자 경험을 제공하는 것입니다.
Agentica는 사용자의 요청을 단순 처리하는 것을 넘어, 문맥을 파악하고 필요한 작업을 스스로 판단하여 실행하는 진정한 의미의 '비서' 역할을 수행합니다.
이 프로젝트의 핵심은 agent-server.js에 구현된 AI 에이전트입니다. 이 에이전트는 OpenAI의 gpt-4o-mini 모델과 Function Calling 기술을 기반으로 다음과 같은 정교한 흐름을 통해 사용자의 요청을 처리합니다.
-
자연어 입력 (User -> App)
"내일 오후 3시부터 6시까지 근무하는거 다른 날로 바꿔줘"
-
API 요청 (App -> Agent Server)
- 클라이언트는 사용자 메시지를 그대로 API 서버(
/api/chat)로 전송합니다.
- 클라이언트는 사용자 메시지를 그대로 API 서버(
-
의도 분석 및 정보 추출 (Agent Server -> OpenAI)
- 서버는 AI 모델에게 사용자 메시지와 함께, 사전에 정의된 시스템 프롬프트(System Prompt)를 전달합니다. 이 프롬프트는 AI에게 명확한 역할과 규칙을 부여합니다.
- 역할 부여: "너는 스케줄 관리 비서 'Agentica'야."
- 사용자 인지: "현재 대화 중인 사용자는 '직원1'(ID: 1)이야."
- 기능 정의 (Function Calling): "사용자가 '근무 교환'을 원하면,
create_timeswap이라는 정해진 JSON 형식으로 응답해. 이때, 문장에서 날짜와 시간을 정확히 추출해야 해."
- 서버는 AI 모델에게 사용자 메시지와 함께, 사전에 정의된 시스템 프롬프트(System Prompt)를 전달합니다. 이 프롬프트는 AI에게 명확한 역할과 규칙을 부여합니다.
-
구조화된 데이터 반환 (OpenAI -> Agent Server)
- AI는 자연어 문장을 분석하여, 지시받은 JSON 형식으로 핵심 정보를 구조화하여 반환합니다.
{ "function": "create_timeswap", "parameters": { "date": "2025/08/22", "time": "15:00-18:00", "body": "오후 3시부터 6시까지 근무 교환 요청" } } -
기능 실행 (Agent Server)
- 서버는 AI가 반환한 JSON을 해석하여
create_timeswap함수를 실행하고, 추출된 파라미터를 사용하여 실제 TimeSwap 게시글을 데이터베이스에 저장합니다.
- 서버는 AI가 반환한 JSON을 해석하여
-
최종 피드백 (Agent Server -> App -> User)
- 서버는 "✅ 직원1님의 요청에 따라, 2025/08/22 (15:00-18:00) 근무 교환 요청을 등록했습니다." 와 같은 최종 확인 메시지를 클라이언트에 전달하고, 사용자는 채팅창에서 결과를 확인합니다.
- 업무 효율성 극대화: 사용자는 여러 화면을 이동하고 폼을 작성하는 데 시간을 낭비하는 대신, 채팅창에 원하는 바를 입력하는 것만으로 스케줄 관련 업무를 즉시 처리할 수 있습니다.
- 사용자 경험 혁신: 복잡한 기능 학습 과정 없이, 누구나 마치 사람과 대화하듯 자연스럽게 앱의 모든 기능을 활용할 수 있습니다.
- 오류 감소: AI가 정해진 형식에 맞춰 데이터를 처리하므로, 사용자의 입력 실수로 인한 데이터 오류 발생 가능성이 현저히 줄어듭니다.
- 확장 가능한 플랫폼: 현재는 스케줄 관리에 집중되어 있지만, Agentica의 Function Calling 구조는 향후 급여 정산, 보고서 생성 등 더 복잡하고 다양한 업무 자동화 기능으로 쉽게 확장될 수 있는 기반을 제공합니다.
- Frontend: HTML, CSS, JavaScript (Vanila JS)
- Backend: Node.js, Express.js
- AI: OpenAI API (
gpt-4o-mini), Function Calling - Database: MySQL (현재는 메모리 내 배열로 임시 구현)
-
저장소 복제
git clone <repository-url> cd schedule_manager_app-2
-
필요한 패키지 설치
npm install
-
환경 변수 설정
- 프로젝트 루트에
.env파일을 생성하고, 파일 내에 OpenAI API 키를 추가합니다.# .env OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
- 프로젝트 루트에
-
서버 실행
node agent-server.js
-
애플리케이션 접속 * 웹 브라우저에서
index.html파일을 열어 애플리케이션을 시작합니다.