본문으로 건너뛰기
로그인 회원가입

INQUIRY

문의하기

제작·기능 추가·유지보수·장애 진단 등 무엇이든 남겨주세요. 이메일로 답변드리겠습니다.

선택 정보 · 사이트 주소, 기술, 일정, 예산
사용 기술 선택 · 여러 개 선택 가능

otosystem

포트폴리오

기업 대금지급 요청·승인·처리·정산 대표 이미지

기업 대금지급 — 요청·승인·처리·정산

기업의 대금지급 요청부터 승인, 지급 실행, 정산까지 연결한 업무 데모입니다.

기술 스택
전자정부프레임워크(eGovFrame) 5.0.1 · Spring Boot · Java 17 · Spring Security · MyBatis · PostgreSQL · React · TypeScript

가상 기업·사용자·계좌로 만든 데모이며 실제 고객사 수행 사례가 아닙니다. 모의 은행 API를 사용하므로 실제 송금은 발생하지 않습니다. 모든 방문자가 같은 데이터를 사용하며 매일 초기화합니다.

데모 사이트 보기
구현 상세 보기접기

제작 목적

기업의 대금지급 요청부터 승인, 지급 실행, 정산까지 연결한 업무 데모입니다. 여러 건을 한꺼번에 처리하면서 중복 지급을 막고, 송금 결과가 불확실하거나 일부 건이 실패했을 때 후속 조치를 이어가도록 만들었습니다.

핵심 구현

  • 지급 요청을 직접 작성하거나 엑셀로 일괄 등록합니다. 행별 오류와 중복을 확인한 뒤 상신하고, 승인자는 사유를 남겨 승인·반려합니다.
  • 중복 요청과 동시 실행을 제어하고, 모의 은행에서도 같은 이체 키를 한 번만 처리해 중복 지급을 막습니다.
  • 타임아웃이 발생하면 결과 미확정 상태로 두고 은행에 처리 결과를 조회합니다. 처리 기록이 없을 때만 같은 키로 다시 전송하며, 확정 실패 건은 원인을 해결한 뒤 재처리합니다.
  • 내부 지급 기록과 모의 은행 거래내역을 대조해 금액 차이와 누락을 찾고 조치 내용을 남깁니다.
  • 요청자·승인자·관리자의 권한과 기업별 데이터를 구분합니다. 본인 요청의 승인을 막고 업무 변경과 거부 이력을 감사로그에 기록합니다.
누리빛 미술관 문화시설 예약·다국어 안내 대표 이미지

누리빛 미술관 — 문화시설 예약·다국어 안내

방문객의 전시 예약과 다국어 작품 안내, 운영자의 전시·콘텐츠 관리를 연결한 전자정부프레임워크 웹 서비스입니다.

기술 스택
전자정부프레임워크(eGovFrame) 5.0.1 · Java 17 · Spring 6.2 · Spring Security 6.5 · MyBatis · MySQL 8.4 · React 19 · TypeScript · Vite

가상 기관·인물·작품으로 만든 데모입니다. 실제 고객사 수행 사례가 아니며 결제·문자 발송·소셜 로그인·비회원 예약·자동 번역은 제공하지 않습니다. 실제 개인정보는 입력하지 마세요.

데모 사이트 보기
구현 상세 보기접기

제작 목적

방문객의 전시 예약과 다국어 작품 안내, 운영자의 전시·콘텐츠 관리를 연결한 전자정부프레임워크 웹 서비스입니다. 회차별 정원과 예약 상태를 함께 관리하고, 언어별 안내의 편집본과 발행본을 나눠 공개할 자료를 통제하도록 만들었습니다.

핵심 구현

  • 정원 확인과 예약 인원 반영을 조건부 UPDATE로 처리합니다. 중복 요청과 같은 회차의 중복 예약을 막고, 취소한 인원은 한 번만 복구합니다.
  • 작품별 QR 안내에서 한국어·영어와 이미지·음성을 제공합니다. 번역이 없으면 한국어 자료를 보여주며, 버전·파일 체크섬과 열람용 HTML을 ZIP으로 내려받습니다.
  • 언어별 안내를 작성 중·발행·이전 버전으로 구분합니다. 공개 API와 파일 다운로드는 공개 전시에 속한 발행본만 제공하도록 검사합니다.
  • 방문객·운영자·콘텐츠 관리자·최고 관리자 권한을 서버에서 확인합니다. 전시·회차·예약자·공지·배너·변경 이력을 관리하고 업로드 파일의 형식·시그니처·크기를 검사합니다.
단정회계법인 홈페이지·자체 CMS 대표 이미지

단정회계법인 — 홈페이지·자체 CMS

회계법인의 소개·구성원·인사이트를 운영자가 직접 관리하는 Next.js 홈페이지입니다.

기술 스택
Next.js 16 · React 19 · TypeScript · Tailwind CSS 4 · Supabase · PostgreSQL · Drizzle ORM · Tiptap

가상 회계법인·구성원·샘플 콘텐츠로 만든 데모입니다. 실제 고객사 수행 사례가 아니며, 상담 접수·관리자별 승인 단계·버전 복구는 제공하지 않습니다.

데모 사이트 보기
구현 상세 보기접기

제작 목적

회계법인의 소개·구성원·인사이트를 운영자가 직접 관리하는 Next.js 홈페이지입니다. 공개 홈페이지와 관리자 CMS를 하나의 앱으로 구성하고, 편집 중인 내용과 실제 공개 내용을 분리해 발행 전 수정이 홈페이지에 섞이지 않도록 만들었습니다.

핵심 구현

  • 인사이트의 임시저장·발행·비공개 상태를 구분합니다. 발행한 글을 수정하는 동안에도 공개 화면에는 기존 내용을 유지합니다.
  • 글·구성원·연혁·팝업·사이트 설정을 CMS에서 관리하고, 공개 데이터가 바뀌면 관련 캐시를 갱신해 홈페이지에 반영합니다.
  • Supabase Auth 로그인과 활성 관리자 여부를 서버에서 확인합니다. 입력값을 검증하고 본문 HTML의 허용 태그와 속성을 제한합니다.
  • 본문 편집기와 이미지 업로드, 글별 SEO·공유 이미지·사이트맵을 구성했습니다. 임시저장·비공개 글은 공개 목록에서 제외하고 상세 주소도 404로 처리합니다.