웹 · 앱 · 프로그램 개발
Selected work
누르면 상세가 열립니다
푸드트럭 운영 통합 시스템
푸드트럭 여러 대를 지점 단위로 운영하는 회사에 맞춰 직관적이며 개발자의 손을 타지 않고 오래 잘 쓸 수 있도록 설계.
푸드트럭 여러 대를 지점 단위로 운영하는 회사가 실제 영업에 쓰고 있는 시스템입니다.
직원 : 위치 기반 출퇴근, 일일 판매 정산
사무실 : 매출, 재고, 발주, 급여, 직원 위치 관리
등을 현장에서는 휴대폰으로, 사무실에서는 PC로 함께 처리합니다.
한 번 입력한 숫자가 매출과 재고, 급여까지 알아서 이어지도록 만들었습니다.
하루를 마감하는 정산
장사가 끝나면 직원이 그날 판매를 입력합니다. 품목마다 몇 개 팔았는지와 남은 재고를 넣으면 매출이 자동으로 계산되고, 가스비·자릿세 같은 그날 지출을 더하면 순수익까지 나옵니다. 마감을 누르면 그대로 퇴근 처리되고 위치 추적도 꺼집니다.
문제는 직원마다 파는 게 다르다는 것이었습니다. 트럭과 지역에 따라 취급 품목도 가격도 달라서, 관리자가 "이 트럭은 이 품목을 이 가격에 판다"는 틀을 만들어 직원에게 지정합니다. 지정된 직원은 품목과 단가가 고정돼 수량만 넣으면 되고, 지정되지 않은 직원은 품목을 직접 추가해 입력합니다.
나중에 그 틀을 고쳐도 이미 지나간 정산 금액은 그대로입니다. 지난달 매출이 오늘 단가 변경 때문에 바뀌면 안 되니까요.
매출 조회와 수정 승인
기간을 골라 매출 추이를 봅니다. 최근 7일·30일·90일·전체 중에 고르고, 일별이 너무 촘촘하면 주별이나 월별로 묶어 볼 수 있습니다. 막대는 총매출, 선은 순수익이고 원하면 한쪽만 볼 수도 있습니다.
목록의 행을 누르면 그날 무엇을 몇 개 팔았는지, 기타 지출이 무엇이었는지가 펼쳐집니다. 합계만 보고 "이날 왜 적지?"에서 멈추지 않고 바로 안을 들여다볼 수 있습니다.
숫자를 잘못 넣었을 때는 직원이 직접 고치지 못하고 수정 요청을 올립니다. 대표가 승인해야 반영됩니다 — 마감된 매출이 조용히 바뀌는 일을 막기 위한 장치입니다.
급여 · 정산 — 매출이 그대로 이어집니다
대표는 매달 급여와 정산을 한 묶음 화면에서 처리합니다. 급여는 따로 계산할 필요가 없습니다 — 직원이 매일 마감한 판매 기록에서 판매개수 × 단가로 지급액이 자동으로 잡혀, 지점별·직원별로 정리돼 나옵니다. 아직 정산을 마감하지 않은 날이 있으면 "미마감 O건"으로 먼저 알려줘서, 빠진 데이터 위에서 급여가 계산되는 일을 막습니다.
급여 외에 그달에 얹는 항목도 함께 답니다. 추가 수당이나 차주 지원금은 날짜·금액·메모를 달아 등록하고, 차주 정산은 매출에서 재료비·소모품비·기타 지출·급여를 빼 순정산액까지 자동으로 뽑아줍니다. 한 사람 몫만 보고 싶으면 지점이나 직원으로 걸러 보고, 달은 화살표로 넘겨 지난달과 비교합니다.
실제로 돈이 나갔는지는 따로 관리합니다. 관리자가 지급을 '입금 완료'로 체크하면 대표가 '확인'으로 잠가서, 미지급 → 지급 → 확인 세 단계로 상태가 남습니다. 마감된 지급 내역이 조용히 바뀌지 않도록 하는 장치입니다.
재고와 발주가 저절로 맞물립니다
유통사에 발주를 넣고 배송 완료로 처리하면 그 수량이 물류센터 재고로 자동으로 들어옵니다. 직원이 출근하며 챙겨간 만큼 창고에서 빠져 트럭으로 옮겨가고, 저녁에 정산하며 넣은 판매·폐기 수량만큼 트럭에서 빠집니다.
핵심은 재고를 위해 따로 입력하는 일이 없다는 것입니다. 이미 하고 있던 발주와 정산이 그대로 재고가 됩니다. 정산을 고쳐 다시 저장해도 차이만큼만 반영되기 때문에, 두 번 저장했다고 재고가 두 배로 빠지지 않습니다.
품목이 늘어나면 목록이 길어지니 닭꼬치류·소스·비품처럼 그룹으로 묶어 볼 수 있고, 언제 무엇이 왜 움직였는지가 기록으로 남습니다.
지금 어디에 있는지, 어디에서 장사하는지
출근한 직원의 위치가 지도에 표시되고, 정산을 마감하면 꺼집니다. 오늘 어디를 거쳐 다녔는지 동선도 함께 볼 수 있고, 요일별로 걸러 "매주 화요일엔 어디를 도는지" 같은 것도 확인합니다. 동선은 7일치만 남습니다.
가까이 있는 직원들은 지도에서 겹쳐 보이는데, 확대하면 자동으로 각자 떨어져 나와 개별로 고를 수 있습니다.
장사 지역 지도는 따로 있습니다. 배정된 자리들을 지점별 색으로 찍어두고, 점을 누르면 누가 몇 시에 서는지와 상세 주소, 길찾기 버튼이 나옵니다.
차량 관리 — 정비 · 점검 · 수리
트럭도 관리 대상입니다. 엔진오일·타이어·브레이크 같은 정비 항목을 등록해두면 마지막 교체일로부터 얼마나 지났는지, 주행거리가 얼마나 쌓였는지를 항목마다 추적해서 교체 시기가 다가온 것을 먼저 짚어줍니다. 냉각수 누수 같은 수리는 날짜·내용·수리비와 함께 사진으로 이력에 남깁니다.
직원도 자기 차량을 챙깁니다. 본인 트럭의 소모품 교체나 사고 이력을 직접 남길 수 있어서, 현장에서 있었던 일이 사무실 기록과 따로 놀지 않습니다.
수리비 같은 차량 지출은 투자자 입금과 연동돼, 누가 얼마를 넣어 무엇을 고쳤는지가 정산과 이어집니다.
공지 & 개인 메모
대표나 공지 권한이 있는 관리자가 공지를 올리면 전 직원에게 전해집니다. 아직 안 읽은 공지는 메뉴에 배지 숫자로 표시되고, 중요한 건 앱 안에서 배너로 떠서 "못 보고 지나가는" 일을 줄였습니다. 읽으면 배너가 닫히고 배지도 줄어듭니다.
개인 메모는 각자 자기 것만 남기는 공간입니다. 거래처 미팅 내용이나 비품 주문 리스트처럼 잊지 말아야 할 것을 그때그때 적어두고, 본인만 보고 관리합니다.
AI 비서 — 말로 묻고, 표로 받는 업무 현황

