본문으로 건너뛰기
otosystem

otosystem / PAGE

포트폴리오

오토모션 — 제조기업 홈페이지 첫 화면

오토모션 — 제조기업 홈페이지

제조기업의 제품 소개를 견적 문의로 연결하는 WordPress 홈페이지입니다. 방문자가 제작 분야와 제품 사양을 확인하고 관심 제품을 지정해 문의할 수 있게 구성했습니다. 운영자는 익숙한 관리자 화면에서 제품 사진과 사양, 회사 소개를 직접 관리합니다.
기술 스택
WordPress · PHP · MariaDB · Docker Compose
핵심 구현
  • 제품 전용 콘텐츠 유형과 분류를 만들어 제품 카탈로그를 관리하고, 상세 화면에서 선택한 제품을 견적 폼에 전달합니다.
  • 화면을 담당하는 자식 테마와 제품·문의 기능 플러그인을 분리해 기존 CMS를 확장했습니다.
  • 견적 문의는 공개 검색·REST API·개별 주소에서 제외하고 관리자만 확인하도록 저장합니다.
  • 서버에서 필수값·이메일·동의·공개 제품 여부를 검사하고, 서명된 제출 토큰으로 같은 폼의 중복 저장을 막습니다.

가상 제조기업 데모입니다. 견적 폼은 샘플 정보를 저장하며 이메일은 보내지 않습니다. 제품·인증·납품 내용은 실제 실적을 뜻하지 않습니다.

데모 사이트 보기
문화이음 — 지역 문화 플랫폼 첫 화면

문화이음 — 지역 문화 플랫폼

흩어진 사람·단체·공간·일정을 함께 탐색하고, 회원이 등록한 문화 일정을 운영자가 심사해 공개하는 플랫폼입니다. WordPress의 콘텐츠 관리에 회원 참여와 승인 업무를 연결했습니다. 수정 심사 중에도 방문자는 기존 승인 정보를 계속 확인할 수 있습니다.
기술 스택
WordPress · PHP · MariaDB · REST API
핵심 구현
  • 전용 테마가 공개·회원 화면을, 기능 플러그인이 콘텐츠·인증·신청·심사를 맡도록 역할을 나눴습니다.
  • 신청의 소유자·제출 회차·결정 이력·공개 일정과 동시성 버전을 함께 관리합니다. 승인 후 수정해도 기존 일정과 사진은 유지합니다.
  • 요청 키와 본문 해시로 재전송을 구분하고, 오래된 버전의 수정은 거절합니다. 승인 정보는 트랜잭션으로 함께 저장합니다.
  • 사진의 실제 형식과 크기를 검사하고 EXIF·GPS를 제거합니다. 심사 전 원본과 승인된 공개 사본에 서로 다른 접근 권한을 적용합니다.

일정 등록을 위한 심사 데모이며 행사 참가 신청이나 예약은 제공하지 않습니다. 이메일 인증과 비밀번호 재설정 메일은 연결하지 않았습니다.

데모 사이트 보기
마켓노트 — 강좌·PDF 커머스 첫 화면

마켓노트 — 강좌·PDF 커머스

강좌와 PDF를 판매하고 구매 이후의 학습·다운로드까지 연결하는 교육 커머스입니다. WooCommerce의 주문 기능과 Tutor LMS의 강좌 기능에 별도 업무 규칙을 더했습니다. 결제·환불·이용 기간이 달라질 때 실제 콘텐츠 접근 권한도 함께 바뀌도록 구성했습니다.
기술 스택
WordPress · WooCommerce · Tutor LMS · PHP · MariaDB
핵심 구현
  • 결제 성공 주소만 믿지 않고 서버에서 회원·주문·금액·통화·PG 승인 상태를 확인한 뒤 이용 권한에 반영합니다.
  • 승인·환불 작업을 외부 요청 전에 기록하고, 결과가 불명확하면 접근을 보류한 채 상태 조회로 확인하도록 설계했습니다.
  • 주문 항목별 이용 기간과 환불·만료·회수 상태를 판단하며, 영상·PDF 응답에서도 현재 권한을 검사합니다.
  • 이어보기·완료·메모·북마크·질문을 관리합니다. 강사의 수정안 검수 중에는 기존 판매본과 구매자의 이용 조건을 유지합니다.

테스트 결제 안내를 제공하는 데모입니다. 실제 결제 실적이나 정산 완료 서비스가 아니며 정산 원장·수수료 계산·지급은 제공하지 않습니다.

데모 사이트 보기
OtoStay — 숙소 예약 서비스 첫 화면

OtoStay — 숙소 예약 서비스

