상담신청
회사/제품
소개서
섹션 설정·기사 목록
현재 테마의 섹션을 불러오는 중입니다.
섹션 조회 완료 · 섹션 설정과 기사 목록을 각각 저장해주세요. 공개 화면 연결은 별도입니다.
API 요청 중 섹션 필드 또는 API가 없다는 오류가 발생했습니다. 입력은 유지되며, 백엔드 반영 후 다시 요청할 수 있습니다.
섹션을 불러오거나 저장하지 못했습니다. API 연결 상태를 확인하고 다시 불러오기를 눌러주세요.
다른 창에서 변경된 섹션입니다. 입력 내용을 보관하고 다시 불러와주세요.
일부만 저장되었거나 저장 결과를 확인하지 못했습니다. 중복 등록을 막기 위해 저장을 멈췄습니다. 입력 내용을 보관하고 다시 불러와주세요.
저장 오류 확인 정보: {details}
섹션명, 섹션번호, 표시 개수와 광고 위치를 확인해주세요.
이 섹션을 변경할 권한이 없습니다. 권한이 있는 기존 메뉴에서 다시 열어주세요.
뉴스 섹션 메뉴의 작업 권한이 없습니다. 기존 메뉴에서 열거나 관리자에게 권한을 요청해주세요.
메뉴 권한을 확인하지 못했습니다. 연결 상태를 확인한 후 다시 불러오기를 눌러주세요.
저장할 행의 기사를 선택하거나 직접 링크의 제목과 올바른 주소를 입력해주세요.
한 섹션에는 최대 100개 항목을 연결할 수 있습니다.
처리할 행의 체크박스를 선택해주세요. 일괄 수정은 저장된 행에 적용됩니다.
새로 추가한 행을 먼저 저장한 후 순서를 변경해주세요.
기사
직접 링크
찾기
비우기
저장
표시하지 않는 섹션
선택한 연결을 삭제할까요? 기사·미디어 원본은 삭제하지 않습니다.
저장했습니다.
DB 저장은 완료했지만 캐시 갱신을 확인하지 못했습니다. 캐시 반영을 다시 실행해주세요.
미디어 라이브러리를 준비하고 있습니다. 잠시 후 다시 열어주세요.
미디어 라이브러리를 열지 못했습니다. 잠시 후 다시 시도해주세요.
사진을 설정할 섹션을 다시 선택해주세요.
선택한 미디어의 이미지 주소를 확인해주세요.
섹션명 변경
데이블 광고 추가
광고 설정·위치 변경
광고 삭제
데이블 광고
자동 광고번호: {number}
기준 섹션과 위·아래 위치를 선택하면 광고번호가 자동으로 표시됩니다.
광고번호: {number}
설정을 저장하면 광고번호가 자동 생성됩니다.
광고번호는 영문으로 시작하는 21자 이내의 영문·숫자·하이픈·밑줄로 입력해주세요.
실제 데이블 연결 정보는 나중에 설정할 수 있습니다.
광고
기준 섹션 위에 표시
기준 섹션 아래에 표시
위
아래
{section} · {position}
데이블 광고가 배치될 영역
관리자용 위치 미리보기 · 실제 광고는 송출하지 않습니다.
위젯 ID: {id}
서비스: {name}
기준 영역이 없어 위치를 다시 지정해야 합니다.
기준 섹션을 선택하세요.
이 데이블 광고 섹션을 삭제할까요? 기존 뉴스 섹션은 유지됩니다.
데이블 광고 배치를 저장했습니다.
데이블 광고 섹션을 삭제했습니다.
광고 이름, 기준 섹션, 위치와 미리보기 높이(80~800px)를 확인해주세요. 연결 정보를 입력했다면 발급 ID와 서비스명 형식도 확인해주세요.
이 페이지에 같은 데이블 위젯 ID가 이미 등록되어 있습니다.
편집 화면에는 페이지당 최대 20개의 광고 배치를 저장할 수 있습니다.
광고 섹션을 찾을 수 없습니다. 입력 내용을 보관한 후 새로고침해주세요.
공통
섹션번호는 영문으로 시작하는 21자 이내의 영문·숫자·하이픈·밑줄로 입력해주세요. 공통영역만 비워둘 수 있습니다.
이 페이지의 다른 영역에서 사용 중인 섹션번호입니다.
사진 설정
리스트 설정
사진을 등록해주세요
등록 {count}개 · 화면 표시 {limit}개
저장하지 않은 변경사항을 버릴까요?
위로 이동
아래로 이동
제외
추가
선택됨
기사 또는 직접 입력한 항목을 추가해주세요.
현재 사이트에서 검색된 뉴스 기사가 없습니다.
기사를 검색하고 있습니다.
섹션을 저장하고 있습니다.
섹션을 저장했습니다.
사진을 업로드하고 있습니다.
사진을 확인한 후 이 섹션 저장을 눌러주세요.
섹션명, 표시 개수, 사진 주소와 리스트 항목을 확인해주세요.
한 섹션에는 최대 100개 항목을 등록할 수 있습니다.
5MB 이하의 JPG, PNG, GIF, WebP 사진을 선택해주세요.
현재 테마가 변경되었습니다. 내용을 보관한 후 페이지를 새로 열어주세요.
다른 창에서 먼저 저장했습니다. 변경 내용을 보관한 후 새로고침해주세요.
현재 사이트에서 사용할 수 없는 기사가 포함되어 있습니다. 리스트를 확인해주세요.
섹션을 저장하지 못했습니다. 변경 내용은 유지됩니다. 잠시 후 다시 시도해주세요.
기사 목록을 불러오지 못했습니다. API 연결과 권한을 확인해주세요.
사진을 업로드하지 못했습니다. 다시 시도해주세요.
요청을 처리하지 못했습니다. 다시 시도해주세요.
로그인이 만료되었습니다. 변경 내용을 보관한 후 다시 로그인해주세요.
(*)필수항목 생략
작업 실패
상태에서는 삭제할 수 없습니다
삭제 확인
삭제 후 복구할 수 없습니다
삭제
계속하기
취소
복사할 수 없는 상태입니다
상태를 붙여넣을 수 없습니다.
데이터가 없습니다
작업 완료
현재 .env로 .env-sites/{theme}/.env를 덮어쓰시겠습니까?
.env를 테마 폴더에 복사했습니다.
유효한 테마명을 입력해주세요.
현재 .env 파일이 없습니다.
대상 .env-sites 테마 폴더가 없습니다.
.env 파일을 복사하거나 확인하지 못했습니다.
API 요청이 실패했습니다. 확인해주세요
오브젝트 스토리지 연결에 실패했습니다. 버킷 이름과 접근 권한을 확인해주세요.
.env 설정을 저장하지 못했습니다. 입력값과 파일 쓰기 권한을 확인해주세요.
.env 설정을 저장했습니다.
미확인
연결 확인 중
연결 성공
연결 실패
자체 DB 또는 로깅 안 함은 Cloud 연결 테스트가 필요하지 않습니다.
D1 요청에 실패했습니다. 로그용 설정과 테이블 준비 여부를 확인해주세요.
D1 테스트 로그 테이블을 준비했습니다.
테스트 로그를 D1에 저장했습니다.
D1에서 최근 로그를 조회했습니다.
저장된 테스트 로그가 없습니다.
파일 업로드 중 오류가 발생했습니다.
KeywordHostSites는 10개까지 입력 가능합니다.
web-tracking 설정을 찾을 수 없습니다.
토큰이 존재하지 않습니다.
마지막 항목 라인에서 편집을 완료합니다.
상태에서는 위아래로 움직일 수 없습니다
작업을 수행하려면 해당 라인의 확인란을 클릭하세요.
마지막 항목 라인이 제거되었습니다.
숫자를 입력하세요
AgentToken이 만료되었거나 비어 있습니다.
친구키등록목록에 친구목록 정보를 등록해주세요
SeqNo가 중복되었습니다. 작업 실패
복사할 항목을 선택하세요.
REPORT_SERVER_URL이 구성되지 않아 PDF를 생성할 수 없습니다.
이메일 주소를 입력해주세요.
문자 수신번호를 입력해주세요.
문자 제목과 본문을 입력해주세요.
문자 제목을 입력해주세요.
문자 본문을 입력해주세요.
이 이메일을 사용할 수 있습니다.
이 이메일은 이미 사용 중입니다.
닉네임을 입력해주세요.
사용 가능한 닉네임입니다.
이미 사용 중인 닉네임입니다.
유니멤버와 패밀리사이트에서 모두 사용 가능한 닉네임입니다.
유니멤버에서 이미 사용 중인 닉네임입니다.
패밀리사이트에서 이미 사용 중인 닉네임입니다.
유니멤버와 패밀리사이트에서 모두 사용 중인 닉네임입니다.
닉네임 중복확인에 실패했습니다.
닉네임 중복확인을 완료해주세요.
휴대전화 인증을 완료해주세요.
회원필수 정보가 변경되었습니다.
패밀리사이트의 닉네임으로도 복사하고 변경하시겠습니까?
유니멤버와 패밀리사이트의 회원필수 정보가 변경되었습니다.
유니멤버 정보는 변경되었으나 패밀리사이트 정보 변경에 실패했습니다.
회원필수 정보 변경에 실패했습니다.
비밀번호가 변경되었습니다.
비밀번호 변경에 실패했습니다.
다보리에서 전송된 이메일의 인증번호를 확인하세요.
인증 메일 전송에 실패했습니다.
이메일 인증이 완료되었습니다.
이메일 인증을 완료해주세요.
이메일과 인증번호를 입력해주세요.
이메일 인증번호를 다시 발송해주세요.
이메일 인증번호를 다시 확인해주세요.
확인
성함을 입력해주세요.
휴대전화 번호를 입력해주세요.
휴대전화 인증번호를 전송했습니다.
휴대전화 인증번호 전송에 실패했습니다.
휴대전화 번호와 인증번호를 입력해주세요.
인증번호를 다시 발송해주세요.
휴대전화 인증번호를 다시 확인해주세요.
휴대전화 인증이 완료되었습니다.
비밀번호를 입력해주세요.
비밀번호 확인을 입력해주세요.
비밀번호와 비밀번호 확인이 일치하지 않습니다.
자리 이상으로 입력해주세요.
특수 문자를 포함해주세요.
대문자를 포함해주세요.
해당 지점에는 재고가 없습니다.
쿠폰 지원 예정(홈페이지 보류)
상품 상세페이지 URL을 입력해주세요.
쿠폰을 받으실 이메일 주소를 입력해주세요.
쿠폰 적용 약관에 동의하셔야 합니다.
CAPTCHA에서 로봇이 아닙니다를 확인해주세요.
라우터 생성 및 블로그/상품 구분 연결 확인
현재 테마 라우터를 생성한 뒤 메인메뉴의 블로그/상품 구분 연결을 확인하시겠습니까?
표시할 메뉴가 없습니다.
메뉴 트리를 불러오지 못했습니다.
폴더 경로를 입력해주세요.
폴리싱을 실행하시겠습니까? 원본 파일은 -polishing-ori로 보관됩니다.
복구를 실행하시겠습니까? -polishing-ori 파일이 원래 파일명으로 복구됩니다.
작업 중입니다. 완료될 때까지 기다려주세요.
이미지 폴리싱 작업이 완료되었습니다.
이미지 폴리싱 작업이 완료되었지만 일부 오류가 있습니다. 로그를 확인해주세요.
다운로드할 로그가 없습니다.
이미지 폴리싱 요청이 실패했습니다.
폴더 목록을 불러오지 못했습니다.
하위 폴더가 없습니다.
오늘 청구 대상 구독을 결제 큐에 생성하시겠습니까?
오늘 구독결제 큐 생성 쿼리가 실행되었습니다.
구독결제 큐 생성에 실패했습니다. list-type1-insert API, subscription/subs-queue 쿼리와 GateToken 권한을 확인해주세요.
선택한 티켓플로우를 찾지 못했습니다.
메타코어가 비어있습니다.
메타플로우 전개 확인
메타플로우 전개를 하시겠습니까?
선택한 프로젝트를 찾지 못했습니다.
이미 등록된 담당자입니다.
토스 결제수단 인증창을 열지 못했습니다. 잠시 후 다시 시도해주세요.
토스 테스트 키 형식을 확인했습니다.
ClientKey와 SecretKey에 토스 테스트 키를 입력해주세요.
반복 과금조건 저장에 실패했습니다. item-recur-act API 등록과 권한을 확인해주세요.
반복 과금조건 저장 응답에서 ID를 확인할 수 없습니다.
반복 과금조건 저장 후 재조회에 실패했습니다. item-recur-page API를 확인해주세요.
강의 정보 저장에 실패했습니다. item-class-act API 등록과 권한을 확인해주세요.
강의 정보 저장 응답에서 ID를 확인할 수 없습니다.
강의 정보 저장 후 재조회에 실패했습니다. item-class-page API를 확인해주세요.
PNG 이미지 파일만 업로드할 수 있습니다.
택소 이미지 업로드에 실패했습니다.
먼저 게시글을 저장해주세요.
저장할 관련기사가 없습니다.
검색 중입니다.
업로드 폴더와 R2 목록을 확인 중입니다.
파일 변경 여부를 비교 중입니다.
새 파일과 변경된 파일을 R2에 업로드 중입니다.
변경된 파일이 없어 업로드를 생략했습니다.
R2 폴더 업로드가 완료되었습니다.
R2 폴더 업로드에 실패했습니다.
업로드 {uploaded}개 · 동일 파일 {skipped}개 · 전체 {total}개
MediaDisk를 R2로 선택하고 공개 MediaUrl과 버킷·키를 입력해주세요.
회원 업로드 검증 또는 반영을 완료하지 못했습니다. 권한과 연결 상태를 확인하고 다시 검사하세요.
현대 회원 업로드 메뉴 권한이 없습니다. 검사에는 사용·목록·조회, 업로드에는 생성, 정리에는 삭제 권한도 필요합니다.
중복 정리를 완료하지 못했습니다. 다시 검사하여 현재 상태를 확인하세요.
중복 검사 요청이 실패했습니다. 이 검사 요청은 데이터를 삭제하지 않습니다.
정리 완료 여부를 확인하지 못했습니다. 삭제를 바로 반복하지 말고 다시 검사하여 현재 상태를 확인하세요.
로그인 세션 또는 보안 토큰이 유효하지 않습니다. ERP에 다시 로그인하고 화면을 새로 고침한 뒤 검사하세요.
중복 정리 요청 경로를 찾을 수 없습니다. 관리자에게 hdunix ERP 라우트 배포와 라우트 캐시 확인을 요청하세요.
요청 값이 올바르지 않거나 검사 결과가 유효하지 않습니다. 화면을 새로 고침하고 다시 검사하세요.
짧은 시간에 요청이 너무 많았습니다. 잠시 기다린 뒤 다시 검사하세요.
서버에서 요청을 처리하지 못했습니다. 관리자에게 이 HTTP 상태와 member-maintenance 요청 경로를 전달해 서버 배포·연결 상태를 확인하세요.
서버 응답을 받지 못했습니다. 네트워크 연결을 확인한 뒤 다시 검사하세요.
서버 응답이 중복 정리 데이터 형식이 아닙니다. 로그인 화면으로 이동했거나 배포가 불완전할 수 있습니다. 다시 로그인한 후에도 같으면 관리자에게 요청 경로의 배포 상태를 확인하세요.
중복 고객
회원·고객 연결 확인 필요
중복 교육 주문
삭제 대상
전체 회원과 연결 데이터를 검사 중입니다. 아직 삭제하지 않았습니다.
보존 ID와 삭제 대상, 제외 사유를 확인하세요. 대상 확인란을 체크한 뒤 정리 버튼을 누르면 자동 백업 없이 삭제합니다.
현재 .env.dabory API로 고객·교육 주문 중복을 조회했습니다. 표시된 ID는 검토 대상이며 삭제 대상 확정이 아닙니다. 수료·진도·전체 연결 검증과 일괄 삭제 API가 연결되지 않아 자동 삭제는 비활성화됩니다. 데이터는 변경하지 않았습니다.
안전하게 자동 삭제할 중복이 없습니다. 표시된 제외 사유가 있으면 별도 확인이 필요합니다.
보존 기록을 남기고 표시된 중복을 자동 백업 없이 삭제할까요? 제외된 데이터는 삭제하지 않습니다.
최신 데이터를 다시 검사하고 중복을 정리 중입니다. 창을 닫지 마세요.
확인된 중복 정리가 완료되었습니다. 제외 건은 별도 확인하고 기존 회원 로그인은 다시 로그인하세요.
서버에 보관된 암호화 백업 파일
Video UID가 없습니다.
동영상 상태 확인에 실패했습니다. 잠시 후 다시 재생해주세요.
동영상 준비 시간이 길어지고 있습니다. 잠시 후 다시 재생해주세요.
동영상 재생 준비를 확인 중입니다.
잠시만 기다려 주십시요. 동영상 재생을 위하여 인코딩 작업중입니다...
WepPOS/프랜차이즈 ERP 납품실적
Home
WepPOS/프랜차이즈 ERP 납품실적
WebPOS 통합 웹ERP 구축] 숲스토리 & 희망을심는나무, WebPOS·통합 ERP 구축으로 착한 매장 상생 모델을 완성하다!
안녕하세요! 선한 영향력이 담긴 재사용 의류 마켓이자, 발달장애인의 지속 가능한 일자리를 창출하는 장애인 표준사업장 '숲스토리'를 아시나요?
오늘은 2025년 10월, 희망을심는나무 사회적협동조합 김경호 대표님 과 뜻을 모아 의기투합했던 그 뜨거웠던 만남을 시작으로, 2026년 2월 드디어 성공적으로 구축된 '의류매장용 WebPOS & 통합 ERP' 개발 스토리를 아주 생생하고 맛깔나게 풀어보겠습니다! 🚀
🤝 1. 운명적 만남: 2025년 10월, 희망을심는나무 사회적협동조합 김경호 대표와의 의기투합 2025년 10월, 희망을심는나무 사회적협동조합의 김경호 대표님 과의 만남은 그 자체로 커다란 울림이었습니다.
숲스토리의 가치: 발달장애인의 자립 고용을 돕고, 자원 순환을 실현하는 재사용 의류 마켓 '숲스토리'.
현장의 고민: 사회적기업/장애인 표준사업장이라는 훌륭한 인증과 뜻깊은 취지 뒤에는, "오프라인 매장의 효율적인 재고 및 정산 관리", "다양한 프랜차이즈 가맹점별로 유연하게 맞춰줄 수 있는 모듈형 시스템의 부재"라는 현실적 고충이 자리 잡고 있었습니다.
의기투합의 결실: "가맹점주와의 상생, 그리고 발달장애인 크루들도 손쉽게 조작할 수 있는 직관적이고 강력한 시스템을 함께 만들자!"라는 단 하나의 목표로 2026년 2월 오픈을 향한 본격적인 개발 대장정이 시작되었습니다.
🛠️ 2. 최첨단 3-Tier 아키텍처 & IndexedDB 기반 오프라인(Offline) 무중단 POS 기술적인 뼈대 역시 그 어떤 대기업 솔루션 못지않은 최첨단 모던 스택과 가용성 아키텍처로 설계되었습니다.
Frontend (React.js): 웹과 무인 키오스크(KIOSK), 모바일 태블릿 어디서나 눈이 편안하고 즉각 반응하는 컴포넌트 기반의 UI/UX 구축
Backend (Golang): 오프라인 결제 및 상품 스캔 요청을 초고속으로 처리하는 고성능 Go 엔진
Security End (Golang): 결제 정보 및 회원 데이터 보호를 위해 Golang 기반의 정교한 암호화 및 트래픽 보안 세션 제어 레이어 탑재
3-Tier 웹 모듈화: 설치가 전혀 필요 없는 무설치 방식의 WebPOS 로, 장소와 디바이스 기기에 관계없이 브라우저만 있으면 즉시 사용 가능합니다!
⚡ Chrome IndexedDB 활용 오프라인(Offline) 동기화:
매장 현장의 인터넷이 갑자기 끊기거나 서버에 일시적인 장애가 발생하더라도 POS 작동이 절대 멈추지 않습니다.
Chrome 브라우저 내 IndexedDB 를 활용하여 모든 결제·판매 데이터를 브라우저 로컬 저장소에 유실 없이 안전하게 스토리지합니다.
이후 인터넷 연결이 복구되면, 백그라운드 동기화 로직이 작동하여 중앙 서버 DB로 결제 데이터를 즉시 자동 동기화(Sync)합니다.
🎨 3. 업종/업태별 테마 시스템: 1 프랜차이즈 = 1 테마 커스터마이징 이번 프로젝트의 가장 압권인 기술적 특징은 바로 '업종/업태별 테마 시스템'의 구축입니다.
독립적 테마 엔진: 1개 프랜차이즈 업체별로 1개 테마를 부여하는 테마 아키텍처를 도입했습니다.
자유로운 커스터마이징: 가맹 본부나 개별 브랜드의 특성에 맞춰 디자인 테마뿐만 아니라 필요한 기능을 레고 블록처럼 손쉽게 추가·삭제할 수 있어, 향후 유통망 확장 시 별도의 비싼 개발비 없이 무한 확장이 가능해졌습니다!
🏬 4. 효율적인 매장 운영 & 무인화 기기 연동 현장의 공간 효율성을 끌어올리고 매장 운용을 다각화하기 위한 장치들도 손잡았습니다.
무설치 WebPOS 초고속 결제: 현장에서는 설치 과정 없이 브라우저만 켜면 즉시 결제, 적립, 환불 처리가 일사천리로 진행됩니다.
오프라인 무중단 결제 보장: 통신 장애나 인터넷 인프라 문제에도 IndexedDB 덕분에 매장 결제가 중단 없이 완벽하게 유지됩니다.
심플 & 슬림 무인 KIOSK 연동: 작은 공간도 효율적으로 활용할 수 있도록 슬림한 KIOSK 기기와 연동하여 무인/단기 매장 운용 효율성을 극대화했습니다.
🔄 5. 통합 ERP / CRM & 자동 발주 시스템 연동 실시간 ERP/CRM 통합: 오프라인 매장의 결제 데이터와 고객 기부/구매 적립금, 회원 정보가 하나의 DB로 통합되어 real-time 관리됩니다.
자동 발주 연계: 매장 재고가 일정 수량 이하로 떨어지면 물류 센터 및 가맹 본부로 자동 발주(Auto-PO)가 연계되어 재고 품절 현상을 완벽하게 예방합니다.
🎯 총평: 가치를 나누고 기술로 연결한 2026년 상생의 이정표 2025년 10월 희망을심는나무 사회적협동조합 김경호 대표님과의 뜻깊은 만남에서 시작되어, 2026년 2월 성공적으로 결실을 맺은 숲스토리 의류 WebPOS & 통합 ERP !
React.js와 Golang, 그리고 IndexedDB 기반 오프라인 무중단 아키텍처가 그려낸 막강한 기술력 위에서, 발달장애인의 자립과 가맹점주의 상생, 그리고 환경을 생각하는 착한 소비가 피어납니다. 기술이 어떻게 세상을 더 따뜻하고 안정적으로 만들 수 있는지 증명해 낸 숲스토리의 찬란한 도약을 진심으로 응원합니다! 🌳✨
▶ 개인정보의 수집 및 이용목적
- 서비스 이용에 따른 본인식별, 실명확인, 가입의사 확인, 서비스이용
- 신규 서비스 등 최신정보 안내 및 개인맞춤서비스 제공을 위한 자료
- 기타 원활한 양질의 마케팅 서비스 제공 등
▶ 수집하는 개인정보의 항목
- 이름, 이메일, 핸드폰번호, 그 외 선택항목
▶ 개인정보의 보유 및 이용기간
- 원칙적으로 개인정보의 수집 또는 제공받은 목적 달성 시 지체 없이 파기합니다.
- 다만, 원활한 서비스의 상담을 위해 상담 완료 후 내용을 1년간 보유할 수 있으며 소비자보호에 관한 법률 등 타법률에 의해 보존할 필요가 있는 경우에는 일정기간 보존합니다.
댓글쓰기