대표 계정에는 AI 비서가 붙어 있습니다. "지금 전체적인 상황이 어때?"처럼 말로 물으면 매출·정산·재고·출퇴근·발주·차량 기록을 직접 찾아보고 답합니다. 숫자가 들어가는 답은 반드시 실제 기록을 조회한 뒤에만 하도록 만들어, AI가 그럴듯한 숫자를 지어내지 않습니다. 기간이 애매하면 합리적으로 정해 먼저 답하고, 어떤 기간으로 봤는지 함께 밝힙니다.
답은 결론부터 말합니다. 위 예시에서는 "10월 5일 이후 매출·출결 기록이 끊겼다"는 이상 신호를 맨 앞에 두고, 차량 보험 만기 경과, 대기 중인 발주·출결 신청, 장사자리 침범처럼 지금 챙겨야 할 일을 급한 순서로 정리한 뒤 매출 흐름을 브리핑합니다.
"전체적인 표를 PDF로 만들어 봐"라고 하면 필요한 기록(매출·지부·재고·출결 등)을 다시 조회한 뒤 매출 비교, 지부별 매출, 인기 메뉴, 폐기율, 출결, 차량 현황까지 담은 PDF를 만들어 채팅창에 내려받기 버튼으로 붙여 줍니다. 엑셀·PPT·워드도 같은 방식으로 만듭니다. 만든 파일은 본인만 받을 수 있고 일주일이 지나면 자동으로 지워집니다.
AI는 기록을 읽기만 하고, 묻는 사람이 볼 수 있는 지부 범위를 그대로 따릅니다.
역할마다 다른 화면, 그리고 운영
같은 시스템이지만 직원·지점장·대표·투자자가 보는 것이 다릅니다. 지점장은 기본적으로 자기 지점만 보고, 대표는 전체를 봅니다. 투자자에게는 정산 현황과 캘린더를 읽기 전용으로 엽니다.
권한은 역할에 고정돼 있지 않고 스위치처럼 켜고 끕니다. "매출 조회" "전체 지점 보기" "물류센터 관리"를 특정 지점장에게만 열어주는 식이라, 사람을 승진시키지 않고도 일만 나눌 수 있습니다.
현장에서는 안드로이드 앱으로 씁니다. 공지는 항상 푸시로 가고, 다음 근무지로 이동할 시간은 10분·5분 전에 주소·길찾기와 함께 알려줍니다(이 알림만 직원이 끌 수 있습니다).
영업 데이터라 잃으면 곤란해서, 매시간 자동 백업이 돌고 엑셀로도 내려받을 수 있습니다. 복구나 오래된 데이터 정리처럼 되돌릴 수 없는 작업은 비밀번호를 다시 확인한 뒤에만 실행됩니다.
지금이 아니라 앞으로를 보고 짠 데이터베이스
당장 돌아가는 것만 보고 짜면 규모가 커질 때 반드시 발목을 잡습니다. 그래서 트럭·지점·품목·직원이 몇 배로 늘어나도 구조를 갈아엎지 않도록 설계했습니다. 품목을 컬럼이 아니라 행으로 쌓는 헤더+라인 구조, 권한을 역할에 박지 않고 스위치로 켜고 끄는 구조, 재고를 잔량과 로그로 나눠 두는 구조 모두 "규모가 커졌을 때"를 기준으로 고른 선택입니다.
회계 성격의 데이터는 그때의 값을 그대로 박제해, 나중에 단가·품목이 바뀌어도 과거 정산이 흔들리지 않습니다. 새 지점·새 품목·새 역할이 생겨도 기존 데이터를 건드리지 않고 얹기만 하면 되도록, 확장을 데이터 모델 단계에서 미리 열어 두었습니다.
서버 관리기 — 개발자 없이도 서버를 돌보게
실제 영업에 쓰는 시스템이라 서버가 멈추면 그날 장사 기록이 막힙니다. 그래서 관리자가 개발자를 부르지 않고도 서버 상태를 확인하고 조치할 수 있는 서버 관리기를 함께 만들었습니다. 서버 상태와 자원 사용을 눈으로 확인하고 필요한 조치를 화면에서 바로 실행합니다.
재시작·정리·복구처럼 되돌릴 수 없는 작업은 반드시 비밀번호를 다시 확인한 뒤에만 실행되도록 잠가, 관리 편의와 안전을 동시에 잡았습니다.
데이터 백업 시스템 — 영업 기록은 잃으면 끝이니까
매출·정산·재고는 한 번 잃으면 되돌릴 수 없는 영업 데이터입니다. 그래서 매시간 자동 백업이 돌고, 필요하면 엑셀로도 내려받아 손안에 사본을 둘 수 있게 했습니다. 백업본을 이용한 복구나 오래된 데이터 정리 같은 위험한 작업 역시 비밀번호 재확인 뒤에만 실행됩니다.
ReviewRo - 여행 리뷰·계획 (3인)
가 본 곳을 리뷰로 남기고 지도에서 장소를 찾아 일정으로 묶는 여행 리뷰·계획 플랫폼입니다. 3인 팀에서 AI 여행 추천·AI 여행 가이드·사주 여행·포토맵·일정 퍼가기·지역 톡방·관리자·보안 파트를 담당했습니다.
여행 리뷰와 여행 계획을 함께 다루는 플랫폼입니다. (3인 개발)
가 본 곳을 리뷰로 남기고, 지도에서 장소를 찾아 일정으로 묶고,
다녀온 사진은 지도 위에 꾸며 한 장으로 남기는 서비스입니다.
3인 팀으로 진행되었습니다.
AI 여행 추천 — 파트라슈
"부산에 바다 보이는 조용한 카페"처럼 말로 물으면, AI 가이드 파트라슈가 리뷰로에 등록된 장소 중에서 골라 추천합니다. 추천한 곳은 오른쪽 목록과 지도에 바로 찍혀서, 대화를 읽으면서 위치까지 함께 확인할 수 있습니다.
가장 신경 쓴 건 AI가 없는 장소를 지어내지 않게 하는 것이었습니다. 지역·업종·분위기 같은 검색 조건을 먼저 따로 뽑고, 실제 데이터베이스에서 찾은 장소만 AI에게 넘겨 설명하게 했습니다. 찾은 곳이 없으면 AI를 거치지 않고 "찾지 못했다"고 바로 답합니다.
"서산"처럼 시·군 이름만 말해도 어느 도인지 알아서 찾고, "아무 데나"라고 하면 지역을 골라 추천합니다. 답변은 글자가 써지듯 실시간으로 흘러나옵니다.
오행여행 — 사주로 고르는 여행지
생년월일과 태어난 시각을 넣으면 사주팔자를 풀어, 부족한 기운을 채워 줄 여행 스타일을 추천합니다. 가고 싶은 지역을 말하면 그 지역에서 어울리는 장소를 찾아 지도와 목록으로 보여주고, 마음에 드는 곳은 바로 저장할 수 있습니다.
사주 계산은 AI에게 맡기지 않았습니다. 만세력 계산은 화면에서 정확하게 끝내고, AI는 그 결과를 해석만 합니다. 서울 기준 진태양시(약 30분)와 과거 서머타임까지 자동으로 보정하고, 태어난 시각을 모르면 시주를 비워 둔 채 계산합니다.
네로 — 내 일정을 봐주는 AI 플래너
여행 계획 화면 오른쪽 아래에는 AI 플래너 네로가 있습니다. "이 일정 괜찮아?"라고 물으면 지금 화면에 띄워 둔 일정을 그대로 읽고, 휴무일·영업시간이 겹치는 곳, 장소 사이 이동 거리, 붐비는 날까지 짚어 줍니다.
AI가 약한 요일 계산과 장소 간 거리 계산은 미리 해서 넘겨주기 때문에, "화목원까지 24km"처럼 숫자가 틀리지 않습니다.
네로의 여행 가이드 — 내 일정으로 만드는 여행 안내서
여행 계획을 다 짰으면 '가이드 만들기' 버튼 하나로 노션 여행 가이드 같은 안내서를 받습니다. 일차별 제목과 동선, 장소마다 팁, 운영시간·휴무·장소 사이 거리까지 한 장에 정리됩니다.
운영시간·휴무·거리 같은 사실은 AI가 쓰지 않습니다. 장소 데이터와 서버 계산으로 채우고, AI는 정리와 추천 문장만 씁니다. 그래서 "그날 쉬는 곳"이 일정에 들어 있으면 가이드가 먼저 짚어 줍니다.
마음에 안 드는 부분은 "둘째 날 팁을 더 자세히"처럼 말로 고쳐 달라고 하면 그 부분만 다시 써 주고, 저장하기 전까지는 초안으로 남습니다. 완성한 가이드는 이미지로 내려받아 함께 가는 사람에게 바로 보낼 수 있습니다.