날짜와 인원에 맞는 객실 탐색부터 예약 운영까지 연결하는 Laravel 서비스입니다. 검색 화면의 가격뿐 아니라 예약 시점의 잔여 객실·확정 방식·취소 조건을 일관되게 다루는 데 초점을 맞췄습니다. 고객과 숙소 운영자, 관리자의 업무 흐름을 함께 구성했습니다.
기술 스택
Laravel · Eloquent · Blade · Vite · Tailwind CSS · Alpine.js
핵심 구현
  • 날짜·인원·지역·숙소 유형·가격·편의시설로 객실을 찾고 객실별 수용 인원과 요금, 확정 방식을 보여줍니다.
  • 즉시 확정·승인 대기·결제 대기를 구분하고, 결제 대기 만료 시각을 객실 재고 점유 판단에 사용합니다.
  • 예약 당시 결제 제공자와 정책을 스냅샷·버전으로 남겨 이후 설정 변경과 구분합니다. 토스·Eximbay 연동은 공통 결제 계약으로 분리했습니다.
  • 결제·일반·알림 큐와 스케줄러로 운영 작업을 나누고, 한국어·영어·일본어 공개 화면을 구성했습니다.

예약·결제 흐름을 소개하는 데모입니다. 기술 설명은 개발 구현 기준이며 공개 서버의 배포 버전과 차이가 있을 수 있습니다. 실제 예약이나 결제는 진행하지 마세요.

데모 사이트 보기
마중 — 입양·임시보호 관리 첫 화면

마중 — 입양·임시보호 관리

동물 소개 페이지를 입양·임시보호 신청과 심사, 실제 보호·인계 업무로 확장한 서비스입니다. Rhymix의 회원·권한 체계를 유지하면서 전용 업무 모듈을 연결했습니다. 신청 승인과 모집 상태, 실제 보호와 인계를 서로 다른 사건으로 관리하도록 구성했습니다.
기술 스택
Rhymix · PHP · MariaDB · Blade · SCSS · Docker
핵심 구현
  • 브랜드 레이아웃과 업무 모듈을 분리하고, 동물·사진·신청·심사·보호 이력·인계 결과를 데이터로 관리합니다.
  • 접수·검토·상담·승인 여부와 실제 인계를 구분하며, 같은 회원이 같은 동물에 진행할 수 있는 신청을 한 건으로 제한합니다.
  • 신청 당시 질문·답변·동의문을 보존합니다. 입양 인계 시 다른 진행 신청과 기존 임시보호 상태를 함께 정리합니다.
  • 사진은 검사·재인코딩해 EXIF를 제거하고 응답마다 권한을 확인합니다. 탈퇴 시 식별 정보·답변을 정리하며 익명 인계 이력은 보존합니다.

가상 브랜드와 가상 동물로 구성한 데모이며 실제 입양 접수를 운영하지 않습니다. 후원 결제·이메일·문자와 예정일에 따른 자동 보호 종료는 제공하지 않습니다.

데모 사이트 보기
답하다 — 근거 기반 상담 지원 첫 화면

답하다 — 근거 기반 상담 지원

상담사가 공공자료에서 근거를 찾고 고객에게 보낼 답변을 준비하도록 돕는 Laravel RAG 시스템입니다. 한국소비자원 공개 자료를 검색해 출처가 붙은 답변과 편집 가능한 CS 초안을 만듭니다. 자연스러운 문장뿐 아니라 자료의 현재 권한과 인용의 정확성을 확인하는 데 초점을 맞췄습니다.
기술 스택
Laravel · PostgreSQL · Meilisearch · OpenAI · Vite · Tailwind CSS
핵심 구현
  • 자료 업로드·검증·큐 적재·색인 검증·활성화를 나눠 업로드 성공과 검색 준비 완료를 구분합니다.
  • 키워드·벡터 검색 순위를 결합하고, 검색 결과를 원본 DB에서 다시 읽어 권한·현재 내용·색인 상태를 확인합니다.
  • 출처가 실제 검색 결과에 있는지 확인하고 수치·날짜 주장도 근거와 대조합니다. 검증에 실패한 답변은 성공으로 처리하지 않습니다.
  • 추가 조건·근거 답변·CS 초안·후속 질문을 연결하고 개인정보 마스킹, 사용량·비용 기록, 예산·타임아웃 관리를 적용했습니다.

일반 안내용 데모이며 개별 사건의 법률 판단을 대신하지 않습니다. AI 답변에는 오류가 있을 수 있으므로 원문과 적용 조건을 확인해야 합니다. CS 초안은 발송 전에 담당자가 검토하고 수정하는 구조입니다.

데모 사이트 보기