기술 스택과 고른 이유, AI 파이프라인·알림톡 연동 방식
공고 질문 적합한 기술 스택과 그 선택 이유, LMS와 AI 파이프라인·알림톡의 연동 방식
| 영역 | 선택 | 고른 이유 |
|---|---|---|
| 화면과 서버 | Next.js · TypeScript | 역할별 화면 다섯 묶음과 API를 저장소 하나에서 관리합니다. 휴대폰(학생·학부모)과 PC(강사·운영자) 화면을 같은 코드로 만들어 V2에서 고칠 곳이 한 군데입니다. |
| 데이터베이스 | PostgreSQL (AWS RDS) · Drizzle ORM | 출결·응답·진단처럼 서로 묶인 기록은 관계형 DB가 맞습니다. 외래 키와 제약 조건으로 ‘없는 학생의 응답’ 같은 꼬임을 DB가 먼저 막습니다. |
| 작업 대기열 | pg-boss | AI 호출·리포트 생성·알림톡 발송을 화면과 떼어 순서대로 처리합니다. 별도 서버 없이 같은 DB 안에 재시도 기록이 남습니다. |
| 알림톡 | 솔라피 API | 건별 발송 결과 확인과 실패 시 문자 대체 발송을 지원합니다. 월 1만 건 미만은 건당 13원(VAT 별도)입니다. |
| 서버 | AWS 서울 리전 | 학생 개인정보를 국내 리전에 보관하고 DB를 매일 자동 백업합니다. 사용자가 늘면 서버 사양만 올립니다. |
| 로그인 | 역할별 계정 · 리포트 전용 링크 | 대표·상담실장·강사는 역할에 맞는 메뉴만 봅니다. 학부모는 만료되는 링크와 휴대폰 뒷자리 확인으로 리포트를 엽니다. |
요청·결과 규격 하나로 고정합니다
- LMS가 보내는 요청과 받는 결과를 JSON 규격 하나로 정합니다. 파이프라인 안쪽 로직이 바뀌어도 규격만 지키면 LMS는 고칠 곳이 없습니다.
- 요청에는 학생 ID와 학습 기록만 실립니다. 이름·연락처·학교명은 규격에 칸이 없습니다.
- 60초 안에 답이 없거나 형식이 다르면 저장하지 않고 1분·5분·30분 뒤 다시 시도합니다. 세 번 실패하면 운영자 화면에 ‘확인 필요’로 뜹니다.
승인된 리포트만 나갑니다
- 초안 → 검토 → 승인 → 발송 순서만 허용합니다. 승인을 건너뛰는 길은 서버와 DB 양쪽에서 막습니다.
- 알림톡 본문에는 점수를 넣지 않고 열람 링크만 보냅니다. 링크는 14일 뒤 만료되고, 보호자 휴대폰 뒷자리로 확인합니다.
- 템플릿 3종(리포트 도착·상담 접수·일정 확정). 실패한 발송은 사유와 함께 남고 재발송이나 문자 대체가 됩니다.
이 여섯 가지가 실제 데이터로 확인되면 완료입니다
공고 질문 어떤 부분이 완료되어야 이 프로젝트가 성공적으로 마무리되었다고 보는지
- 엑셀 없이 이어집니다한 학생의 접수 → 레벨테스트 → 진단서 → 반 배정 → 숙제 → 리포트 발송이 한 시스템 안에서 끝납니다.
- 출석부에 그날 수업이 보입니다출석부를 열면 그 반의 해당 회차 커리큘럼이 함께 나오고, 출결과 데일리 테스트를 그 화면에서 입력합니다.
- 같은 응답은 언제나 같은 점수입니다채점과 진단 수치는 제공받은 규칙으로 계산하고, 어떤 규칙 버전으로 계산했는지 남습니다.
- AI 결과의 출처를 따라갈 수 있습니다진단 설명·오답 피드백·리포트 문구마다 입력 데이터와 규칙·프롬프트 버전이 연결되고, 사람이 승인한 것만 보입니다.
- 리포트가 빠짐없이 나갑니다학생별 주 2회 초안 → 승인 → 발송. 실패한 발송은 사유와 함께 남아 다시 보낼 수 있습니다.
- 시범 운영을 통과합니다12월 넷째 주 반 하나로 흐름이 끝까지 돌고, AI 호출 기록에 이름·연락처·학교명이 한 건도 없습니다.
함께 전달하는 것: 요구사항 정의서, 화면 설계서, 소스코드, DB·API·배포 문서, 역할별 운영 매뉴얼·SOP, 운영자 교육 1회(녹화본 제공).
아직 정하지 않은 범위에 대한 의견
공고 질문 각 항목을 포함하는 편이 나은지, 뺀다면 나중에 어떻게 붙일 수 있는지, 확인이 필요한 부분
파이프라인 서버 이전 · API화
기본 금액에 포함 · 필요한 것만 V1에서 진행- 의견
- 파이프라인이 PC나 AI 코딩 도구 안에서만 돈다면 V1 안에 서버로 옮기는 편이 낫습니다. 화·금 아침 리포트를 자동으로 만들려면 늘 켜져 있어야 하기 때문입니다.
- 이렇게 진행합니다
- 1주차에 6개 내외 파이프라인의 형태를 확인하고, 이미 호출할 수 있는 것은 그대로 연결, 아닌 것은 학원 AWS 서버로 옮겨 연동 규격 API로 감쌉니다. 옮기는 동안에는 결과 파일을 운영자 화면에 올려도 같은 흐름(검수 → 승인 → 발송)을 탑니다.
- 확인이 필요한 것
- 파이프라인 6개가 각각 어디서 어떤 언어로 돌고, 한 번 처리에 몇 초가 걸리는지
추가 비용 없음 · 기본 금액에 포함
실시간 상담 예약
기본 금액에 포함 · V1에서 제공- 의견
- 재원생 100명 규모에서는 희망 일정 세 개를 받고 상담실장이 확정하는 방식으로도 충분합니다. 다만 추가 비용 없이 실시간 예약까지 V1에 넣고, 학원이 두 방식 중 하나를 고를 수 있게 만듭니다.
- 넣는 기능
- 상담 가능 시간표 관리, 같은 시간 중복 예약 막기, 예약 확정·변경 알림톡
- 운영 방식
- 처음에는 ‘희망 일정 접수’로 시작하고, 원하시면 설정에서 ‘실시간 예약’으로 바꿉니다. 접수 기록은 두 방식 모두 같은 표에 쌓입니다.
추가 비용 없음 · 기본 금액에 포함
데이터가 꼬이지 않는 구조
공고 질문 학생 흐름 전체의 데이터를 중앙에 어떻게 구조화하고, 파이프라인 결과를 AI API와 어떻게 주고받아 저장할지
이전에 데이터가 꼬이는 원인은 대개 세 가지입니다. 같은 학생이 여러 곳에 다른 이름으로 있거나, 원본을 덮어써서 무엇이 바뀌었는지 모르거나, AI 결과가 어떤 입력에서 나왔는지 모르는 경우입니다. 아래 구조는 이 세 가지를 막도록 짰습니다.
데이터가 흐르는 순서
- 상담 접수같은 ID
leads보호자 동의 시각 - 학생 ID 하나응시
students끝까지 같은 ID - 문항별 응답규칙
responses고치지 않고 쌓기 - 채점·진단 수치가명 요청
scoringsrule_version 기록 - AI 처리 이력사람 확인
pipeline_runs입력·버전·응답 원문 - 진단서·피드백·리포트승인 후
run_id 연결고치기 전·후 문구 - 알림톡 발송
messages결과·실패 사유
- 학생 ID는 하나입니다. 접수 때 만든 ID가 레벨테스트·수강·출결·숙제·리포트까지 이어집니다. 이름은 화면에 보여 주는 데만 씁니다.
- 원본은 고치지 않고 쌓습니다. 정답이 바뀌어 다시 채점하면 새 기록을 만들고 이전 기록과 연결합니다.
- AI 결과는 출처와 함께 저장합니다. 입력 스냅샷, 규칙 버전, 프롬프트 버전, 응답 원문을 남기고, 강사가 고친 문구도 고치기 전 내용과 함께 남습니다.
- 상태는 정해진 순서로만 바뀝니다. 리포트는 초안 → 검토 → 승인 → 발송만 허용합니다.
- 같은 요청은 한 번만 처리합니다. 학생 ID·기간·종류로 만든 고유 키를 붙여, 재시도가 여러 번 일어나도 같은 주 리포트가 두 번 생기지 않습니다.
견적과 일정
공고 질문 과업별 공급가액·공수·세부 작업, 총액, 착수일·단계별 일정, 전제조건·제외 항목, 준비 자료·외부 계정, 하자보수, 유지보수·월 운영비, 유효기간
| 과업 | 세부 작업 | 공수 | 공급가액 |
|---|---|---|---|
| 상세 기획·설계 | 요구사항 정의서, 화면 설계서, DB·API 설계, 파이프라인 입출력 규격 | 3.5 M/D | 1,400,000원 |
| 학원 홈페이지·상담 접수 | 메인·학원 소개·프로그램(커리큘럼 안내)·학습 관리·입학 안내·소식(공지 게시판), 상담·레벨테스트 신청, 실시간 상담 예약, 로그인, 사진·영상 | 6 M/D | 2,400,000원 |
| 학생·학부모 화면 | 레벨테스트 응시, 숙제 열람·제출, 리포트 열람(전용 링크·휴대폰 뒷자리 확인) | 2.5 M/D | 1,000,000원 |
| 운영자 화면 | 접수 관리, 자동채점, 진단서(웹·출력), 반 배정, 학생·반·계정 권한, 결과 파일 올리기 | 5 M/D | 2,000,000원 |
| 강사 화면 | 출석부(회차 커리큘럼), 보충 숙제 연결, 숙제 배포·회수, 오답 피드백 검수, 대시보드 | 4.5 M/D | 1,800,000원 |
| 학부모 리포트·알림톡 | 주 2회 생성 일정, 검수·승인, 알림톡 연동(템플릿 4종), 발송 이력·재발송·문자 대체 | 3 M/D | 1,200,000원 |
| 데이터 통합·AI 연동 | 통합 DB, 파이프라인 연동 API, 대기열·재시도, 처리 이력, 가명 처리, 규칙·프롬프트 버전 | 4 M/D | 1,600,000원 |
| 파이프라인 서버 이전·API화 | 서버에서 호출되지 않는 파이프라인(6개 내외 중 필요한 것)을 학원 AWS로 옮기고 연동 규격 API로 감쌈 | 4.5 M/D | 1,800,000원 |
| 인프라·배포 | AWS 서울 리전 구성, 인증·환경변수, 자동 백업, 운영 배포 | 1 M/D | 400,000원 |
| 테스트·시범 운영 | 전체 흐름 검수, 권한·채점·승인·발송 오류 확인, 반 1개 시범 운영 | 1.5 M/D | 600,000원 |
| 문서·교육 | DB·API·배포 문서, 역할별 운영 매뉴얼·SOP, 운영자 교육 1회(녹화본) | 1 M/D | 400,000원 |
| 소계 | 1 M/D = 40만 원 | 36.5 M/D | 14,600,000원 |
| 예산 맞춤 조정 | 정하지 않은 범위 2건과 홈페이지 화면을 추가 비용 없이 포함 | −3,600,000원 | |
| 합계 | 공급가액 | 36.5 M/D | 11,000,000원 |
일정 · 11월 23일(월) 착수, 28영업일
- 설계 확정요구사항 정의서·화면 설계서 v1 확정
- 기준 확정본 받기진단·채점·반 배정·숙제 배정 기준
- 기능 완료화면 19개가 실제 데이터로 동작하는 테스트 주소
- 시범 운영 완료반 하나로 한 주 운영 후 오류 수정
- 완료 보고운영 배포, 문서 전달, 운영자 교육
매주 금요일 화상 30분으로 그 주에 만든 화면을 테스트 주소에서 함께 봅니다. 착수 가능일은 계약 다음 영업일입니다.
산정 전제와 제외 항목
- 전제
- 학원 자료(업무 흐름·요구사항·프롬프트·샘플)는 11/27까지, 진단·채점·반 배정 기준 확정본은 12/4까지 받습니다. 파이프라인은 호출할 수 있는 것은 그대로 연결하고, 아닌 것은 서버로 옮겨 API로 감쌉니다(기본 금액 포함). 화면은 시안 19개 기준이며 피그마 없이 테스트 주소에서 확정합니다.
- 제외
- 진단 알고리즘 연구·AI 모델 개발·프롬프트 작성, 문항·커리큘럼 콘텐츠 제작, 과거 엑셀·숙제 플랫폼 기록 이관(명단 엑셀 일괄 등록은 포함), 수납·결제, 앱 설치형, 서버·AI API·알림톡 사용료
학원이 준비할 자료와 계정
- 1주차
- 카카오톡 채널(비즈니스 인증), 솔라피 계정(발신 프로필), AWS 계정(설정은 대행 후 권한 이전), 업무 흐름·기준표·프롬프트·샘플·비식별 테스트 데이터
- 2주차
- 도메인(기존 홈페이지의 하위 주소 또는 새 도메인), 파이프라인이 호출하는 외부 AI 서비스(예: OpenAI·Claude·Gemini)의 학원 계정 키
하자보수와 유지보수
- 무상 하자보수 · 오픈 후 180일 (2027년 6월 29일까지)
- 정의서와 다르게 동작하는 기능, 발송 오류, 데이터 오류를 연락받은 날 확인하고 2영업일 안에 고칩니다.
- 유지보수 (선택) · 월 20만 원 또는 건별 견적
- 월 6시간 안의 수정과 문구·기준 변경 반영, 장애 당일 대응, 월 1회 백업·보안 점검
예상 월 운영비 (학원 계정 직접 결제)
- 서버 · AWS 서울 리전
- 약 60,000원 (웹 서버 1대, DB 1대, 저장소·백업)
- 알림톡 · 월 약 970건 × 13원
- 약 13,000원
- 도메인
- 약 2,000원 (연 2만 원대)
- 외부 AI 서비스 API
- 그 서비스 요금제에 따름 · 월 호출 약 2,500회 예상
합계 약 75,000원 + AI API (VAT 별도)
따로 청구하는 옵션은 없습니다. 코드 작성에 AI 개발 도구를 함께 써서 36.5 M/D 분량을 28영업일 안에 마칩니다. 견적 유효기간은 2026년 12월 9일까지입니다(작성일부터 30일). 자세한 근거는 ‘제안서 상세’ 07장에 있습니다.
사전 미팅에서 확인할 것
- 파이프라인 6개가 어디서 어떤 형식으로 돌아가는지 (서버 이전·API화가 필요한 것을 정하는 근거)
- 기존 엑셀·숙제 플랫폼 데이터를 옮겨야 하는지 (지금 견적에서는 제외)
- 파이프라인이 호출하는 외부 AI 서비스(예: OpenAI·Claude·Gemini)는 무엇이고, 그 결제 계정이 학원 명의인지 (학원 자체 AI 모델이 아니라 외부 API를 부르는 구조로 보았습니다)
- 카카오톡 채널이 이미 있는지, 알림톡 템플릿 검수를 언제 시작할 수 있는지
- 정부지원사업 정산에 필요한 서류와 산출물 형식