포토맵 — 다녀온 사진으로 채우는 대한민국 지도
시·도를 눌러 확대한 뒤 시·군·구를 누르면 그 모양대로 사진이 들어갑니다. 사진은 경계 안에서 끌어서 위치를 맞추고, 휠로 크기를 조절합니다.
여러 구를 하나로 묶는 구 합치기로 도 전체를 사진 한 장으로 채울 수도 있습니다. 넓은 지역을 다녀왔을 때 사진이 구마다 잘게 쪼개지지 않도록 만든 기능입니다.
폴라로이드 사진과 손글씨 메모 스티커를 붙여 꾸밉니다. 글자 굵기·색·배경을 바꿀 수 있고, 스티커는 끌어서 옮기고 돌리고 크기를 바꿉니다.
완성한 지도는 FHD 같은 해상도를 골라 PNG 한 장으로 내려받습니다. 손글씨 폰트까지 그대로 들어간 이미지라 SNS에 바로 올릴 수 있습니다.
휴대폰 원본 사진은 올리기 전에 브라우저에서 WebP로 줄여서 보냅니다. 업로드가 빨라지고 서버 용량도 아낍니다.
일정 퍼가기
다른 여행자가 올린 일정 템플릿이 마음에 들면 버튼 하나로 내 여행 계획에 복사합니다. 날짜는 오늘부터 다시 맞춰지고, 그 뒤로는 내 일정처럼 장소 순서를 바꾸거나 빼고 넣을 수 있습니다. 많이 퍼간 일정은 퍼감 수가 쌓여 인기 일정으로 드러납니다.
위 네로 화면의 춘천 일정도 이렇게 퍼온 일정입니다. 퍼오자마자 네로에게 바로 검토를 받을 수 있습니다.
지역별 실시간 톡방
17개 시·도별로 톡방을 열고, 같은 곳으로 떠나는 사람들끼리 실시간으로 대화합니다. 새로고침 없이 메시지가 바로 들어오고, 지금 몇 명이 접속해 있는지도 함께 보입니다. 같은 사람이 창을 여러 개 열어도 한 명으로 셉니다.
관리자 · 보안
관리자 대시보드에서 회원·리뷰·게시글·일정 템플릿 수와 최근 7일 증가분, 주간 가입 추이, 인기 해시태그를 한눈에 봅니다.
장소 관리 화면에서는 지도를 보며 장소를 검색·등록·수정합니다. 지도를 누르면 그 자리에 위치가 찍히고, 목록은 지역별로 걸러 페이지로 넘겨 봅니다.
권한은 일반·관리자·최고관리자 세 단계로 나눴고, 회원 삭제나 권한 변경처럼 되돌릴 수 없는 작업은 비밀번호를 다시 확인한 뒤에만 실행됩니다. 권한이 바뀌면 그 회원의 로그인이 즉시 갱신돼 다시 로그인하지 않아도 새 권한이 바로 적용됩니다.
AI 설정 화면에서는 AI가 답할 모델을 자체 서버(무료)와 Claude API(유료) 중에서 고르고, 저장 전에 연결 테스트로 응답 속도를 확인합니다. 바꾸면 서버를 다시 켜지 않아도 다음 질문부터 바로 적용되고, API 키가 없으면 자동으로 자체 서버로 돌아갑니다.
배포 전에는 프로젝트 전체 보안 점검을 맡아 권한 검사, 파일 업로드 검증, XSS, 설정값 분리 같은 취약점을 정리했습니다. 실제 서비스를 열면서 로그인 무차별 대입을 막는 잠금(같은 접속지에서 10초 안에 5번 시도하면 30초 잠금)과 접속 기록도 붙였습니다.
자바 웹 개발 교재 앱
AI 시대, 6개월 안에 "돌아가는 기본 개념과 흐름"과 실전 팁을 제대로 전하려고 만든 교재 앱. 슬라이드·검색·지식저장소·코드 연습장(Spring Boot 포함)을 exe 하나에 담았습니다.
6개월 자바 웹 개발 과정을 위해 직접 만든 교재 앱입니다.
AI가 코드를 대신 써 주는 시대라도, 6개월이라는 짧은 시간 안에 프로그램이 실제로 어떻게 돌아가는지 기본 개념과 흐름, 그리고 현장에서 바로 쓰는 실전 팁만큼은 제대로 알려주고 싶었습니다. 기본이 잡혀 있어야 AI에게 무엇을 시킬지 알고, AI가 낸 결과가 맞는지도 판단할 수 있습니다. 과정이 끝난 뒤 다른 분야를 혼자 공부할 때도 마찬가지입니다.
그걸 오래전에 만들어진 PPT나 두꺼운 책으로 하고 싶지는 않았습니다. 그래서 슬라이드·검색·용어 사전·실습 환경을 파일 하나(exe)에 모아, 설치 없이 열기만 하면 바로 보고 바로 실행해 볼 수 있게 만들었습니다.
자바 기초부터 웹·DB·스프링·스프링부트 게시판·리액트·Git 협업까지 7개 시리즈, 45강, 슬라이드 1,287장을 담았습니다.
슬라이드 교재 — 목차를 보며 넘기는 강의
강의 덱을 앱 안에서 그대로 봅니다. 왼쪽에는 지금 덱의 슬라이드 목차가 펼쳐지고, 읽고 있는 슬라이드가 따라 표시됩니다. 방향키로 한 장씩 넘기고, F를 누르면 그 슬라이드만 화면 가득 띄워 수업 화면으로 씁니다.
각 강의는 "오늘의 목표 → 시작하기 전에(오늘 처음 나오는 말) → 개념 → 단계별 실습 → 트러블슈팅 → 정리" 순서로 짜여 있습니다. 문법을 외우게 하기보다 왜 이렇게 쓰는지, 실제로 어디서 쓰이는지를 먼저 보여 주는 구성입니다.
연습장 — 슬라이드의 코드를 그 자리에서 실행
슬라이드의 코드 상자에 마우스를 올리면 "연습장" 버튼이 나오고, 누르면 그 코드가 연습장에 담겨 바로 실행됩니다. 이클립스나 인텔리제이를 아직 다룰 줄 몰라도 첫날부터 코드를 돌려 볼 수 있습니다.
Java·JavaScript·HTML/CSS·SQL을 지원합니다. Java는 PC에 설치된 JDK를 찾아 실제로 컴파일·실행하고, Scanner 입력도 넣을 수 있습니다.
SQL은 회원·게시글·댓글이 들어 있는 샘플 DB가 앱 안에 있어서, DB를 설치하기 전에도 SELECT부터 JOIN까지 결과를 표로 보며 연습합니다. 수업에서 쓰는 MariaDB 문법도 대부분 그대로 받습니다.
Spring Boot 연습장 — 게시판이 실제로 뜨는 걸 보며 배우기
가장 공들인 기능입니다. 컨트롤러·서비스·리포지토리·엔티티·템플릿으로 이루어진 게시판 프로젝트를 앱 안에서 고치고, 실행 버튼 하나로 진짜 스프링부트 서버를 띄웁니다. 오른쪽 미리보기에서 글을 쓰고 목록이 바뀌는 걸 바로 확인하고, 아래 로그에서 Hibernate가 어떤 SQL을 날리는지까지 봅니다.
"요청이 컨트롤러로 들어와 서비스와 리포지토리를 거쳐 DB까지 갔다가 화면으로 돌아오는 흐름"을 눈으로 따라가게 하는 것이 목적입니다. 에러가 나면 로그의 줄을 눌러 해당 파일·줄로 바로 이동합니다. DB는 메모리(H2)와 로컬 MariaDB 중에 고르고, 스프링 시큐리티는 켜고 끌 수 있습니다. 다 만든 프로젝트는 zip으로 내보내 인텔리제이에서 그대로 이어 갈 수 있습니다.
자동완성 — 외우지 말고 찍어서 고르기
변수 뒤에 점(.)을 찍으면 쓸 수 있는 메서드가 한글 설명과 함께 뜹니다. 수업에서 강조하는 "외우지 말고 점 찍고 목록에서 고른다"를 연습장에서도 그대로 할 수 있게 했습니다. 설명 아래 링크로 지식저장소의 자세한 항목으로 넘어갑니다.
지식저장소와 전체 검색 — 막히는 곳을 혼자 찾아보는 힘
Java·HTML·CSS·JavaScript·SQL·JDBC·Spring·Spring Boot·JPA·Thymeleaf·Lombok·Security·React·Git까지 3,300여 개 항목을 분야별로 정리한 지식저장소입니다. 문법, 자주 쓰는 메서드, 설정값, 자주 만나는 에러와 해결법을 예제와 함께 담았고, 예제는 연습장에서 바로 실행됩니다.
전체 검색은 1,287장 슬라이드의 제목과 본문, 지식저장소를 한 번에 찾습니다. 결과를 누르면 해당 슬라이드로 바로 갑니다. 수업이 끝난 뒤에도 "그거 어디서 배웠더라"를 스스로 찾아볼 수 있게 하는 것이 목표입니다.
강사를 위한 기능
관리자 모드에서는 슬라이드마다 강사 노트가 열리고, 아직 진도가 안 나간 덱은 학생 화면에서 숨길 수 있습니다. 주차별 커리큘럼 표도 앱 안에서 바로 고칩니다.
배포는 exe 파일 하나입니다. 인터넷이 없는 강의실에서도 동작하고, 학생 PC에 무엇을 따로 설치하라고 안내할 필요가 없습니다.
학원 행정 통합망 (2인)
훈련기관(학원)의 행정 업무를 하나로 묶은 대규모 통합 시스템입니다. 2인 팀에서 AI 챗봇·업무 유틸·시설장비·HRD 출석 데이터 연동 파트를 담당했습니다.
훈련기관(학원)의 행정 업무를 하나로 묶은 통합 관리 시스템입니다.
훈련생 모집·등록부터 출결, 훈련일지, 시설장비, 각종 행정 서류까지
학원 운영에 필요한 업무를 웹 하나에서 처리하도록 만든 대규모 프로젝트입니다.
2인 팀으로 진행했고, 저는 그중 AI 챗봇 · 업무 유틸 · 시설장비 · HRD 출석 데이터 연동 파트를 맡았습니다. (아래는 제가 담당한 기능들입니다.)
사내 AI 챗봇
행정망 안에서 바로 쓰는 AI 도우미입니다. 사내 규정·문서를 학습해 두고 질문하면 그 근거로 답하고, 모르는 실시간 정보는 웹에서 찾아옵니다.
말로 시키면 이미지도 만들어 줍니다. "지브리풍으로 그려줘", "이 사진 실사로 바꿔줘", "더 크게 키워줘" 처럼 한국어로 말하면 생성·편집·업스케일을 알아서 판단해 처리하고, 별도의 모드나 버튼을 배울 필요가 없습니다.
"오늘 내 할 일 브리핑해줘" 라고 하면 로그인한 본인의 업무 목록까지 끌어와 정리해 줍니다.
업무 유틸
부서 자료를 폴더로 정리해 올리고 내려받는 파일함을 만들었습니다. 민감한 자료가 담긴 폴더는 비밀번호를 알아야만 열립니다.
오늘 마감인 할 일은 자동으로 알림이 뜨고(같은 알림이 반복되지 않도록 조절), 할 일 목록은 앞서 챗봇 브리핑과도 연결됩니다.
시설장비 관리
훈련기관의 시설·장비를 관리하는 화면입니다. 시설장비 프로세스와 운영 프로세스, 연간 계획서, 연간 집행보고서를 다루며, 행정 서류 양식 그대로 PDF·엑셀로 출력됩니다.
HRD 출석 데이터 연동
정부 훈련포털(HRD)의 실시간 출결 데이터를 자동으로 가져와 시스템의 출석부에 공급했습니다. 담당자가 여러 화면을 오가며 확인하던 출결을, 우리 시스템 안에서 최신 상태로 볼 수 있게 연결한 부분입니다. (출석부 화면 자체는 팀원이 담당했습니다.)
사내 AI 어시스턴트
회사 안 서버에서 직접 돌리는 사내 전용 AI입니다. 보고 있는 화면을 이해한 채로 대화하고, 문서 검색·웹 검색·이미지 생성을 채팅창 하나에서 처리합니다.
회사 안 서버에서 직접 돌리는 사내 전용 AI입니다.
언어 모델 · 이미지 생성 · 데이터 처리 서버를 전부 사내에 두어
외부 AI 서비스에 회사 자료를 올리지 않고 사용 가능합니다.
모드를 고르거나 버튼을 찾을 필요 없이, 하고 싶은 말을 하면 AI가 질문에 맞는 기능을 스스로 골라 실행합니다.
화면 맥락을 아는 대화
질문을 보낼 때 지금 열려 있는 화면의 내용이 함께 전달됩니다. 그래서 소모품 현황 화면에서 "토너 얼마나 남았어?"라고만 물어도, 품목명을 다시 적거나 화면을 벗어나 검색할 필요 없이 바로 답이 나옵니다.
"이거", "여기" 같은 대명사로 말해도 통하고, 이어지는 질문도 앞의 맥락을 기억한 채로 대화가 계속됩니다.
사내 문서 기반 답변
취업규칙·업무 매뉴얼·보안 규정 같은 사내 문서를 등록해두면, AI가 관련 문서를 찾아 그 내용을 근거로 답합니다. 일반적인 상식이 아니라 "우리 회사 기준"으로 답을 받을 수 있습니다.
다만 규정 문서는 아무나 열람하면 안 되므로, 이 기능은 관리자 계정에서만 켜집니다. 일반 직원 대화에서는 문서 검색 기능 자체가 AI에게 제공되지 않아서 내용이 새어 나갈 여지를 없앴습니다.
기능을 고르지 않아도 되는 구조
"내일 날씨 어때?"라고 하면 웹을 검색하고, 엑셀을 올리고 "부서별로 합쳐줘"라고 하면 파일을 가공하고, "그려줘"라고 하면 이미지를 만듭니다. 그냥 인사를 건네면 굳이 아무 기능도 쓰지 않고 대화만 합니다.
사용자가 "검색 모드", "이미지 모드"를 먼저 선택할 필요가 없고, 기능이 늘어나도 화면에 버튼이나 메뉴가 늘어나지 않습니다.
말로 지정하는 화풍
"지브리풍으로", "50년대 느와르처럼" 같은 말을 덧붙이면 그에 맞는 화풍이 자동으로 적용됩니다. 지브리·90년대 시트콤·느와르·다크판타지·SF·색연필 극사실 등 11종의 화풍을 한국어 키워드로 부를 수 있습니다.
사진 없이 글로만 설명하면 새로 만들고, 사진을 한 장 올리면 그 사진을 편집하고, 두세 장을 올리면 합성합니다. 만들어진 이미지에 "여기에 눈 내리게 해줘"처럼 이어서 편집을 요청할 수도 있습니다.
언제든 멈출 수 있게
이미지 생성이나 엑셀 처리는 1~2분씩 걸리는 작업이라, 지금 잘 돌고 있는지 알 수 있도록 진행 상황과 처리 로그를 실시간으로 보여줍니다. 답변도 타이핑되듯 조금씩 표시돼서 멈춘 건지 처리 중인지 헷갈리지 않습니다.
중단 버튼을 누르면 화면만 멈추는 게 아니라 서버에서 돌던 작업까지 실제로 중단되고, 점유하던 자원이 바로 반납돼 다음 사람이 기다리지 않아도 됩니다. 브라우저를 그냥 닫아도 동일하게 정리됩니다.
사내 통합 포털
사내 임직원용 통합 포털입니다. 부서별 사내도구·장비목록·소모품 대장을 한 곳에서 관리하고, 로그인 한 번으로 PC와 모바일에서 함께 씁니다.
사내 임직원용 통합 포털 시스템입니다.
각 부서별 사내도구, 장비목록, 소모품 대장을 편리하게 관리할 수 있으며
하나의 웹에서 한 번의 로그인으로 PC와 모바일에서 관리 가능합니다.
통합 대시보드 (홈)
로그인하면 홈 화면에 해야 할 일들의 목록을 자동으로 정리해서 보여줍니다.
처리 안 된 PC 수리 요청
영업 · 시설 · 경영 게시판의 최근 글 등
해야 할 일들이 한 화면에 카드로 정리되어
"오늘 어떤 일부터 해야 할지" 선택하기 쉽게 제작했습니다.
각 카드를 누르면 해당 기능으로 이동하여 바로 업무를 시작할 수 있습니다.
사내 AI 도우미
포털 어디서나 우측 하단 채팅창을 열면 AI가 바로 대화를 시작합니다. 특별한 점은 "지금 이 화면"을 함께 이해하고 있다는 것 — 소모품 현황 화면에서 "이거 얼마 남았어?"라고 물으면 페이지를 벗어나지 않고 바로 답이 나옵니다.
필요하면 사내 자료(업무 매뉴얼, 규정 등)를 스스로 찾아 근거로 답하고, 답변은 실시간으로 타이핑되듯 표시됩니다. 최근 대화 맥락도 기억해서 연속으로 질문을 이어갈 수 있습니다.
AI 엑셀 처리
엑셀 파일을 올리고 "부서별로 합계 내서 시트 추가해줘" 처럼 원하는 걸 말로 설명하면, AI가 표 구조를 스스로 파악해서 실제로 데이터를 가공한 결과 파일을 만들어줍니다. 처리 과정은 로그와 실행 코드로 실시간 표시되고, 오래 걸리면 언제든 중단할 수 있습니다.
AI 이미지 생성 & 편집
글로 설명만 하면 이미지를 새로 만들어주고, 사진을 1~3장 올려서 "이 둘을 합성해줘" 같은 편집 요청도 처리합니다. "지브리풍으로" 같은 스타일 키워드를 말하면 그에 맞는 화풍이 자동으로 적용됩니다.
게시판 & 공지사항
영업·경영관리·시설·개인·공통 다섯 개 게시판으로 나뉘어 있어서 부서별로 필요한 글만 모아 볼 수 있습니다. 중요한 공지는 상단에 고정되고, 사진이나 파일을 첨부할 수 있고, 댓글로 의견을 주고받을 수도 있습니다.
개인 게시판은 작성자 본인 글만 보이도록 따로 걸러져서, 업무 메모장처럼도 쓸 수 있습니다.
소모품 관리대장
문구, 토너, 공구 같은 소모품을 품목별로 등록해두면 입고와 사용 내역을 날짜순으로 기록하고, 남은 수량은 자동으로 계산됩니다. "이번 달에 뭘 얼마나 썼는지"는 월별로, "그날 정확히 몇 개 남았는지"는 일자별로 바로 확인할 수 있습니다.
총무팀이 분기 보고서를 쓸 때는 조회 중인 기록을 그대로 엑셀 파일로 내려받아 붙여넣기만 하면 됩니다.
AS·부품구매 관리대장
수리 요청이나 부품 구매 이력을 날짜·내용·금액과 함께 사진 여러 장으로 남겨두는 대장입니다. 소모품 대장과 달리 고장·수리 이력 위주라 사진 증빙이 중요해서, 한 건당 여러 장을 순서대로 첨부할 수 있게 만들었습니다.
기존에 쓰던 엑셀 장부가 있다면 그대로 올려서 한 번에 등록할 수 있고, 업로드 즉시 어떤 행에 문제가 있는지 미리 보여줘서 확인 후 등록하게 됩니다.
PC/장비 QR 관리

회의실 PC, 공용 노트북 같은 장비마다 QR 라벨을 인쇄해 붙여두면, 휴대폰 카메라로 스캔하는 것만으로 그 장비의 사양·위치·비고 정보가 바로 화면에 뜹니다. 로그인 없이도 열리기 때문에 방문객이나 신입사원도 바로 확인할 수 있습니다.
새 장비가 들어왔을 때도 그 자리에서 QR을 스캔해 정보를 등록하면 되고, 지점(건물)별로 강의실 단위 전체 목록을 엑셀로 뽑아 자산 실사에 쓸 수도 있습니다.
PC 수리 요청
PC가 고장 나면 어느 건물 어느 자리의 어떤 PC인지와 함께 증상을 신고하고, 관리팀이 답변을 달아 처리하는 Q&A 게시판입니다. 처리가 끝나면 완료로 표시되고, 아직 처리 안 된 요청 건수는 홈 대시보드에 바로 표시됩니다.
QR로 장비를 조회한 화면에서 바로 수리 요청을 넣을 수 있어서, "어느 PC였는지" 헷갈릴 일 없이 정확한 장비에 신고가 연결됩니다.
사내 파일 저장소
부서 자료를 폴더로 정리해 올리고 내려받는, 회사 안에서만 쓰는 저장 공간입니다. 웹 화면인데도 폴더를 만들고 이름을 바꾸고 옮기고 복사하는 동작이 실제 파일 탐색기처럼 자연스럽습니다.
급여나 계약서처럼 민감한 폴더·파일은 비밀번호로 잠글 수 있고, 여러 파일을 골라 한 번에 압축해서 받을 수도 있습니다. 저장 공간이 얼마나 남았는지도 화면에서 바로 보입니다.
메모 & 할 일 관리
거래처 미팅 내용이나 잊지 말아야 할 메모를 부서별로 남겨두고, 개인 할 일은 체크리스트로 관리합니다. 완료한 항목은 바로 줄이 그이고, 진행률이 막대로 표시돼서 오늘 할 일이 얼마나 남았는지 한눈에 보입니다.
채용 공고 모아보기
사람인, 잡코리아, 고용24를 하나하나 들어가지 않아도, 세 사이트의 채용 공고를 한 화면에서 검색어와 조건으로 걸러 비교해볼 수 있습니다. 인사팀이 동종업계 채용 동향을 확인할 때도 유용합니다.
실시간 로그 알림 (관리자)
관리자 화면을 열어두면 어느 건물, 어느 회의실, 어느 좌석의 PC가 켜지고 꺼지는지, 새 장비가 등록되는지가 새로고침 없이 실시간으로 위에 쌓입니다. 월별로 걸러 보거나 특정 PC 이력만 따로 뽑아볼 수도 있습니다.
회원 관리 & 가입 승인
새로 가입하면 곧바로 이용할 수 있는 게 아니라 '승인 대기' 상태로 시작하고, 관리자가 승인해야 실제로 포털을 쓸 수 있습니다. 사내 시스템이라 아무나 가입해서 들어오면 안 되기 때문에 둔 안전장치입니다.
회원마다 프로필 사진과 권한(일반·관리자·슈퍼관리자)을 두고, 본인은 마이페이지에서 정보와 비밀번호를 바꿀 수 있습니다. 관리자는 권한 부여, 비밀번호 재설정, 회원 삭제까지 할 수 있습니다.
테마 스킨 & AI 성격
여러 개의 테마 중 하나를 고르면 화면 색·배경·레이아웃이 통째로 바뀝니다. 재미있는 건 화면뿐 아니라 AI 도우미의 성격까지 함께 바뀐다는 점 — 어떤 테마는 친근한 존댓말, 어떤 테마는 삐딱한 반말, 어떤 테마는 몽환적이거나 엉뚱한 말투로 답합니다.
딱딱한 업무 시스템에 각자 취향과 기분을 담을 수 있게 만든, 작지만 확실한 개인화 장치입니다.
DB 관리 콘솔 (슈퍼관리자)
여러 데이터베이스를 브라우저에서 직접 관리하는 슈퍼관리자 전용 콘솔입니다. 별도의 DB 관리 프로그램을 깔지 않아도, 웹 화면 하나에서 스키마와 테이블을 펼쳐 내용을 조회하고 실제 데이터까지 들여다볼 수 있습니다.
계정과 권한도 여기서 관리합니다. 사용자를 만들고 특정 스키마에 대한 권한을 부여하거나 회수할 수 있고, 스키마를 통째로 백업해 파일로 내려받거나 반대로 백업 파일로 복원하는 것도 콘솔 안에서 끝납니다.
다만 이름 하나 잘못 넣어도 위험한 도구라, 아무 계정이나 열 수 없게 슈퍼관리자에게만 열어두고, 입력값은 정해진 형식만 통과시켜 실수나 악용으로 엉뚱한 명령이 실행되지 않도록 막아뒀습니다.
휴게실
업무 사이 잠깐 쉬어가라고 만든 작은 테트리스 게임입니다. 설치나 로그인 없이 브라우저에서 바로 즐길 수 있어서, 딱딱한 업무 포털에 작은 숨구멍 하나 만들어 둔 느낌입니다.
PC 통합 제어·모니터링 시스템
강의실과 사무공간의 PC를 한 화면에서 관리하는 데스크톱 프로그램입니다. 화면 보기·원격 지원·공지·메신저·일괄 명령을 자리에서 일어나지 않고 처리합니다.
강의실과 사무공간의 PC를 한 화면에서 관리하는 데스크톱 프로그램입니다.
화면 보기 · 원격 지원 · 공지 · 메신저 · 파일 전달 · 상태 점검 · 일괄 명령을
관리자가 자리에서 일어나지 않고 처리 가능합니다.
모든 PC에 같은 프로그램 하나만 설치하면 되고, 관리 권한이 있는 자리에서만 관리 화면이 나타납니다.
설치하면 그 자리가 곧 신원 — 계정도 비밀번호도 없습니다
보통 이런 시스템은 PC마다 계정을 만들고 로그인을 시킵니다. 그런데 강의실 PC는 앉는 사람이 매일 바뀌는데 자리는 그대로라서, "누가 쓰는가"보다 "어느 자리인가"가 훨씬 중요했습니다.
그래서 로그인을 아예 없앴습니다. 프로그램을 설치하면 그 PC가 자기 자신을 서버에 등록하고, 관리자는 대시보드에서 "1A 강의실 · 1A-01"처럼 이름만 붙여주면 끝입니다. 인터넷 주소가 바뀌어도 같은 PC로 계속 인식되기 때문에, 공유기를 바꾸거나 자리를 옮겨도 다시 등록할 필요가 없습니다.
자리마다 학생·강사·관리자·최고 관리자 중 하나를 정해두면 그 자리에서 할 수 있는 일이 달라집니다. 학생 자리에서는 관리 화면이 아예 보이지 않고, 관리자 자리에서는 프로그램을 켜는 순간 관리 콘솔이 열립니다. 권한을 바꾸면 프로그램을 다시 켜지 않아도 바로 반영됩니다.
화면 보기 · 강의실 전체 한눈에 보기
특정 PC 하나를 골라 화면을 보거나, 강의실 하나를 통째로 열어 그 안의 PC 화면들을 타일로 늘어놓고 볼 수 있습니다. 타일을 누르면 그 화면만 크게 볼 수 있고, 모니터를 두 대 쓰는 자리는 어느 모니터를 볼지 고를 수 있습니다.
화면을 계속 통째로 보내면 수업용 인터넷이 느려집니다. 그래서 방금 바뀐 부분만 골라서 보냅니다. 문서 작업처럼 화면이 거의 안 바뀌는 상황에서는 오가는 데이터가 거의 없고, 그러면서도 글자는 뭉개지지 않고 또렷하게 보입니다.
보는 방식은 두 가지입니다. 평소에는 상대에게 요청을 보내 수락을 받아야 열리고, 이때 상대 화면에는 "공유 중"이 표시되며 본인이 언제든 끊을 수 있습니다. 강의실 전체 보기는 최고 관리자가 따로 허용한 강의실에서만 열립니다.
반대 방향도 됩니다. 강사가 자기 화면을 방송하면 같은 강의실 학생들이 그 화면을 받아 볼 수 있어서, 프로젝터가 잘 안 보이는 뒷자리에서도 시연을 따라갈 수 있습니다.
원격 제어와 파일 주고받기
화면만 봐서는 해결이 안 되는 문제는 관리자가 직접 마우스와 키보드를 잡습니다. 프린터 설정, 프로그램 설치, 네트워크 설정처럼 말로 설명하기 번거로운 일을 대신 눌러서 끝냅니다.
제어는 상대가 수락해야 시작되고, 진행 중에는 화면에 계속 표시가 떠 있으며, 상대가 단축키 하나로 언제든 끊을 수 있습니다. 제어 중에는 그 PC로 파일을 보내거나 그 PC에서 파일을 가져올 수도 있어서, 설치 파일이나 수업 자료를 따로 옮길 필요가 없습니다.
관리자·강사 자리는 아예 제어 대상이 되지 않게 막아두었습니다. 관리 권한을 가진 사람이라도 다른 관리자의 화면은 볼 수 없습니다.
공지와 메신저
공지를 보내면 윈도우 구석의 작은 알림이 아니라, 화면 한가운데에 확실히 보이는 창으로 뜹니다. "17시에 네트워크 점검이 있으니 저장해 두세요" 같은 공지는 못 보고 지나가면 의미가 없기 때문입니다. 강의실 전체나 특정 PC를 골라 보낼 수 있고, 보낸 공지는 공지함에 남아 나중에 다시 볼 수 있습니다.
메신저도 함께 들어 있습니다. 1:1 대화와 단체 채팅방을 만들 수 있고, 읽으면 표시가 사라지는 읽음 확인, 잘못 보낸 메시지 전송 취소, 파일 보내기, 특정 상대 차단, 알림 끄기, 방해금지 시간대 설정까지 익숙한 메신저에서 기대하는 것들이 들어 있습니다. 대화 내용은 그 PC에 30일 동안 보관됩니다.
PC 상태 점검과 일괄 명령
강의실을 고르고 점검을 누르면, 그 안의 PC들이 각자 자기 상태를 보고합니다. 디스크 여유가 부족하거나 메모리가 모자란 PC는 '점검 필요'로 표시되고, 지정해 둔 프로그램이 깔려 있는지도 함께 확인됩니다. 결과는 도착하는 대로 채워지고, 응답이 없는 PC는 몇 번 더 물어본 뒤 '응답 없음'으로 남습니다.
정리된 결과는 파일로 내려받을 수 있어서, 장비 교체 견적이나 실사 자료로 그대로 쓸 수 있습니다.
여러 대에 한 번에 내리는 명령도 있습니다. 공지 일괄 발송, 특정 프로그램이나 사이트를 모든 PC에서 동시에 열기, 일괄 재시작, 수업이 끝난 뒤 전체 전원 끄기 같은 것들입니다. 전원을 끄거나 권한을 바꾸는 무거운 명령은 최고 관리자만 쓸 수 있고, 누가 언제 무엇을 했는지 모두 기록에 남습니다.
요청사항 · 할 일 · 자동 업데이트

사용자는 메신저에서 바로 "1A-06 프린터가 인식이 안 됩니다" 같은 요청을 남길 수 있습니다. 어느 자리에서 보냈는지가 자동으로 붙기 때문에 "어느 PC였는지" 되묻는 일이 없고, 관리자 화면에는 곧바로 알림이 뜹니다. 처리하면 완료로 표시되고, 본인은 자기가 넣은 요청의 진행 상황을 볼 수 있습니다.
관리자용 할 일 목록도 있습니다. 마감 시각을 정해두면 프로그램이 알림을 띄우고, 공용 목록은 관리자들이 함께 보며 나눠 처리합니다.
프로그램을 새 버전으로 올릴 때 PC를 한 대씩 돌 필요가 없습니다. 서버에 새 버전을 올려두면 각 PC가 알아서 받아 조용히 설치하고, 급하면 관리자가 "지금 배포"를 눌러 즉시 반영시킬 수 있습니다. 사용자 화면에는 설치 창이 뜨지 않습니다.
반대로 학생이 프로그램을 임의로 꺼버리면 관리가 안 되기 때문에, 종료할 때는 관리 비밀번호가 필요하고 그 비밀번호는 서버가 확인합니다.
HexaStay - 호텔 통합 관리 시스템 (5인)
호텔의 전반적인 업무를 하나의 시스템으로 관리합니다. 본사·지사·지점을 한 플랫폼에서 함께 운영하고, 투숙객의 주문·요청과 직원의 업무·정산을 처리합니다.
호텔의 전반적인 업무를 하나의 시스템으로 관리합니다.
본사와 여러 지사, 지점을 하나의 플랫폼에서 함께 운영 가능하도록 제작하였으며
직원 : 업무, 매출 정산
투숙객 : 예약, 룸서비스, 요청사항 전달
등을 쉽고 편리하게 관리할 수 있는 기능을 포함하고 있습니다.
팀 프로젝트로 진행했습니다.
객실 QR 룸서비스 주문
객실마다 고유한 QR이 붙어 있어서, 투숙객이 휴대폰으로 찍으면 그 방 전용 주문 화면이 열립니다. 어느 방에서 온 주문인지 자동으로 연결되기 때문에 전화로 방 번호를 말할 필요가 없습니다.
메뉴를 고르고 옵션(사이드 변경, 사이즈 등)을 선택해 장바구니에 담고, 보유한 쿠폰으로 할인받아 카드로 결제하는 것까지 휴대폰에서 그대로 끝납니다. 주문은 접수 → 준비중 → 완료 순으로 상태가 바뀌고 취소도 가능합니다.
다국어 메뉴
외국인 투숙객이 많은 호텔 특성을 반영해 메뉴 이름·설명·카테고리를 언어별로 제공합니다. 투숙객이 따로 설정하지 않아도 접속한 기기의 언어에 맞는 메뉴가 자동으로 표시됩니다.
번역이 등록되지 않은 메뉴는 원래 이름 그대로 나오기 때문에, 번역 작업이 밀려도 메뉴가 빈칸으로 보이거나 사라지는 일은 없습니다.
호텔 내 매장 주문
호텔 직영 룸서비스와 별개로 로비 카페, 라운지, 편의점 같은 입점 매장을 따로 등록해 각자 메뉴와 주문을 관리합니다. 투숙객은 매장을 골라 주문하고, 매장별로 장바구니가 분리돼 카페 주문과 라운지 주문이 섞이지 않습니다.
매장 직원에게는 매니저·부매니저·매장직원 권한이 따로 있어서, 자기 매장에 들어온 주문만 확인하고 처리합니다.
주문 접수 · 처리 (직원)
투숙객이 QR로 주문을 넣으면 직원 화면에 실시간으로 새 주문 알림이 뜨고, 안 읽은 주문은 배지로 쌓입니다. 직원은 여러 건을 한 번에 접수하고, 준비가 끝나면 완료로, 문제가 있으면 취소로 처리합니다.
결제는 Toss로 이뤄집니다. 룸서비스와 입점 매장 결제가 각각 연동돼 있어, 주문부터 실제 카드 결제까지 화면 안에서 끝납니다.
객실 & 룸케어 관리
객실별 투숙 여부와 체크아웃 예정일을 한눈에 보여주고, 투숙객이 남긴 청소·비품 요청이 실시간으로 올라옵니다. "수건 2장 더", "오후 2시 이후 청소" 같은 요청을 직원이 확인하고 처리 완료로 표시합니다.
회원가입 없이 QR만으로도 요청할 수 있게 해서, 잠깐 머무는 투숙객도 부담 없이 이용할 수 있습니다.
체크아웃 설문 & 쿠폰
체크아웃한 다음날 오전, 시스템이 전날 퇴실한 객실을 자동으로 찾아 설문 메일을 보냅니다. 담당자가 매번 챙기지 않아도 되고, 지점마다 설문 문항을 다르게 쓸 수 있습니다. 응답은 항목별 만족도로 집계돼 지점별로 확인됩니다.
재방문을 유도하는 쿠폰도 함께 운영합니다. 생일·가입·이벤트 등 종류별로 할인율과 발급 한도가 정해져 있어 회원마다 자동으로 관리됩니다.
직원 급여 관리
호텔 직원의 급여를 등록하고 관리합니다. 본사·지점 소속 직원뿐 아니라 로비 카페·라운지 같은 입점 매장 직원의 급여도 매장별로 따로 관리돼서, 한 시스템 안에서 호텔 인력과 매장 인력을 함께 다룰 수 있습니다.
지점 · 매장 정산
객실에서 나온 룸서비스와 호텔에 입점한 매장 주문이 모두 그 지점의 매출로 모입니다. 관리자는 정산 화면에서 이 매출을 기간별 차트와 목록으로 보고, 날짜 범위를 정해 원하는 구간만 좁혀 볼 수 있습니다. 목록은 스크롤할수록 다음 구간을 이어서 불러옵니다.
집계 범위는 조직 구조를 그대로 따릅니다. 지점 관리자는 자기 지점 정산만 보고, 본사는 전체를 봅니다. 입점 매장 관리자에게는 자기 매장 전용 정산이 따로 열려서, 매출·원가·순익과 그 합계를 매장 단위로 확인합니다.
교육 포트폴리오 전시 플랫폼
학원 졸업생의 포트폴리오 전시용 웹 갤러리입니다. 연도별·기수별로 정리해 전시하고, 방문자 누구나 쉽고 편리하게 결과물을 둘러볼 수 있습니다.
학원 졸업생의 포트폴리오 전시용 웹 갤러리입니다.
연도별, 기수별로 정리하여 전시 가능하며
방문자 누구나 쉽고 편리하게 졸업생들의 결과물을 둘러볼 수 있게 제작하였습니다.
지난 기수의 결과물이 그대로 남아 쌓이기 때문에, 학원을 소개하고 홍보하는 자료로도 함께 쓸 수 있습니다.
연도 · 과정별 둘러보기
먼저 연도를 고르면 그 해에 열린 교육 과정이 나타나고, 과정을 고르면 해당 팀들의 카드가 펼쳐집니다. 팀마다 자동으로 다른 색을 입혀 한눈에 구분되고, 팀명·팀원·썸네일이 카드에 정리됩니다.
PDF 작품은 따로 내려받지 않아도 화면에서 바로 미리보기로 열리고, 방문객이 취향대로 화면 테마도 바꿀 수 있습니다.
파일형 & 웹사이트형
작품 성격에 맞춰 두 가지 방식으로 올릴 수 있습니다. 발표자료·기획서 같은 문서형 산출물은 PDF·이미지 파일로 첨부하고, 수강생이 직접 만든 웹사이트는 통째로 압축해 올리면 압축을 풀어 실제로 동작하는 사이트로 전시됩니다.
즉 웹 포트폴리오는 캡처 이미지가 아니라 진짜 페이지로 열려서, 클릭하고 스크롤하며 그대로 체험할 수 있습니다.
관리자 등록 & 관리
담당자는 관리자 화면에서 팀별로 포트폴리오를 등록하고 썸네일·팀원·과정 정보를 함께 넣습니다. 연도·과정·키워드로 검색할 수 있고, 연도별 등록 현황이 자동으로 집계됩니다. 등록한 내용은 곧바로 공개 뷰어에 반영됩니다.
훈련과정 출결 전광판
강의장 앞 모니터에 띄우는 실시간 출결 현황판입니다. 정부 훈련포털에서 과정별 출결을 자동으로 가져와 출석·지각·결석·퇴실을 한눈에 보여줍니다.
정부 훈련포털 행정시스템에서 과정별 출결을 자동으로 가져와
출석 · 지각 · 결석 · 퇴실을 한눈에 보여줍니다.
화면은 스스로 갱신되고 정해진 시간에 켜졌다 꺼지기 때문에, 담당자가 따로 조작할 일이 없습니다.
실시간 출결 전광판
진행 중인 과정마다 카드가 뜨고, 그 안에 출석·지각·결석·대기 인원이 집계됩니다. 수강생 한 명 한 명도 이름표 형태로 표시돼서 지금 누가 안 왔는지, 누가 늦게 왔는지 바로 보입니다.
화면은 10초마다 저절로 갱신되고, 아침 8시 30분에 자동으로 켜져 밤 10시 30분에 꺼집니다. 오늘 강의가 없는 과정이나 전원 퇴실이 끝난 과정은 자동으로 목록 아래로 내려가, 지금 신경 쓸 과정이 항상 맨 위에 있습니다.
출결 특이사항 조회
날짜와 과정을 고르면 정상 출석은 빼고 지각·조퇴·외출·결석만 골라서 보여줍니다. 출결 보고서를 작성하거나 훈련생에게 연락해야 할 때, 25명 명단을 훑지 않고 챙겨야 할 몇 명만 바로 확인할 수 있습니다.
훈련과정 정보 검색
공식 훈련포털이 제공하는 공개 API로 훈련과정 목록과 상세 정보, 회차별 일정, 훈련생 통계를 가져와 보여줍니다. 과정명·기간·훈련시간·수료율 같은 정보를 사이트에 따로 들어가지 않고 이 화면에서 검색할 수 있습니다.과정별 설정 & 훈련생 연락처


과정마다 강의 요일, 점심시간 길이, 퇴실 유예 시간을 설정할 수 있습니다. 주말반이나 격일반이 결석으로 잘못 잡히지 않게 하고, 과정별로 다른 시간표를 정확히 반영하기 위한 값들입니다.
결석자에게 연락할 수 있도록 훈련생 전화번호도 함께 관리하는데, 과정이 끝나고 일정 기간이 지나면 과정 설정과 연락처가 자동으로 삭제돼 불필요한 개인정보가 남지 않습니다.
공식 API의 한계, 그래서 통신을 직접 뜯었습니다
처음엔 훈련포털 공식 API만으로 만들려 했습니다. 그런데 공식 API는 과정 정보·통계 같은 정적인 데이터만 줄 뿐, "지금 이 순간 누가 입실했는지" 같은 실시간 출결은 열어주지 않았습니다. 전광판의 핵심이 바로 그 실시간인데, 정작 그리로 가는 정식 통로가 없었던 겁니다.
그래서 담당자가 실제로 쓰는 행정시스템이 서버와 주고받는 통신을 HttpToolkit으로 직접 가로채 들여다봤습니다. 응답은 사람이 읽는 형식이 아니라 자체 규격의 바이너리(HEX) 덩어리였습니다. 이 raw 헥스 데이터를 AI의 도움을 받아 바이트 단위로 분석해 구조를 밝혀내고, 그 규격대로 요청을 만들고 응답을 해석하는 디코더·인코더를 직접 구현해 실시간 출결을 뽑아냈습니다.
정리하면, 공식적으로는 막혀 있던 실시간 출결 전광판을 통신 분석 → 헥스 구조 해독 → 자체 프로토콜 구현이라는 우회로로 실제 돌아가게 만든 프로젝트입니다.
실시간 채팅
회원가입 없이 닉네임만으로 입장하는 실시간 채팅 서비스입니다. 채팅방 개설부터 이미지 첨부, 관리자 모드까지 갖춘 교육용 프로젝트입니다.
회원가입 없이 닉네임만으로 입장하는 실시간 채팅 서비스입니다.
교육용으로 만든 프로젝트로, 앱 설치 없이 브라우저만 열면
PC와 휴대폰 어디서든 바로 대화할 수 있습니다.
화면은 AI 챗 서비스 스타일의 채팅 UI로, 사이드바에서 방을 고르고 말풍선으로 대화하는 익숙한 구성입니다.
닉네임 입장
전화번호도 이메일도 필요 없습니다. 닉네임과 비밀번호만 정하면 바로 입장되고, 처음 쓴 닉네임은 그 비밀번호로 등록되어 다른 사람이 같은 닉네임으로 사칭할 수 없습니다.
외부인이 들어오지 못하도록 공용 입장 비밀번호를 둘 수 있고, 관리자 설정에서 사용 여부와 비밀번호를 바꿀 수 있습니다.
채팅방
기본 "전체" 방 외에 누구나 새 채팅방을 만들 수 있습니다. 방마다 입장 비밀번호(선택)와 삭제 비밀번호를 정할 수 있어, 특정 인원만 모이는 방도 간단히 만들어집니다.
방이 만들어지거나 삭제되면 접속 중인 모든 화면의 방 목록이 실시간으로 갱신됩니다.
메시지

보낸 메시지는 같은 방을 보고 있는 모든 화면에 즉시 나타납니다. 이미지는 한 번에 3장까지 첨부할 수 있고, 캡처한 화면을 클립보드에서 바로 붙여넣을 수도 있습니다. 첨부 이미지는 클릭하면 크게 열립니다.
본문의 인터넷 주소는 자동으로 링크가 되고, 이전 대화는 위로 스크롤하면 이어서 불러옵니다. 하루가 지난 메시지에는 날짜가 함께 표시됩니다.
메시지 삭제와 자동 정리
본인이 쓴 메시지는 직접 삭제할 수 있고, 삭제된 자리에는 "삭제된 메시지입니다"가 남습니다. 방마다 보관 상한을 넘으면 오래된 메시지가 첨부 파일까지 함께 자동으로 정리되어, 따로 관리하지 않아도 서버가 무한히 무거워지지 않습니다.
관리자 모드
관리자 비밀번호를 입력하면 관리자 모드로 전환됩니다. 부적절한 메시지를 삭제하고, 등록된 닉네임 목록을 확인하거나 계정을 삭제할 수 있습니다. 삭제된 계정은 접속 중이어도 즉시 연결이 끊깁니다.
입장 비밀번호, 방당 보관 건수, 이력 표시 건수 같은 운영 값도 전부 관리자 화면에서 바꿉니다.
LLM 벤치마크
여러 LLM을 같은 잣대로 비교하는 벤치마크 도구. 한국어·코딩·실무·속도를 자동 채점하고 점수·비용·속도를 한 화면에서 비교합니다.
OpenAI 호환 API를 쓰는 모델이면 무엇이든 등록해,
한국어 · 코딩 · 실무 · 속도를 자동으로 측정하고 점수·비용·안정성을 한 화면에서 비교합니다.
어떤 모델을 쓸지 고를 때 "느낌"이 아니라 숫자로 정하려고 만든 도구입니다.
측정 리포트
한 번의 측정이 끝나면 모델별 총점과 한국어/코딩/실무 점수, 만점 1개당 비용, 평균 출력 토큰, 응답 시간, 생각 비율, 답 없음 비율까지 한눈에 정리됩니다. 측정 시각·항목·반복 횟수·엔드포인트·총비용도 함께 기록됩니다.
모델 비교표
같은 항목을 모델끼리 나란히 놓고 봅니다. 점수는 물론, 비용·속도·반복해도 같은 점수가 나오는지(편차)·답 없음 비율까지 비교해 줄마다 가장 좋은 값을 초록으로 표시합니다. "싸고 빠른데 품질도 되는" 모델을 바로 찾을 수 있습니다.
과제별 결과
맞춤법 교정, 구간 병합, LRU 캐시 버그 수정, 한글 숫자 변환, SQL 집계 같은 실제 과제마다 모델별 점수와 사용 토큰·소요 시간이 표시됩니다. 만점·부분·0점·답 없음·루프로 중단·요청 실패를 색점으로 구분해, 어디서 약한지 바로 보입니다.
과제 상세 & 실제 답 확인


과제를 펼치면 그 과제에서 모델들이 몇 점을 받았는지, 그리고 회차별로 실제 어떤 답을 냈고 어떻게 채점됐는지까지 열어 볼 수 있습니다. 점수만 믿지 않고 실제 답을 눈으로 확인할 수 있습니다.
측정 실행 & 설정
측정 항목(한국어/코딩/실무/속도)을 켜고 끄며 바로 측정을 돌릴 수 있고, 진행 상황이 실시간으로 표시됩니다. 측정 기록은 쌓여서 언제든 다시 열어 비교할 수 있고, API 주소·키·모델 단가는 로그인 후 설정에서 관리합니다.
How I work
도구와 원칙
웹 개발
- Java · Spring Boot
- Thymeleaf · JPA
- MariaDB · PostgreSQL
- Python · FastAPI
프로그램 · 앱
- C# · .NET · WPF
- Android · Kotlin
- SignalR · SSE 실시간
- 배포 · 자동 업데이트
AI · LLM
- 로컬 LLM · Ollama
- RAG · 벡터 검색
- 이미지 생성 파이프라인
- 도구 호출 · MCP