AdSense 승인을 위한 콘텐츠 인프라와 점포라인형 매매 정보 모델을 도입. - 업종 분류 확장: 7개 대분류(휴게음식점/일반음식점/주류점/오락스포츠/판매업/서비스업/기타업종) 하위 소분류 - StoreSale 모델 추가: 월매출·월수익·창업비용·매물설명·입지특징·매매사유 - 매장 검색 카드 재설계(대표 사진 + 권리금 + 월수익), 등록/상세 페이지 매매정보 섹션 - 블로그 시스템: 17개 포스트(폐업/창업/지원금/인테리어), /blog, /blog/[slug] - 정보 페이지: /about, /terms, /privacy, /faq, /contact - SEO: sitemap.ts, robots.ts, 페이지별 메타데이터, Article·FAQ JSON-LD, OG 태그 - 주소 라벨 도로명 주소 → 주소 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2,4 +2,8 @@
|
||||
module.exports = {
|
||||
root: true,
|
||||
extends: ['next/core-web-vitals'],
|
||||
rules: {
|
||||
'react/no-unescaped-entities': 'off',
|
||||
'@next/next/no-img-element': 'off',
|
||||
},
|
||||
};
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
import type { Metadata } from 'next';
|
||||
import Link from 'next/link';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: '회사 소개 | Startover',
|
||||
description:
|
||||
'Startover는 폐업·양도·창업을 잇는 중개 플랫폼입니다. 소상공인의 깔끔한 마무리와 합리적인 재시작을 돕습니다.',
|
||||
alternates: { canonical: 'https://startover.co.kr/about' },
|
||||
};
|
||||
|
||||
export default function AboutPage() {
|
||||
return (
|
||||
<main className="mx-auto max-w-3xl px-6 py-16 font-body">
|
||||
<p className="text-sm font-medium tracking-[0.2em] uppercase text-warm-600">About</p>
|
||||
<h1 className="mt-4 font-display text-4xl font-bold text-ink">
|
||||
Startover가 하는 일
|
||||
</h1>
|
||||
<p className="mt-6 text-lg leading-relaxed text-ink-light">
|
||||
Startover는 폐업을 준비하는 소상공인과 창업을 준비하는 예비 사업자,
|
||||
그리고 철거·인테리어 업체를 한자리에서 연결하는 중개 플랫폼입니다.
|
||||
한 번의 매장 등록으로 시설 인수, 양도, 지원금 신청, 철거와 인테리어까지
|
||||
이어지는 복잡한 흐름을 하나로 묶어 처리합니다.
|
||||
</p>
|
||||
|
||||
<section className="mt-12 space-y-6">
|
||||
<h2 className="font-display text-2xl font-bold text-ink">우리가 풀려는 문제</h2>
|
||||
<p className="leading-relaxed text-ink-light">
|
||||
폐업은 “그만두는 일”이 아니라 “정리하는 일”입니다. 시설을 어떻게 처분할지,
|
||||
원상복구는 어디까지 해야 할지, 남은 임대 기간과 권리금은 어떻게 처리할지,
|
||||
정부 지원금은 받을 수 있는지 — 이런 질문들이 한꺼번에 쏟아집니다. 창업자도 마찬가지입니다.
|
||||
어떤 상권의 어떤 매장을, 어떤 조건에 인수해야 합리적인 시작이 될지 판단하기가 어렵습니다.
|
||||
</p>
|
||||
<p className="leading-relaxed text-ink-light">
|
||||
Startover는 이 두 입장을 잇는 중간 다리입니다. 매도인은 매장 한 번 등록으로
|
||||
여러 경로의 매수자·업체와 연결되고, 매수인은 검증된 매장 정보를 기반으로
|
||||
의사결정을 빠르게 할 수 있습니다.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<section className="mt-12 space-y-6">
|
||||
<h2 className="font-display text-2xl font-bold text-ink">핵심 가치</h2>
|
||||
<ul className="space-y-4 text-ink-light">
|
||||
<li>
|
||||
<strong className="text-ink">투명한 정보:</strong> 권리금, 창업비용, 월매출,
|
||||
월수익, 임대조건을 모두 공개합니다. 숨기지 않고 한 페이지에 정리합니다.
|
||||
</li>
|
||||
<li>
|
||||
<strong className="text-ink">검증된 거래:</strong> 매장 정보는 운영팀 검수를
|
||||
거친 뒤 공개됩니다. 업체는 인증 절차를 통과한 곳만 매칭됩니다.
|
||||
</li>
|
||||
<li>
|
||||
<strong className="text-ink">안전한 정산:</strong> 권리금과 공사비는 에스크로
|
||||
방식으로 보관되며, 검수 완료 후 단계별로 정산됩니다.
|
||||
</li>
|
||||
<li>
|
||||
<strong className="text-ink">정부 지원 연계:</strong> 폐업 소상공인이 받을 수
|
||||
있는 지원금을 자동으로 조회하고 서류 체크리스트를 제공합니다.
|
||||
</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<section className="mt-12 space-y-6">
|
||||
<h2 className="font-display text-2xl font-bold text-ink">서비스 영역</h2>
|
||||
<p className="leading-relaxed text-ink-light">
|
||||
현재 베타 서비스는 서울 강남권(역삼·선릉·논현)과 마포권(홍대·합정·연남)을
|
||||
중심으로 운영 중이며, 휴게음식점·일반음식점·주류점·오락스포츠·판매업·서비스업·
|
||||
기타 업종의 매장 양도를 지원합니다. 서비스 지역과 업종은 순차적으로 확장될
|
||||
예정입니다.
|
||||
</p>
|
||||
</section>
|
||||
|
||||
<div className="mt-16 flex flex-wrap gap-3 border-t border-ink/5 pt-8">
|
||||
<Link
|
||||
href="/stores"
|
||||
className="rounded-full bg-ink px-6 py-3 text-sm font-medium text-warm-50 hover:bg-warm-800 transition-colors"
|
||||
>
|
||||
매장 둘러보기
|
||||
</Link>
|
||||
<Link
|
||||
href="/contact"
|
||||
className="rounded-full border-2 border-ink/15 px-6 py-3 text-sm font-medium text-ink hover:border-ink/40 transition-colors"
|
||||
>
|
||||
문의하기
|
||||
</Link>
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,128 @@
|
||||
import type { Metadata } from 'next';
|
||||
import Link from 'next/link';
|
||||
import { notFound } from 'next/navigation';
|
||||
import { getPostBySlug, getPostsSortedByDate, POSTS } from '../posts';
|
||||
|
||||
const CATEGORY_COLORS: Record<string, string> = {
|
||||
폐업: 'bg-warm-500/10 text-warm-700',
|
||||
창업: 'bg-sage-500/10 text-sage-700',
|
||||
지원금: 'bg-warm-400/15 text-warm-800',
|
||||
인테리어: 'bg-ink/5 text-ink',
|
||||
};
|
||||
|
||||
export function generateStaticParams() {
|
||||
return POSTS.map((p) => ({ slug: p.slug }));
|
||||
}
|
||||
|
||||
export async function generateMetadata({
|
||||
params,
|
||||
}: {
|
||||
params: Promise<{ slug: string }>;
|
||||
}): Promise<Metadata> {
|
||||
const { slug } = await params;
|
||||
const post = getPostBySlug(slug);
|
||||
if (!post) return { title: 'Not Found' };
|
||||
|
||||
const url = `https://startover.co.kr/blog/${post.slug}`;
|
||||
return {
|
||||
title: `${post.title} | Startover 블로그`,
|
||||
description: post.description,
|
||||
alternates: { canonical: url },
|
||||
openGraph: {
|
||||
title: post.title,
|
||||
description: post.description,
|
||||
url,
|
||||
type: 'article',
|
||||
publishedTime: post.publishedAt,
|
||||
},
|
||||
twitter: {
|
||||
card: 'summary_large_image',
|
||||
title: post.title,
|
||||
description: post.description,
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
export default async function BlogDetailPage({
|
||||
params,
|
||||
}: {
|
||||
params: Promise<{ slug: string }>;
|
||||
}) {
|
||||
const { slug } = await params;
|
||||
const post = getPostBySlug(slug);
|
||||
if (!post) {
|
||||
notFound();
|
||||
}
|
||||
|
||||
const related = getPostsSortedByDate()
|
||||
.filter((p) => p.slug !== post.slug && p.category === post.category)
|
||||
.slice(0, 3);
|
||||
|
||||
const jsonLd = {
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'Article',
|
||||
headline: post.title,
|
||||
description: post.description,
|
||||
datePublished: post.publishedAt,
|
||||
author: { '@type': 'Organization', name: 'Startover' },
|
||||
publisher: { '@type': 'Organization', name: 'Startover' },
|
||||
mainEntityOfPage: `https://startover.co.kr/blog/${post.slug}`,
|
||||
};
|
||||
|
||||
return (
|
||||
<main className="mx-auto max-w-3xl px-6 py-16 font-body">
|
||||
<script
|
||||
type="application/ld+json"
|
||||
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
|
||||
/>
|
||||
|
||||
<div className="mb-8">
|
||||
<Link href="/blog" className="text-sm text-warm-600 hover:text-warm-700">
|
||||
← 블로그 목록으로
|
||||
</Link>
|
||||
</div>
|
||||
|
||||
<header>
|
||||
<div className="flex items-center gap-2">
|
||||
<span
|
||||
className={`rounded-full px-2.5 py-0.5 text-xs font-medium ${CATEGORY_COLORS[post.category] ?? 'bg-ink/5 text-ink'}`}
|
||||
>
|
||||
{post.category}
|
||||
</span>
|
||||
<span className="text-xs text-ink-muted">
|
||||
{post.publishedAt} · {post.readMinutes}분 읽기
|
||||
</span>
|
||||
</div>
|
||||
<h1 className="mt-4 font-display text-4xl font-bold leading-tight text-ink">
|
||||
{post.title}
|
||||
</h1>
|
||||
<p className="mt-4 text-lg leading-relaxed text-ink-light">{post.description}</p>
|
||||
</header>
|
||||
|
||||
<article className="mt-10">{post.content()}</article>
|
||||
|
||||
{related.length > 0 && (
|
||||
<aside className="mt-20 border-t border-ink/5 pt-10">
|
||||
<h2 className="font-display text-xl font-bold text-ink">관련 글</h2>
|
||||
<ul className="mt-4 space-y-3">
|
||||
{related.map((r) => (
|
||||
<li key={r.slug}>
|
||||
<Link
|
||||
href={`/blog/${r.slug}`}
|
||||
className="group flex items-center justify-between rounded-xl border border-ink/5 bg-white/70 px-4 py-3 backdrop-blur-sm"
|
||||
>
|
||||
<span className="font-medium text-ink group-hover:text-warm-700 transition-colors">
|
||||
{r.title}
|
||||
</span>
|
||||
<span className="text-ink-muted transition-transform group-hover:translate-x-1">
|
||||
→
|
||||
</span>
|
||||
</Link>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</aside>
|
||||
)}
|
||||
</main>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
import type { ReactNode } from 'react';
|
||||
|
||||
export function H2({ children }: { children: ReactNode }) {
|
||||
return (
|
||||
<h2 className="mt-12 mb-4 font-display text-2xl font-bold text-ink">{children}</h2>
|
||||
);
|
||||
}
|
||||
|
||||
export function H3({ children }: { children: ReactNode }) {
|
||||
return (
|
||||
<h3 className="mt-8 mb-3 font-display text-xl font-bold text-ink">{children}</h3>
|
||||
);
|
||||
}
|
||||
|
||||
export function P({ children }: { children: ReactNode }) {
|
||||
return <p className="mt-4 text-base leading-relaxed text-ink-light">{children}</p>;
|
||||
}
|
||||
|
||||
export function UL({ children }: { children: ReactNode }) {
|
||||
return <ul className="mt-4 list-disc space-y-2 pl-6 text-ink-light">{children}</ul>;
|
||||
}
|
||||
|
||||
export function OL({ children }: { children: ReactNode }) {
|
||||
return <ol className="mt-4 list-decimal space-y-2 pl-6 text-ink-light">{children}</ol>;
|
||||
}
|
||||
|
||||
export function Strong({ children }: { children: ReactNode }) {
|
||||
return <strong className="font-semibold text-ink">{children}</strong>;
|
||||
}
|
||||
|
||||
export function Quote({ children }: { children: ReactNode }) {
|
||||
return (
|
||||
<blockquote className="mt-6 border-l-4 border-warm-500 bg-warm-50/60 py-3 pl-5 pr-4 text-sm italic text-ink-light">
|
||||
{children}
|
||||
</blockquote>
|
||||
);
|
||||
}
|
||||
|
||||
export function Note({ children }: { children: ReactNode }) {
|
||||
return (
|
||||
<aside className="mt-6 rounded-xl bg-warm-100/70 p-5 text-sm leading-relaxed text-ink">
|
||||
{children}
|
||||
</aside>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
import type { Metadata } from 'next';
|
||||
import Link from 'next/link';
|
||||
import { getPostsSortedByDate } from './posts';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: '블로그 | Startover',
|
||||
description:
|
||||
'폐업·양도·창업 절차, 정부 지원금, 인테리어·철거 실무 가이드를 정리합니다. 현장에서 검증된 체크리스트와 사례 중심의 글을 만나보세요.',
|
||||
alternates: { canonical: 'https://startover.co.kr/blog' },
|
||||
openGraph: {
|
||||
title: '블로그 | Startover',
|
||||
description: '폐업·창업·지원금·인테리어 실무 가이드',
|
||||
url: 'https://startover.co.kr/blog',
|
||||
type: 'website',
|
||||
},
|
||||
};
|
||||
|
||||
const CATEGORY_COLORS: Record<string, string> = {
|
||||
폐업: 'bg-warm-500/10 text-warm-700',
|
||||
창업: 'bg-sage-500/10 text-sage-700',
|
||||
지원금: 'bg-warm-400/15 text-warm-800',
|
||||
인테리어: 'bg-ink/5 text-ink',
|
||||
};
|
||||
|
||||
export default function BlogListPage() {
|
||||
const posts = getPostsSortedByDate();
|
||||
|
||||
return (
|
||||
<main className="mx-auto max-w-5xl px-6 py-16 font-body">
|
||||
<p className="text-sm font-medium tracking-[0.2em] uppercase text-warm-600">Journal</p>
|
||||
<h1 className="mt-4 font-display text-4xl font-bold text-ink">Startover 블로그</h1>
|
||||
<p className="mt-4 max-w-2xl text-ink-light">
|
||||
폐업·양도·창업을 준비하는 분들이 현장에서 자주 물어보는 질문을 글로 정리했습니다.
|
||||
지원금, 세금, 인테리어 비용, 상권 분석 등 실무 주제를 중심으로 업데이트합니다.
|
||||
</p>
|
||||
|
||||
<div className="mt-12 grid grid-cols-1 gap-6 md:grid-cols-2">
|
||||
{posts.map((post) => (
|
||||
<Link
|
||||
key={post.slug}
|
||||
href={`/blog/${post.slug}`}
|
||||
className="card-lift group block rounded-2xl border border-ink/5 bg-white/70 p-6 backdrop-blur-sm"
|
||||
>
|
||||
<div className="flex items-center gap-2">
|
||||
<span
|
||||
className={`rounded-full px-2.5 py-0.5 text-xs font-medium ${CATEGORY_COLORS[post.category] ?? 'bg-ink/5 text-ink'}`}
|
||||
>
|
||||
{post.category}
|
||||
</span>
|
||||
<span className="text-xs text-ink-muted">
|
||||
{post.publishedAt} · {post.readMinutes}분 읽기
|
||||
</span>
|
||||
</div>
|
||||
<h2 className="mt-3 font-display text-xl font-bold text-ink group-hover:text-warm-700 transition-colors">
|
||||
{post.title}
|
||||
</h2>
|
||||
<p className="mt-2 text-sm leading-relaxed text-ink-light line-clamp-3">
|
||||
{post.description}
|
||||
</p>
|
||||
</Link>
|
||||
))}
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,127 @@
|
||||
import { H2, H3, P, UL, OL, Strong, Note } from '../components';
|
||||
import type { BlogPost } from './types';
|
||||
|
||||
export const post: BlogPost = {
|
||||
slug: 'closure-guide-2026',
|
||||
title: '2026년 소상공인 폐업 절차 완전 가이드',
|
||||
description:
|
||||
'폐업을 결심한 순간부터 매장 정리·세무 신고·지원금 신청까지, 소상공인이 실제로 밟아야 하는 순서를 단계별로 정리했습니다.',
|
||||
category: '폐업',
|
||||
publishedAt: '2026-04-01',
|
||||
readMinutes: 9,
|
||||
content: () => (
|
||||
<>
|
||||
<P>
|
||||
폐업은 단순히 "가게를 닫는" 일이 아닙니다. 매장 시설을 어떻게 처분할지, 남은
|
||||
임대 기간과 권리금은 어떻게 정리할지, 세무 신고는 언제까지 해야 하는지, 정부
|
||||
지원금은 받을 수 있는지까지 — 수십 가지 결정이 동시에 쏟아집니다. 2026년 기준으로
|
||||
소상공인이 폐업을 진행할 때 꼭 거쳐야 하는 순서를 정리했습니다.
|
||||
</P>
|
||||
|
||||
<H2>1단계: 폐업 결정 전 점검 사항</H2>
|
||||
<P>
|
||||
폐업을 실행하기 전에 반드시 확인해야 할 체크리스트입니다. 이 단계에서 놓치면
|
||||
이후 수개월 동안 비용 부담이 연쇄적으로 커집니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>
|
||||
<Strong>임대차 계약 잔여 기간</Strong>: 계약 만료일이 가깝다면 자연 종료를,
|
||||
잔여 기간이 길다면 권리 양도 또는 임대인 합의를 통한 조기 해지 여부를 검토합니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>권리금 회수 가능성</Strong>: 매출이 하락 추세라면 권리금 포기가 실질적인
|
||||
선택이 될 수 있습니다. 상권 분위기와 유사 매물의 권리금 수준을 확인하세요.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>원상복구 의무 범위</Strong>: 최초 계약서의 원상복구 조항을 다시 확인합니다.
|
||||
"현 상태 인수" 조건이면 철거 비용을 크게 아낄 수 있습니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>미지급 거래처 대금</Strong>: 재료비·관리비·공과금 등 정산 시점을 맞춰
|
||||
폐업 후 청구서로 이어지지 않게 합니다.
|
||||
</li>
|
||||
</UL>
|
||||
|
||||
<H2>2단계: 양도·양수 시도</H2>
|
||||
<P>
|
||||
폐업을 결정했더라도 철거 전에 양도를 먼저 시도하는 것이 경제적으로 유리한 경우가
|
||||
많습니다. 권리금 일부라도 회수할 수 있고, 원상복구 비용 부담도 인수자에게
|
||||
이전할 수 있기 때문입니다.
|
||||
</P>
|
||||
<OL>
|
||||
<li>매장 기본 정보(업종, 권리금 희망가, 월매출·월수익, 임대 조건)를 정리합니다.</li>
|
||||
<li>사진과 함께 중개 플랫폼 또는 상권 에이전트에 등록합니다.</li>
|
||||
<li>관심 매수인에게 세무자료·임대차 계약서 등 실사 자료를 제공합니다.</li>
|
||||
<li>권리금·인수 조건을 협의하고, 행정사를 통해 권리금 계약서를 작성합니다.</li>
|
||||
</OL>
|
||||
<Note>
|
||||
Startover는 매장 한 번 등록으로 양도 매수인과 철거·인테리어 업체에 동시에
|
||||
연결되는 플랫폼입니다. 양도가 성사되지 않더라도 별도 철거 매칭으로 바로 이어집니다.
|
||||
</Note>
|
||||
|
||||
<H2>3단계: 양도가 불가능할 때의 폐업 실행</H2>
|
||||
<P>
|
||||
양도가 성사되지 않는다면 본격적인 폐업 절차로 넘어갑니다. 이 단계에서는 비용
|
||||
관리가 핵심입니다.
|
||||
</P>
|
||||
<H3>시설 처분</H3>
|
||||
<UL>
|
||||
<li>중고 거래: 주방 설비, 가구, POS 기기 등을 업종별 중고 플랫폼에 매각합니다.</li>
|
||||
<li>일괄 매입 업체: 시간이 부족할 때는 매장 전체 설비를 한 번에 인수하는 업체를 활용합니다.</li>
|
||||
<li>무상 인수: 이전 비용보다 매각가가 낮다면 무상 이전을 조건으로 내놓을 수 있습니다.</li>
|
||||
</UL>
|
||||
<H3>철거 업체 선정</H3>
|
||||
<P>
|
||||
철거 견적은 최소 3곳 이상에서 받아 비교하고, 현장 실사를 반드시 진행해야
|
||||
추후 추가 비용 청구를 막을 수 있습니다. 계약서에는 폐기물 처리 비용 포함 여부,
|
||||
작업 범위(천장·바닥·벽체·설비 철거 범위), 추가 비용 발생 조건을 명시합니다.
|
||||
</P>
|
||||
|
||||
<H2>4단계: 세무 및 행정 신고</H2>
|
||||
<OL>
|
||||
<li>
|
||||
<Strong>부가가치세 폐업 신고</Strong>: 폐업일이 속한 달의 말일부터 25일 이내에
|
||||
홈택스 또는 세무서에 신고합니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>종합소득세 신고</Strong>: 폐업한 연도의 다음 해 5월에 종합소득세를 신고합니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>4대 보험 상실 신고</Strong>: 직원이 있었다면 고용·산재·건강·국민연금의
|
||||
상실 신고를 기한 내에 처리합니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>사업자등록 폐업 신고</Strong>: 폐업 사유와 폐업일을 기재하여 관할 세무서에
|
||||
제출합니다. 온라인 신고도 가능합니다.
|
||||
</li>
|
||||
</OL>
|
||||
|
||||
<H2>5단계: 지원금 신청과 재기 준비</H2>
|
||||
<P>
|
||||
폐업 후 받을 수 있는 대표 지원 프로그램은 다음과 같습니다. 자격 요건은 매년
|
||||
변경되므로 최신 공고를 확인해야 합니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>
|
||||
<Strong>희망리턴패키지</Strong>: 폐업 사업 정리 컨설팅, 점포 철거비 지원,
|
||||
재취업·재창업 교육 연계.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>소상공인 재기 지원 프로그램</Strong>: 폐업 이후 재창업 시 자금·컨설팅 지원.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>국민취업지원제도</Strong>: 재취업을 준비하는 기간 동안 생계비·교육비 지원.
|
||||
</li>
|
||||
</UL>
|
||||
|
||||
<H2>요약 체크리스트</H2>
|
||||
<UL>
|
||||
<li>임대차 계약·권리금·원상복구 조건을 먼저 확인</li>
|
||||
<li>철거 전 양도·양수를 최우선 시도</li>
|
||||
<li>시설 처분은 중고 매각·일괄 매입·무상 인수 중 채산성 비교</li>
|
||||
<li>부가세·종소세·사업자 폐업 신고 기한 엄수</li>
|
||||
<li>희망리턴패키지 등 지원금 자격 요건 확인 후 신청</li>
|
||||
</UL>
|
||||
</>
|
||||
),
|
||||
};
|
||||
@@ -0,0 +1,128 @@
|
||||
import { H2, H3, P, UL, OL, Strong, Note } from '../components';
|
||||
import type { BlogPost } from './types';
|
||||
|
||||
export const post: BlogPost = {
|
||||
slug: 'closure-subsidy-2026',
|
||||
title: '2026년 소상공인 폐업 지원금 총정리',
|
||||
description:
|
||||
'2026년 기준 소상공인이 폐업 시 받을 수 있는 주요 지원금 프로그램의 자격·지원금액·신청 방법을 한눈에 정리합니다.',
|
||||
category: '지원금',
|
||||
publishedAt: '2026-04-11',
|
||||
readMinutes: 10,
|
||||
content: () => (
|
||||
<>
|
||||
<P>
|
||||
폐업을 결정했더라도 손실을 최소화하고 재기의 발판을 마련할 수 있는 정부·지자체
|
||||
지원금 프로그램이 다수 존재합니다. 2026년 기준으로 소상공인이 활용할 수 있는
|
||||
대표 지원금 제도를 구조적으로 정리했습니다. 구체적 금액·자격은 매년 공고에
|
||||
따라 바뀌므로 신청 직전 최신 공고를 반드시 확인해야 합니다.
|
||||
</P>
|
||||
|
||||
<H2>폐업 지원금의 구조 개관</H2>
|
||||
<P>
|
||||
폐업 관련 지원금은 크게 세 갈래로 나뉩니다. 각각의 목적과 집행 기관이 다르기
|
||||
때문에, 본인 상황에 해당하는 트랙을 먼저 파악하는 것이 시작점입니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li><Strong>사업 정리 지원</Strong>: 폐업 자체를 마무리하는 데 드는 비용(철거·컨설팅 등)</li>
|
||||
<li><Strong>전환 지원</Strong>: 재취업 또는 재창업으로 이어지도록 돕는 교육·자금 지원</li>
|
||||
<li><Strong>지자체 특화 지원</Strong>: 시·도·구 단위의 지역 소상공인 보호 프로그램</li>
|
||||
</UL>
|
||||
|
||||
<H2>1. 희망리턴패키지</H2>
|
||||
<P>
|
||||
소상공인시장진흥공단이 운영하는 대표 폐업·재기 지원 프로그램입니다. 세 가지
|
||||
트랙으로 구성되어 폐업 단계별로 활용할 수 있습니다.
|
||||
</P>
|
||||
<H3>사업정리 컨설팅</H3>
|
||||
<UL>
|
||||
<li>세무·법률·부동산 전문가의 1:1 컨설팅 제공</li>
|
||||
<li>임차권 정리, 세무 신고, 권리금 처리 등 실무 자문</li>
|
||||
<li>자부담 없이 무료 또는 소액 부담으로 진행(추정)</li>
|
||||
</UL>
|
||||
<H3>점포 철거비 지원</H3>
|
||||
<UL>
|
||||
<li>폐업 시 원상복구·철거에 소요되는 비용 일부 환급</li>
|
||||
<li>평당 약 13~15만원 기준, 최대 한도 내 실비 지원(추정, 공고별 상이)</li>
|
||||
<li>철거 전 신청 → 사후 정산 방식이 일반적</li>
|
||||
</UL>
|
||||
<H3>재취업·재창업 지원</H3>
|
||||
<UL>
|
||||
<li>재취업 희망자: 교육비·수당 지원, 취업 알선</li>
|
||||
<li>재창업 희망자: 교육 + 후속 컨설팅 연계</li>
|
||||
</UL>
|
||||
|
||||
<H2>2. 소상공인 폐업 점포 철거비 지원</H2>
|
||||
<P>
|
||||
희망리턴패키지의 철거 트랙과 별개로, 일부 지자체에서는 자체 예산으로 철거비를
|
||||
지원합니다. 서울시·경기도·부산시 등 대도시는 매년 예산 소진 시까지 운영하는
|
||||
경우가 많습니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>신청 자격: 관할 지역 내 일정 기간 이상 사업 영위한 소상공인</li>
|
||||
<li>지원 한도: 약 200~400만원 내외(지자체별 상이, 추정)</li>
|
||||
<li>중복 수급 제한: 정부 희망리턴패키지와 동일 비용 항목 중복 불가</li>
|
||||
</UL>
|
||||
|
||||
<H2>3. 재취업 전환 지원</H2>
|
||||
<P>
|
||||
폐업 이후 재취업을 준비하는 소상공인을 위한 프로그램입니다. 고용노동부의
|
||||
<Strong> 국민취업지원제도</Strong>가 핵심 축이며, 1유형(구직촉진수당)·2유형(취업활동비용)
|
||||
으로 구분됩니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>1유형: 월 약 50~60만원(추정) 구직촉진수당을 최대 6개월 지원</li>
|
||||
<li>2유형: 직업훈련비·이력서 첨삭 등 취업활동 비용 지원</li>
|
||||
<li>폐업 후 실업 상태임을 증빙하는 서류(폐업 사실 증명원) 필요</li>
|
||||
</UL>
|
||||
|
||||
<H2>4. 지역별 추가 지원 사례</H2>
|
||||
<P>
|
||||
광역·기초 지자체 단위에서는 다양한 맞춤형 지원이 운영됩니다. 공고는 각 지자체
|
||||
소상공인지원센터·경제진흥원 홈페이지에서 확인할 수 있습니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>서울시: 서울시 소상공인 경영회복 패키지, 자영업자 마음돌봄 상담</li>
|
||||
<li>경기도: 경기신용보증재단의 재기 특례 보증, 폐업 소상공인 재도전 지원</li>
|
||||
<li>부산·대구 등 광역시: 철거비·이사비·세무 컨설팅 별도 예산</li>
|
||||
</UL>
|
||||
|
||||
<H2>5. 자격 요건 공통점</H2>
|
||||
<P>
|
||||
지원금 프로그램마다 세부 요건은 다르지만, 다음 공통 조건은 대부분 충족해야
|
||||
합니다.
|
||||
</P>
|
||||
<OL>
|
||||
<li>소상공인 기준(업종별 상시근로자 수·매출액 요건) 충족</li>
|
||||
<li>일정 기간(통상 60일~1년 이상) 사업 영위 이력</li>
|
||||
<li>국세·지방세 체납이 없을 것</li>
|
||||
<li>동일 비용 항목에 대한 중복 수급이 아닐 것</li>
|
||||
</OL>
|
||||
|
||||
<H2>6. 신청 타이밍과 서류</H2>
|
||||
<P>
|
||||
지원금은 <Strong>폐업 전 신청</Strong>이 원칙인 경우가 많습니다. 이미 철거가 끝난
|
||||
뒤에 신청하면 철거비 지원이 소급 적용되지 않을 수 있습니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>사업자등록증 사본(폐업 전)</li>
|
||||
<li>임대차계약서 사본</li>
|
||||
<li>폐업 예정일이 기재된 신청서</li>
|
||||
<li>철거 견적서(철거 지원의 경우)</li>
|
||||
<li>세무 관련 증빙(부가세 신고 내역 등)</li>
|
||||
</UL>
|
||||
|
||||
<H2>7. 주의사항</H2>
|
||||
<UL>
|
||||
<li>같은 비용 항목에 대해 중앙·지자체 지원금을 동시에 받을 수 없습니다.</li>
|
||||
<li>지원금 신청 후 철거 업체를 변경하면 정산이 지연될 수 있습니다.</li>
|
||||
<li>세금 체납이 있으면 지원 대상에서 제외되므로 신청 전 정리해야 합니다.</li>
|
||||
<li>지원금 수령 후 일정 기간 내 재창업 시 별도 신고가 필요한 경우가 있습니다.</li>
|
||||
</UL>
|
||||
<Note>
|
||||
Startover는 폐업 매장을 등록하면 철거 업체와 직접 연결되고, 희망리턴패키지
|
||||
철거비 지원 신청에 필요한 견적서를 빠르게 확보할 수 있도록 돕습니다.
|
||||
</Note>
|
||||
</>
|
||||
),
|
||||
};
|
||||
@@ -0,0 +1,169 @@
|
||||
import { H2, H3, P, UL, OL, Strong, Note } from '../components';
|
||||
import type { BlogPost } from './types';
|
||||
|
||||
export const post: BlogPost = {
|
||||
slug: 'closure-support-programs',
|
||||
title: '폐업 후 재취업·재창업 지원 제도',
|
||||
description:
|
||||
'희망리턴패키지, 국민취업지원제도, 소상공인 재기 프로그램 등 폐업 후 받을 수 있는 주요 지원 제도의 자격과 신청 방법을 정리합니다.',
|
||||
category: '폐업',
|
||||
publishedAt: '2026-04-09',
|
||||
readMinutes: 9,
|
||||
content: () => (
|
||||
<>
|
||||
<P>
|
||||
폐업은 끝이 아니라 다음 단계의 시작입니다. 정부는 폐업 소상공인의 재취업과
|
||||
재창업을 돕기 위해 여러 제도를 운영하고 있지만, 지원 요건과 신청 타이밍이 제각각이어서
|
||||
막상 필요할 때 놓치는 경우가 많습니다. 이 글에서는 폐업자가 활용할 수 있는 주요
|
||||
프로그램을 한 번에 정리합니다.
|
||||
</P>
|
||||
|
||||
<H2>폐업 후 재기 경로 3가지</H2>
|
||||
<P>
|
||||
폐업 이후 선택지는 크게 세 가지로 나뉩니다. 본인의 상황과 계획에 따라 맞는 프로그램이
|
||||
달라지므로 첫 단추를 잘 끼워야 합니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>
|
||||
<Strong>재취업</Strong>: 급여 소득자로 전환 — 실업급여, 국민취업지원제도 중심
|
||||
</li>
|
||||
<li>
|
||||
<Strong>재창업</Strong>: 새 사업 시작 — 희망리턴패키지 재도전, 소상공인 정책자금
|
||||
</li>
|
||||
<li>
|
||||
<Strong>역량 개발</Strong>: 일정 기간 학습·훈련 후 진로 결정 — 내일배움카드,
|
||||
국민내일배움카드
|
||||
</li>
|
||||
</UL>
|
||||
|
||||
<H2>희망리턴패키지</H2>
|
||||
<P>
|
||||
중소벤처기업부·소상공인시장진흥공단이 운영하는 폐업 소상공인 전용 종합 지원
|
||||
프로그램입니다. 사업 정리부터 재기까지 단계별로 서비스가 제공됩니다.
|
||||
</P>
|
||||
<H3>지원 내용</H3>
|
||||
<UL>
|
||||
<li>
|
||||
<Strong>사업 정리 컨설팅</Strong>: 세무·법률 전문가의 1:1 자문, 폐업 실무 가이드
|
||||
</li>
|
||||
<li>
|
||||
<Strong>점포 철거비 지원</Strong>: 철거 실비 일부 보조(평당 한도·총액 한도 존재,
|
||||
연도별로 상한 변동)
|
||||
</li>
|
||||
<li>
|
||||
<Strong>재취업 교육</Strong>: 고용노동부 연계 직업훈련 과정 수강료 지원
|
||||
</li>
|
||||
<li>
|
||||
<Strong>재창업 교육·멘토링</Strong>: 업종 전문가 멘토링, 창업 교육 과정
|
||||
</li>
|
||||
</UL>
|
||||
<H3>신청 자격</H3>
|
||||
<UL>
|
||||
<li>폐업 예정 또는 폐업 완료한 소상공인(일반적으로 폐업 후 일정 기간 이내)</li>
|
||||
<li>사업자등록증을 보유했던 자(개인·법인)</li>
|
||||
<li>공고별 업종·매출·지역 요건 충족</li>
|
||||
</UL>
|
||||
<Note>
|
||||
철거비 지원은 사전 신청·승인 원칙입니다. 철거를 먼저 하고 사후에 신청하면
|
||||
대상에서 제외될 수 있으니, 폐업 결정 즉시 소상공인시장진흥공단 지역센터에 상담을
|
||||
요청하세요.
|
||||
</Note>
|
||||
|
||||
<H2>국민취업지원제도</H2>
|
||||
<P>
|
||||
고용노동부가 운영하는 한국형 실업부조로, 폐업 자영업자도 요건을 충족하면 대상이
|
||||
됩니다. Ⅰ유형과 Ⅱ유형으로 나뉩니다.
|
||||
</P>
|
||||
<H3>Ⅰ유형(구직촉진수당)</H3>
|
||||
<UL>
|
||||
<li>월 50만 원 구직촉진수당을 최대 6개월간 지급(부양가족에 따른 가산 가능)</li>
|
||||
<li>가구 소득·재산 요건 충족, 최근 2년 내 100일 이상 취업·자영 경험 필요</li>
|
||||
<li>취업활동계획 수립·이행 조건</li>
|
||||
</UL>
|
||||
<H3>Ⅱ유형(취업활동비용)</H3>
|
||||
<UL>
|
||||
<li>직업훈련 참여 시 훈련비·교통비 등 실비 지원</li>
|
||||
<li>Ⅰ유형 요건 미충족자 중 일정 소득 이하 구직자 대상</li>
|
||||
</UL>
|
||||
|
||||
<H2>소상공인 재기 지원 프로그램</H2>
|
||||
<P>
|
||||
폐업 이후 재창업을 선택한 소상공인을 위한 자금·교육 연계 프로그램입니다. 지역
|
||||
신용보증재단·소상공인시장진흥공단을 통해 접근할 수 있습니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>
|
||||
<Strong>재창업 자금</Strong>: 기존 자영업 경험을 바탕으로 신규 창업할 때 저리
|
||||
정책자금 융자(금리·한도는 해마다 변동)
|
||||
</li>
|
||||
<li>
|
||||
<Strong>재도전 종합지원센터</Strong>: 채무조정·회생·재창업 상담을 한 곳에서 제공
|
||||
</li>
|
||||
<li>
|
||||
<Strong>업종 전환 교육</Strong>: 실패 업종 분석을 기반으로 한 신규 업종 선택 컨설팅
|
||||
</li>
|
||||
</UL>
|
||||
|
||||
<H2>고용보험 실업급여 대상 조건</H2>
|
||||
<P>
|
||||
자영업자도 자영업자 고용보험에 가입해 일정 기간 보험료를 납부했다면 실업급여
|
||||
수급이 가능합니다. 많은 소상공인이 이 제도를 모르고 있다는 점이 맹점입니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>
|
||||
<Strong>자영업자 고용보험 가입 기간</Strong>: 폐업일 이전 최소 1년 이상(통상 1~2년
|
||||
이상 가입 이력 필요)
|
||||
</li>
|
||||
<li>
|
||||
<Strong>비자발적 폐업 사유</Strong>: 매출 감소, 적자 누적 등 경영난으로 인한 폐업임을
|
||||
입증해야 합니다(세무자료·매출 추이 등).
|
||||
</li>
|
||||
<li>
|
||||
<Strong>재취업 의사</Strong>: 실업 상태에서 적극적으로 구직 활동을 수행할 것
|
||||
</li>
|
||||
</UL>
|
||||
<Note>
|
||||
자영업자 고용보험에 가입되어 있지 않았다면 폐업 후 실업급여 대상이 아닙니다.
|
||||
영업 중인 사업자라면 지금이라도 가입을 검토하는 것이 재기 안전망에 도움이 됩니다.
|
||||
</Note>
|
||||
|
||||
<H2>신청 타이밍과 서류 체크리스트</H2>
|
||||
<OL>
|
||||
<li>
|
||||
<Strong>폐업 결정 직후</Strong>: 소상공인시장진흥공단에 전화 상담을 예약하고
|
||||
희망리턴패키지 자격 여부 확인(철거비 사전 신청 필수)
|
||||
</li>
|
||||
<li>
|
||||
<Strong>폐업 신고 전</Strong>: 철거·원상복구 견적 확보, 사업 정리 컨설팅 신청
|
||||
</li>
|
||||
<li>
|
||||
<Strong>폐업 신고 후 14일 이내</Strong>: 4대 보험 상실 신고, 자영업자 고용보험
|
||||
실업급여 신청 요건 검토
|
||||
</li>
|
||||
<li>
|
||||
<Strong>폐업 신고 후 1개월 이내</Strong>: 고용센터 방문, 국민취업지원제도 상담
|
||||
</li>
|
||||
<li>
|
||||
<Strong>다음 해 5월</Strong>: 종합소득세 신고, 결손금 이월 처리 확인
|
||||
</li>
|
||||
</OL>
|
||||
|
||||
<H3>공통 준비 서류</H3>
|
||||
<UL>
|
||||
<li>사업자등록증 사본 및 폐업사실증명원</li>
|
||||
<li>최근 2년치 부가세·종소세 신고서 사본</li>
|
||||
<li>임대차 계약서 사본</li>
|
||||
<li>매출 감소·경영난을 보여줄 자료(월별 매출 집계, 카드 매출 자료)</li>
|
||||
<li>4대 보험 가입·납부 증명원(해당자)</li>
|
||||
<li>주민등록등본, 가족관계증명서, 소득·재산 관련 서류(국민취업지원제도)</li>
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
지원 제도의 존재를 안다고 해도 <Strong>신청 타이밍을 놓치면 자격이 사라지는 경우가
|
||||
많습니다</Strong>. 특히 희망리턴패키지 철거비 지원과 실업급여는 사전 또는 즉시 신청이
|
||||
원칙이므로, 폐업을 결심한 순간에 가장 먼저 관할 기관에 문의하는 것이 재기 비용을
|
||||
크게 줄이는 실질적인 방법입니다.
|
||||
</P>
|
||||
</>
|
||||
),
|
||||
};
|
||||
@@ -0,0 +1,108 @@
|
||||
import { H2, H3, P, UL, OL, Strong, Note } from '../components';
|
||||
import type { BlogPost } from './types';
|
||||
|
||||
export const post: BlogPost = {
|
||||
slug: 'closure-tax-guide',
|
||||
title: '폐업 시 세금 처리 방법 총정리',
|
||||
description:
|
||||
'부가가치세 확정 신고, 종합소득세, 사업자 폐업 신고까지 — 폐업 시 놓치기 쉬운 세금 처리 순서와 기한, 절세 포인트를 정리합니다.',
|
||||
category: '폐업',
|
||||
publishedAt: '2026-04-03',
|
||||
readMinutes: 8,
|
||||
content: () => (
|
||||
<>
|
||||
<P>
|
||||
폐업은 영업을 중단하는 행위로 끝나지 않습니다. 세법상 폐업일을 기준으로 그간의
|
||||
매출·매입·자산을 정리하고, 정해진 기한 안에 여러 건의 신고를 마쳐야 비로소
|
||||
사업자로서의 의무가 종료됩니다. 기한을 놓치면 가산세가 붙고, 잔존재화
|
||||
과세를 간과하면 예상치 못한 세금 고지서가 뒤늦게 날아옵니다. 이 글에서는
|
||||
소상공인이 폐업할 때 꼭 처리해야 하는 세금을 순서대로 정리합니다.
|
||||
</P>
|
||||
|
||||
<H2>폐업 시 신고해야 하는 세금 종류</H2>
|
||||
<P>
|
||||
개인사업자가 폐업할 때 관련되는 주요 세무 절차는 크게 다섯 가지입니다.
|
||||
각각 신고 기한과 담당 기관이 다르므로 한 번에 체계적으로 정리해 두어야 합니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li><Strong>사업자등록 폐업 신고</Strong> — 관할 세무서</li>
|
||||
<li><Strong>부가가치세 확정 신고</Strong> — 홈택스 또는 세무서</li>
|
||||
<li><Strong>종합소득세 신고</Strong> — 폐업 연도 다음 해 5월</li>
|
||||
<li><Strong>원천세·지급명세서 처리</Strong> — 직원이 있었던 경우</li>
|
||||
<li><Strong>4대 보험 상실 신고</Strong> — 국민연금·건강보험·고용·산재</li>
|
||||
</UL>
|
||||
|
||||
<H2>부가가치세 확정 신고</H2>
|
||||
<P>
|
||||
일반과세자의 경우 <Strong>폐업일이 속한 달의 말일로부터 25일 이내</Strong>에
|
||||
부가가치세 확정 신고를 해야 합니다. 예를 들어 4월 10일에 폐업했다면 5월 25일까지
|
||||
신고·납부가 완료되어야 합니다. 기한을 넘기면 무신고 가산세(20%)와 납부지연
|
||||
가산세(일 0.022%)가 추가됩니다.
|
||||
</P>
|
||||
|
||||
<H3>매출세액과 매입세액</H3>
|
||||
<P>
|
||||
폐업일까지의 모든 매출에 대한 부가세를 집계하고, 같은 과세기간의 매입세액을
|
||||
공제합니다. 폐업 직전 재료·소모품을 추가 매입했다면 세금계산서를 반드시 수취해
|
||||
공제받는 것이 좋습니다.
|
||||
</P>
|
||||
|
||||
<H3>잔존재화(의제공급) 과세</H3>
|
||||
<P>
|
||||
많은 사업자가 놓치는 부분이 <Strong>잔존재화</Strong>입니다. 폐업 시점에 남아 있는
|
||||
재고자산, 집기, 비품 등 과거에 매입세액을 공제받았던 자산은 자기 자신에게 공급한
|
||||
것으로 간주되어 부가세가 과세됩니다. 예를 들어 폐업 시 잔존 주방 설비의 시가가
|
||||
500만 원이라면 약 45만 원(감가 반영 후) 정도의 부가세가 추가 발생할 수 있습니다.
|
||||
</P>
|
||||
<Note>
|
||||
잔존재화 과세를 피하려면 폐업 전에 설비를 매각하거나 양도하여 과세 매출로
|
||||
전환하는 것이 실익이 큽니다. 매각 시 세금계산서를 발행하면 매수인은 매입세액을
|
||||
공제받을 수 있어 협상에도 유리합니다.
|
||||
</Note>
|
||||
|
||||
<H2>종합소득세 신고</H2>
|
||||
<P>
|
||||
폐업한 해의 1월 1일부터 폐업일까지 발생한 사업소득은 그 다음 해 5월에 종합소득세로
|
||||
신고합니다. 다른 소득(근로소득·이자·배당 등)이 있다면 합산 신고해야 합니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>간편장부 대상자는 장부 기장 시 기장세액공제(20%)를 받을 수 있습니다.</li>
|
||||
<li>폐업 연도 결손금은 다음 해 이후 10년간 이월 공제가 가능합니다(단, 재창업 시).</li>
|
||||
<li>폐업에 따라 발생한 철거비·원상복구비도 사업 관련 비용으로 인정될 수 있습니다.</li>
|
||||
</UL>
|
||||
|
||||
<H2>사업자등록 폐업 신고</H2>
|
||||
<P>
|
||||
폐업 신고는 홈택스 <Strong>국세증명·사업자등록·세금관련신청/신고</Strong> 메뉴에서
|
||||
온라인으로 가능합니다. 필요한 서류는 폐업신고서 1부와 사업자등록증(원본 반납)
|
||||
입니다. 인허가 사업자의 경우 관련 기관에도 별도 폐업 신고를 해야 합니다
|
||||
(예: 식품위생법상 음식점은 관할 구청 위생과).
|
||||
</P>
|
||||
|
||||
<H2>4대 보험 상실 신고</H2>
|
||||
<P>
|
||||
직원이 있었다면 폐업일 기준으로 <Strong>14일 이내</Strong>에 4대 보험 상실 신고를
|
||||
해야 합니다. 근로복지공단·국민연금공단·건강보험공단에 각각 신고하거나 4대
|
||||
사회보험 정보연계센터에서 일괄 처리할 수 있습니다. 직원의 실업급여 수급 요건과
|
||||
직결되므로 상실 사유를 정확히 기재해야 합니다.
|
||||
</P>
|
||||
|
||||
<H2>놓치기 쉬운 체크리스트</H2>
|
||||
<OL>
|
||||
<li>폐업 직전 매입한 재료·설비의 세금계산서 수취 여부 확인</li>
|
||||
<li>잔존재화 평가액 산정(시가 기준, 감가 반영)</li>
|
||||
<li>미수금·미지급금 정산 후 대손 처리 검토</li>
|
||||
<li>건물주에게 원상복구 후 영수증 수취(경비 처리)</li>
|
||||
<li>사업용 신용카드·계좌 정리(자동이체 해지)</li>
|
||||
<li>홈택스 사업용 공인인증서는 종소세 신고까지 유효 기간 유지</li>
|
||||
<li>지방세(주민세 사업소분) 별도 정리</li>
|
||||
</OL>
|
||||
|
||||
<P>
|
||||
폐업 세무는 한 번만 잘못 처리해도 수백만 원의 가산세·과세 차이로 이어집니다.
|
||||
복잡한 잔존재화·감가·결손금 처리는 세무대리인의 도움을 받는 편이 실질적으로
|
||||
더 저렴한 경우가 많습니다.
|
||||
</P>
|
||||
</>
|
||||
),
|
||||
};
|
||||
@@ -0,0 +1,117 @@
|
||||
import { H2, H3, P, UL, OL, Strong, Note } from '../components';
|
||||
import type { BlogPost } from './types';
|
||||
|
||||
export const post: BlogPost = {
|
||||
slug: 'closure-vs-hiatus',
|
||||
title: '폐업 vs 휴업, 뭐가 유리할까?',
|
||||
description:
|
||||
'매출 부진으로 잠시 쉬고 싶은 소상공인이 폐업과 휴업 중 무엇을 선택해야 하는지, 세금·임대차·지원금 측면에서 비교합니다.',
|
||||
category: '폐업',
|
||||
publishedAt: '2026-04-05',
|
||||
readMinutes: 7,
|
||||
content: () => (
|
||||
<>
|
||||
<P>
|
||||
매출이 몇 달째 부진해 가게 문을 잠시 닫고 싶을 때, 많은 소상공인이 폐업과 휴업
|
||||
사이에서 고민합니다. 겉으로는 "잠시 쉬는 것"과 "완전히 그만두는 것"의 차이처럼
|
||||
보이지만, 세금·임대차·지원금 자격에 있어서는 전혀 다른 결과를 낳습니다. 이 글에서는
|
||||
두 선택지의 실제 차이를 항목별로 비교해 드립니다.
|
||||
</P>
|
||||
|
||||
<H2>폐업과 휴업의 정의 차이</H2>
|
||||
<P>
|
||||
<Strong>폐업</Strong>은 사업자등록을 말소하고 사업 자체를 종료하는 행위입니다.
|
||||
홈택스에서 폐업 신고를 하면 해당 사업자번호는 더 이상 사용할 수 없고, 다시
|
||||
영업하려면 신규 사업자등록을 해야 합니다.
|
||||
</P>
|
||||
<P>
|
||||
<Strong>휴업</Strong>은 사업자 지위는 유지한 채 일정 기간 영업만 중단하는 상태입니다.
|
||||
홈택스 또는 세무서에 휴업 신고를 하면 해당 기간 동안 부가세 신고 의무가 면제될 수
|
||||
있고, 이후 재개업 신고만으로 같은 사업자번호로 영업을 재개할 수 있습니다.
|
||||
</P>
|
||||
|
||||
<H2>세금 차이</H2>
|
||||
<H3>부가가치세</H3>
|
||||
<UL>
|
||||
<li>
|
||||
<Strong>폐업</Strong>: 폐업일이 속한 달 말일로부터 25일 이내 확정 신고.
|
||||
잔존재화는 의제공급으로 과세됩니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>휴업</Strong>: 휴업 기간 동안 영업 행위가 없으면 해당 과세기간의 부가세
|
||||
신고서에 매출·매입을 "0"으로 기재하거나 무실적 신고로 처리합니다. 잔존재화 과세는
|
||||
발생하지 않습니다.
|
||||
</li>
|
||||
</UL>
|
||||
<H3>종합소득세</H3>
|
||||
<UL>
|
||||
<li>휴업 중이라도 사업자 지위가 유지되므로 다음 해 5월에 종소세 신고 의무가 있습니다.</li>
|
||||
<li>폐업한 해는 그 다음 해 5월에 폐업일까지의 소득만으로 신고합니다.</li>
|
||||
</UL>
|
||||
|
||||
<H2>임대차 계약 유지 가능성</H2>
|
||||
<P>
|
||||
폐업을 하면 임대차 계약을 해지하거나 양도하는 것이 보통이고, 원상복구 의무가 즉시
|
||||
발생합니다. 반면 휴업은 사업자 지위가 유지되므로 임대차 계약도 그대로 유지하면서
|
||||
월세만 내는 구조가 됩니다.
|
||||
</P>
|
||||
<Note>
|
||||
월세가 높은 매장이라면 휴업 기간 동안 임대료 부담이 누적됩니다. 휴업을 선택하기
|
||||
전에 "언제 재개할 것인가"를 구체적으로 계획해야 의미가 있습니다. 재개 시점이
|
||||
불투명하다면 임대인과 감액 협상을 시도하거나 양도를 병행 검토해야 합니다.
|
||||
</Note>
|
||||
|
||||
<H2>지원금 수혜 자격</H2>
|
||||
<P>
|
||||
폐업과 휴업은 정부·지자체 지원 프로그램의 대상 요건에서 명확히 구분됩니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>
|
||||
<Strong>희망리턴패키지(사업정리·철거·재취업)</Strong>: 원칙적으로 폐업 예정 또는
|
||||
폐업 완료 사업자가 대상입니다. 휴업 사업자는 해당되지 않습니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>실업급여</Strong>: 폐업 후 재취업을 준비하는 경우 자영업자 고용보험 가입자는
|
||||
수급 가능성이 열립니다. 휴업 상태에서는 수급 대상이 아닙니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>소상공인 경영 안정 자금</Strong>: 영업 중(휴업 포함 시 조건부) 사업자가
|
||||
대상입니다. 폐업자는 대상에서 제외됩니다.
|
||||
</li>
|
||||
</UL>
|
||||
|
||||
<H2>언제 휴업이 유리한가</H2>
|
||||
<UL>
|
||||
<li>3~6개월 내 재개 계획이 명확하고 상권·인허가를 그대로 유지하고 싶을 때</li>
|
||||
<li>임대차 계약 잔여 기간이 짧아 곧 자연 종료 예정일 때</li>
|
||||
<li>특정 시즌성 사업으로 비수기에 일시 중단이 필요한 경우</li>
|
||||
<li>인허가(예: 면허) 취득이 까다로워 재발급 시 시간·비용 부담이 클 때</li>
|
||||
</UL>
|
||||
|
||||
<H2>언제 폐업이 유리한가</H2>
|
||||
<UL>
|
||||
<li>재개 계획이 없거나 재기 방향이 달라지는 경우</li>
|
||||
<li>고정비(월세·관리비) 부담이 매출 없이는 감당 불가한 경우</li>
|
||||
<li>희망리턴패키지·실업급여 등 폐업자 대상 지원을 활용해야 할 때</li>
|
||||
<li>잔존재화·감가 자산이 많지 않아 폐업 부가세 부담이 적은 경우</li>
|
||||
<li>양도·양수 가능성이 있어 권리금 일부 회수 여지가 있을 때</li>
|
||||
</UL>
|
||||
|
||||
<H2>결정 체크리스트</H2>
|
||||
<OL>
|
||||
<li>재개 시점이 구체적으로 있는가(3개월 이내/6개월 이내/미정)</li>
|
||||
<li>휴업 기간 동안 임대료·관리비 등 고정비를 감당할 현금흐름이 있는가</li>
|
||||
<li>이용하려는 지원금이 폐업자 대상인가 영업자 대상인가</li>
|
||||
<li>인허가가 재취득하기 어려운 업종인가</li>
|
||||
<li>잔존재화 과세 규모는 얼마인가(폐업 시)</li>
|
||||
<li>양도 가능성 검토는 했는가</li>
|
||||
</OL>
|
||||
|
||||
<P>
|
||||
한마디로 요약하면, <Strong>재개 시점이 확실하다면 휴업</Strong>, <Strong>방향 전환이나
|
||||
현금흐름 탈출이 필요하다면 폐업</Strong>이 유리합니다. 막연히 "일단 쉬자"는 휴업은
|
||||
누적 고정비 때문에 오히려 재기 기회를 줄일 수 있습니다.
|
||||
</P>
|
||||
</>
|
||||
),
|
||||
};
|
||||
@@ -0,0 +1,120 @@
|
||||
import { H2, H3, P, UL, OL, Strong, Note } from '../components';
|
||||
import type { BlogPost } from './types';
|
||||
|
||||
export const post: BlogPost = {
|
||||
slug: 'commercial-area-analysis',
|
||||
title: '상권 분석하는 방법 (무료 도구 활용)',
|
||||
description:
|
||||
'소상공인시장진흥공단 상권정보시스템, 통계청 SGIS, 카카오맵 등 무료 도구로 상권을 분석하는 실전 방법을 단계별로 정리합니다.',
|
||||
category: '창업',
|
||||
publishedAt: '2026-04-06',
|
||||
readMinutes: 9,
|
||||
content: () => (
|
||||
<>
|
||||
<P>
|
||||
상권 분석은 창업의 성패를 좌우하는 가장 중요한 단계입니다. 수천만 원짜리
|
||||
컨설팅을 받지 않아도, 정부·공공기관이 제공하는 무료 도구로 충분히 신뢰할 만한
|
||||
분석이 가능합니다. 이 글은 상권 분석에서 반드시 답해야 할 핵심 질문과,
|
||||
그 답을 얻기 위한 무료 도구 활용 순서를 정리합니다.
|
||||
</P>
|
||||
|
||||
<H2>상권 분석에서 반드시 답해야 할 3가지 질문</H2>
|
||||
<OL>
|
||||
<li><Strong>사람이 충분히 많은가?</Strong> — 유동 인구, 배후 거주·직장 인구</li>
|
||||
<li><Strong>돈을 쓸 사람들인가?</Strong> — 연령·소득·가구 구성</li>
|
||||
<li><Strong>경쟁이 감당 가능한가?</Strong> — 동종·유사 업종의 밀도와 매출</li>
|
||||
</OL>
|
||||
<P>
|
||||
이 세 질문에 수치로 답할 수 있으면 상권 분석의 7할은 끝난 셈입니다. 이제
|
||||
도구별 활용법을 살펴봅니다.
|
||||
</P>
|
||||
|
||||
<H2>1. 소상공인시장진흥공단 상권정보시스템</H2>
|
||||
<P>
|
||||
<Strong>sg.sbiz.or.kr</Strong>는 상권 분석의 기본 도구입니다. 지역·업종을
|
||||
지정하면 예상 매출, 유동 인구, 경쟁 점포 수, 폐업률 등을 한눈에 확인할 수 있습니다.
|
||||
</P>
|
||||
<H3>필수 확인 지표</H3>
|
||||
<UL>
|
||||
<li><Strong>업종별 평균 매출</Strong>: 후보 상권에서 동종 업종의 월평균 매출이 내 손익분기점 이상인지 확인</li>
|
||||
<li><Strong>유동 인구 시간대 분포</Strong>: 주중/주말, 시간대별 편차가 내 영업 시간과 맞는지 확인</li>
|
||||
<li><Strong>업종 밀집도</Strong>: 반경 500m 이내 동종 점포 수. 과포화 상권은 피하거나 차별화 전략 필요</li>
|
||||
<li><Strong>폐업률</Strong>: 평균 대비 폐업률이 높은 상권은 구조적 위험이 있을 가능성</li>
|
||||
</UL>
|
||||
|
||||
<H2>2. 통계청 SGIS 통계지리정보서비스</H2>
|
||||
<P>
|
||||
<Strong>sgis.kostat.go.kr</Strong>는 인구 구성과 가구 특성을 격자 단위로
|
||||
제공합니다. "내 고객이 누구인지"를 정의하는 데 가장 적합한 도구입니다.
|
||||
</P>
|
||||
<H3>핵심 조회 항목</H3>
|
||||
<UL>
|
||||
<li><Strong>연령대별 인구 비율</Strong>: 키즈 클래스면 유아·초등 인구, 주점이면 20~40대 직장인 인구</li>
|
||||
<li><Strong>가구 형태</Strong>: 1인 가구 밀집도, 가구당 자녀 수 등</li>
|
||||
<li><Strong>주택 유형</Strong>: 아파트·오피스텔·주택 비중으로 지역 성격 파악</li>
|
||||
<li><Strong>직장 인구</Strong>: 출퇴근 기반 매장(점심·퇴근 수요)에 필수 지표</li>
|
||||
</UL>
|
||||
|
||||
<H2>3. 카카오맵·네이버 지도로 경쟁점 스캔</H2>
|
||||
<P>
|
||||
지도 서비스는 "실제 영업 중인" 경쟁 점포를 확인하는 가장 빠른 방법입니다.
|
||||
</P>
|
||||
<OL>
|
||||
<li>후보 상권을 지도에 띄우고 반경 300m, 500m, 1km 세 단계로 원을 그립니다.</li>
|
||||
<li>같은 업종(예: 카페, 네일샵)을 검색해 점포 수와 위치를 기록합니다.</li>
|
||||
<li>각 경쟁점의 <Strong>리뷰 수·평점·주요 키워드</Strong>를 수집해 수요 규모와 고객 불만을 파악합니다.</li>
|
||||
<li>거리뷰로 실제 간판·매장 상태를 확인해 활성/휴면 여부를 판단합니다.</li>
|
||||
</OL>
|
||||
|
||||
<H2>4. 공공데이터포털로 심화 분석</H2>
|
||||
<P>
|
||||
<Strong>data.go.kr</Strong>에서는 지역별 사업체 수 추이, 업종별 창업·폐업 통계,
|
||||
카드 매출 데이터 등 수천 종의 데이터가 무료로 공개되어 있습니다. 엑셀만
|
||||
다룰 수 있으면 "최근 3년간 이 동네에서 카페가 몇 개 생기고 몇 개가 닫혔는지"
|
||||
같은 질문에 직접 답할 수 있습니다.
|
||||
</P>
|
||||
|
||||
<H2>5. 현장 실사 체크리스트</H2>
|
||||
<P>
|
||||
데이터 조사만으로는 절대 잡히지 않는 요소가 있습니다. 반드시 평일·주말을
|
||||
나눠 최소 2회 이상 현장을 방문하세요.
|
||||
</P>
|
||||
<UL>
|
||||
<li>아침·점심·저녁 시간대별로 실제 보행 인구를 15분간 세어 기록</li>
|
||||
<li>동선의 주요 방향(지하철역·버스정류장·주거지 방향)과 매장 접면 일치 여부</li>
|
||||
<li>주차·적재 가능 공간, 인접 매장의 주 고객층 관찰</li>
|
||||
<li>거리 청결도·조명·간판 노후도 등 상권 활력 지표</li>
|
||||
<li>주변 공실률(빈 점포 수)과 "임대" 문구의 설치 기간</li>
|
||||
</UL>
|
||||
|
||||
<H2>업종별 상권 적합도</H2>
|
||||
<UL>
|
||||
<li><Strong>카페·베이커리</Strong>: 유동 인구 + 체류 시간이 긴 상권(대학가, 오피스 밀집지)</li>
|
||||
<li><Strong>주점·이자카야</Strong>: 저녁 유동 인구와 직장 인구가 겹치는 지역</li>
|
||||
<li><Strong>네일·미용</Strong>: 재방문형 업종이므로 배후 주거 인구가 핵심</li>
|
||||
<li><Strong>학원·키즈 클래스</Strong>: 초등·유아 인구와 맞벌이 가구 비율이 높은 아파트 단지</li>
|
||||
<li><Strong>무인매장</Strong>: 24시간 유동이 있는 역세권, 원룸·오피스텔 밀집지</li>
|
||||
</UL>
|
||||
|
||||
<H2>주의해야 할 함정 사례</H2>
|
||||
<Note>
|
||||
"권리금이 저렴한 매물"은 대부분 이유가 있습니다. 장부상 매출이 좋아 보여도
|
||||
최근 6개월간 매출 추이가 하락세라면 권리금을 낮춰 파는 경우가 많습니다.
|
||||
반드시 월별 매출 추이, POS 데이터, 카드 매출 내역을 교차 검증하세요.
|
||||
</Note>
|
||||
<UL>
|
||||
<li><Strong>과거 영광 상권</Strong>: 5~10년 전 번성했으나 현재는 인구 이동으로 쇠퇴 중인 지역</li>
|
||||
<li><Strong>신도시 초기 상권</Strong>: 입주율이 낮아 초기 1~2년 매출이 예측치의 절반에도 못 미칠 수 있음</li>
|
||||
<li><Strong>핫플레이스 피크 진입</Strong>: 이미 임대료가 정점일 때 진입하면 수익성이 낮음</li>
|
||||
<li><Strong>단일 수요 의존</Strong>: 한 학교·한 회사에만 의존하는 상권은 휴업·이전에 취약</li>
|
||||
</UL>
|
||||
|
||||
<H2>정리</H2>
|
||||
<P>
|
||||
상권 분석은 데이터 3할, 현장 실사 3할, 업종 이해 4할입니다. 무료 도구로 확보한
|
||||
수치는 어디까지나 "평균"이며, 창업자의 눈으로 직접 확인한 동선·경쟁·분위기가
|
||||
최종 판단의 기준이 되어야 합니다.
|
||||
</P>
|
||||
</>
|
||||
),
|
||||
};
|
||||
@@ -0,0 +1,137 @@
|
||||
import { H2, H3, P, UL, OL, Strong, Note } from '../components';
|
||||
import type { BlogPost } from './types';
|
||||
|
||||
export const post: BlogPost = {
|
||||
slug: 'demolition-cost-by-industry',
|
||||
title: '매장 철거 비용 얼마나 들까? 업종별 가이드',
|
||||
description:
|
||||
'카페, 음식점, 주점, 미용실 등 업종별 매장 철거 비용의 평균 범위와 비용을 결정하는 요소, 견적을 비교할 때 확인해야 할 항목을 정리합니다.',
|
||||
category: '인테리어',
|
||||
publishedAt: '2026-04-14',
|
||||
readMinutes: 9,
|
||||
content: () => (
|
||||
<>
|
||||
<P>
|
||||
매장 철거 비용은 "평당 얼마"라는 단순 공식으로 계산되지 않습니다. 같은 10평
|
||||
매장이라도 카페와 주점의 철거비는 두 배 이상 차이가 날 수 있습니다. 폐기물
|
||||
종류, 설비 해체 난이도, 건물 구조, 작업 시간대까지 모두 가격에 반영되기
|
||||
때문입니다. 이 글에서는 2026년 기준으로 업종별 철거 비용의 평균 범위와
|
||||
견적서 검토 포인트를 정리했습니다.
|
||||
</P>
|
||||
|
||||
<H2>철거 비용을 결정하는 4가지 요소</H2>
|
||||
<H3>1. 전용 면적</H3>
|
||||
<P>
|
||||
가장 기본이 되는 변수입니다. 평당 단가로 계산하는 업체가 많지만, 매장이
|
||||
작을수록 평당 단가는 올라가는 경향이 있습니다. 인건비와 장비 투입은 면적과
|
||||
무관하게 고정적으로 발생하기 때문입니다. 보통 10평 이하 소형 매장은 평당
|
||||
25만 원 이상, 30평 이상 중형은 평당 15만~20만 원 수준으로 수렴합니다.
|
||||
</P>
|
||||
|
||||
<H3>2. 설비 종류와 해체 난이도</H3>
|
||||
<P>
|
||||
주방 후드, 냉장·냉동 시설, 덕트, 가스 배관, 칸막이, 수조 등 해체가 까다로운
|
||||
설비가 많을수록 비용은 올라갑니다. 특히 덕트와 가스 배관은 철거 과정에서
|
||||
안전 규정을 따라야 하므로 전문 인력이 투입됩니다.
|
||||
</P>
|
||||
|
||||
<H3>3. 폐기물 양과 종류</H3>
|
||||
<P>
|
||||
폐기물은 일반 폐기물, 건설 폐기물, 지정 폐기물로 구분되며 각각 처리 단가가
|
||||
다릅니다. 건설 폐기물은 톤당 8만~15만 원, 혼합 폐기물은 톤당 15만~25만 원
|
||||
수준입니다. 매장에 남은 가구와 집기 양에 따라 폐기물 처리비만 100만 원
|
||||
이상 차이가 날 수 있습니다.
|
||||
</P>
|
||||
|
||||
<H3>4. 공사 환경</H3>
|
||||
<P>
|
||||
엘리베이터가 없는 고층, 지하 매장, 야간 작업 제한이 있는 상권은 추가
|
||||
비용이 발생합니다. 번화가 1층 매장은 물류 진입이 어려워 별도 할증이 붙는
|
||||
경우도 있습니다.
|
||||
</P>
|
||||
|
||||
<H2>업종별 평균 철거 비용</H2>
|
||||
<P>
|
||||
아래 범위는 10평 기준 전면 철거(스켈레톤)의 대략적인 시장 가격대입니다.
|
||||
지역과 매장 상태에 따라 편차가 있습니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>
|
||||
<Strong>카페</Strong>: 약 250만~400만 원. 바 카운터, 제빙기, 에스프레소
|
||||
머신 배관, 타일 벽체 철거가 주요 비용 요인입니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>일반음식점</Strong>: 약 400만~700만 원. 주방 후드와 덕트,
|
||||
가스 배관, 바닥 방수층 해체 비용이 추가됩니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>주점·호프</Strong>: 약 500만~900만 원. 생맥주 배관, 대형 냉장고,
|
||||
화장실 증설 구조물 해체가 비용을 끌어올립니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>미용실</Strong>: 약 200만~350만 원. 샴푸대 배관, 거울 벽체,
|
||||
급배수 설비가 주요 작업 대상입니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>PC방</Strong>: 약 400만~650만 원. 파티션, 전용 전기 배선,
|
||||
덕트·흡연실 구조물 해체가 추가됩니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>편의점</Strong>: 약 300만~500만 원. 냉장·냉동 쇼케이스, 바닥
|
||||
전선관, 간판·사인물 철거가 포함됩니다.
|
||||
</li>
|
||||
</UL>
|
||||
|
||||
<H2>견적서에서 반드시 확인할 항목</H2>
|
||||
<OL>
|
||||
<li>
|
||||
<Strong>폐기물 처리비 포함 여부</Strong>: 철거 인건비만 견적에 넣고
|
||||
폐기물은 별도 청구하는 업체가 있습니다. 톤수와 종류별 단가를 명시해
|
||||
달라고 요청해야 합니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>부가세 포함 여부</Strong>: 구두로만 "포함"이라 하고 계약서에는
|
||||
별도라고 적는 사례가 흔합니다. 견적서에 부가세 라인이 있는지 확인합니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>작업 범위의 정의</Strong>: 천장·벽체·바닥 중 어디까지 해체하는지,
|
||||
간판·외부 사인물·어닝은 포함되는지 문구로 남깁니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>추가비용 발생 조건</Strong>: "예상치 못한 구조물 발견 시 협의"
|
||||
같은 모호한 조항은 분쟁의 씨앗입니다. 구체 단가 또는 상한선을 적습니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>원상복구 기준의 합의</Strong>: 임대인이 요구하는 복구 범위를
|
||||
철거 업체가 이해하고 반영했는지 확인합니다.
|
||||
</li>
|
||||
</OL>
|
||||
|
||||
<H2>저렴한 업체를 고를 때 빠지기 쉬운 함정</H2>
|
||||
<P>
|
||||
견적가가 타사 대비 30% 이상 저렴하다면 반드시 이유를 물어봐야 합니다.
|
||||
흔한 함정은 다음과 같습니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>폐기물 처리를 불법 투기·무허가 업체에 의존하는 경우</li>
|
||||
<li>부가세·현장 관리비를 견적서에서 누락한 경우</li>
|
||||
<li>작업 중 "구조물 추가 발견"을 이유로 비용을 재협상하는 경우</li>
|
||||
<li>현장 실사 없이 평당 단가로만 견적을 제시한 경우</li>
|
||||
</UL>
|
||||
<Note>
|
||||
가격만큼 중요한 것이 사업자 등록과 폐기물 처리업 허가 여부입니다. 허가
|
||||
없는 업체에 맡긴 폐기물이 불법 투기되면 배출자인 임차인에게도 과태료가
|
||||
부과될 수 있습니다.
|
||||
</Note>
|
||||
|
||||
<H2>요약 체크리스트</H2>
|
||||
<UL>
|
||||
<li>견적은 최소 3곳 이상에서 받고 현장 실사 동반을 요청</li>
|
||||
<li>폐기물 처리비·부가세·추가비용 조건을 견적서에 명시</li>
|
||||
<li>업종별 평균 범위와 대비해 지나치게 저렴한 견적은 사유 확인</li>
|
||||
<li>폐기물 처리업 허가와 사업자 등록 확인</li>
|
||||
<li>원상복구 기준을 임대인·업체와 3자 합의</li>
|
||||
</UL>
|
||||
</>
|
||||
),
|
||||
};
|
||||
@@ -0,0 +1,131 @@
|
||||
import { H2, H3, P, UL, OL, Strong, Note } from '../components';
|
||||
import type { BlogPost } from './types';
|
||||
|
||||
export const post: BlogPost = {
|
||||
slug: 'franchise-vs-independent',
|
||||
title: '프랜차이즈 vs 개인 창업, 장단점 비교',
|
||||
description:
|
||||
'가맹비·로열티가 있는 프랜차이즈와 모든 것을 직접 설계해야 하는 개인 창업 — 초기 비용, 운영 자율성, 리스크 면에서 어느 쪽이 적합한지 비교합니다.',
|
||||
category: '창업',
|
||||
publishedAt: '2026-04-08',
|
||||
readMinutes: 8,
|
||||
content: () => (
|
||||
<>
|
||||
<P>
|
||||
"처음 창업하는데 프랜차이즈가 안전할까요, 개인 창업이 나을까요?"는 상담 현장에서
|
||||
가장 많이 받는 질문입니다. 정답은 창업자의 자본·경험·기질·콘셉트에 따라 달라집니다.
|
||||
이 글은 두 방식의 구조를 6개 축으로 비교하고 각각이 유리한 상황을 정리합니다.
|
||||
</P>
|
||||
|
||||
<H2>프랜차이즈의 구조</H2>
|
||||
<P>
|
||||
프랜차이즈 창업의 비용은 흔히 보이는 "창업비용 5천만 원" 숫자보다 훨씬 복잡합니다.
|
||||
주요 항목은 다음과 같습니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li><Strong>가맹비</Strong>: 브랜드 사용 대가로 최초에 지불(500만~3,000만 원)</li>
|
||||
<li><Strong>교육비</Strong>: 운영 매뉴얼·레시피 교육 비용(수백만 원 수준)</li>
|
||||
<li><Strong>보증금(이행보증금)</Strong>: 원·부재료 외상 거래 담보로 예치</li>
|
||||
<li><Strong>인테리어·설비</Strong>: 본사 지정 업체를 통한 표준화된 공사</li>
|
||||
<li><Strong>로열티</Strong>: 매출의 일정 비율(0~5%) 또는 정액으로 매월 납부</li>
|
||||
<li><Strong>물류 마진</Strong>: 본사 지정 식자재·부자재의 단가에 포함된 마진</li>
|
||||
</UL>
|
||||
<P>
|
||||
가맹계약 전 <Strong>정보공개서</Strong>를 반드시 확인해야 합니다. 가맹본부의 재무
|
||||
상태, 최근 연도 가맹점 증감, 가맹점 평균 매출 등이 법적으로 공개됩니다.
|
||||
</P>
|
||||
|
||||
<H2>개인 창업의 구조</H2>
|
||||
<P>
|
||||
개인 창업은 브랜드·메뉴·공급망·인테리어·마케팅을 모두 창업자 본인이 설계합니다.
|
||||
비용 항목은 단순하지만, 각 항목에서 의사결정의 무게가 훨씬 큽니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li><Strong>인테리어·설비</Strong>: 견적 비교 가능, 시공 난이도에 따라 비용 변동 큼</li>
|
||||
<li><Strong>초기 재료·부자재</Strong>: 소싱 루트 직접 확보</li>
|
||||
<li><Strong>간판·브랜딩</Strong>: 로고·메뉴판·패키지 디자인 모두 직접</li>
|
||||
<li><Strong>마케팅</Strong>: SNS·블로그·배달 플랫폼 광고 운영</li>
|
||||
</UL>
|
||||
|
||||
<H2>초기 투자 비교</H2>
|
||||
<P>
|
||||
동일한 10평 카페를 기준으로 한 대략적인 비교입니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li><Strong>저가 커피 프랜차이즈</Strong>: 가맹비·보증금·인테리어·설비 포함 약 6,000만~9,000만 원</li>
|
||||
<li><Strong>개인 커피 창업</Strong>: 인테리어·설비·초기 재료 포함 약 4,000만~7,000만 원</li>
|
||||
</UL>
|
||||
<P>
|
||||
단순 총액으로는 개인 창업이 더 저렴한 경우가 많지만, 프랜차이즈는 "표준화된
|
||||
품질"을 즉시 확보할 수 있고 개인 창업은 "시행착오 비용"이 추가로 발생하기
|
||||
쉽다는 차이가 있습니다.
|
||||
</P>
|
||||
|
||||
<H2>수익 배분 구조</H2>
|
||||
<P>
|
||||
프랜차이즈의 실질 수익률은 단순 매출-원가 계산보다 낮아집니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li><Strong>본사 물류 마진</Strong>: 식자재 단가가 시장가보다 10~20% 높은 경우가 일반적</li>
|
||||
<li><Strong>월 로열티</Strong>: 매출 상승분의 일부가 자동으로 본사로 귀속</li>
|
||||
<li><Strong>광고 분담금</Strong>: 전사 마케팅 비용의 일부를 가맹점이 분담</li>
|
||||
</UL>
|
||||
<P>
|
||||
개인 창업은 이런 고정적 외부 비용이 없어 매출이 올랐을 때 <Strong>한계 이익이
|
||||
100% 본인에게 귀속</Strong>되는 구조입니다.
|
||||
</P>
|
||||
|
||||
<H2>브랜드 파워 vs 자율성</H2>
|
||||
<H3>프랜차이즈의 강점</H3>
|
||||
<UL>
|
||||
<li>초기부터 인지도 있는 간판으로 집객 효과</li>
|
||||
<li>검증된 레시피·매뉴얼로 품질 균일성 확보</li>
|
||||
<li>본사 공급망·POS·주문 시스템 등 인프라 제공</li>
|
||||
</UL>
|
||||
<H3>개인 창업의 강점</H3>
|
||||
<UL>
|
||||
<li>메뉴·가격·인테리어·운영 시간 전부 자유 설계</li>
|
||||
<li>고객 데이터와 단골 자산이 온전히 사업주에게 귀속</li>
|
||||
<li>본사 정책 변경(단가 인상, 강제 프로모션)에 흔들리지 않음</li>
|
||||
</UL>
|
||||
|
||||
<H2>리스크 비교</H2>
|
||||
<P>
|
||||
두 방식 모두 고유의 리스크가 있습니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li><Strong>프랜차이즈</Strong>: 본사 부실·이슈 발생 시 직영점·가맹점 동반 타격, 동일 상권 추가 출점에 의한 자가잠식, 계약 해지 시 인테리어 철거·원상복구 의무</li>
|
||||
<li><Strong>개인 창업</Strong>: 초기 인지도 0에서 시작, 품질·메뉴·마케팅 전반의 시행착오, 소싱·세무·노무 등 모든 영역을 직접 책임</li>
|
||||
</UL>
|
||||
|
||||
<Note>
|
||||
정보공개서는 공정거래위원회 가맹사업거래 홈페이지에서 누구나 무료로 열람할 수
|
||||
있습니다. 계약 전에 최근 3년간 가맹점 증감과 평균 매출, 분쟁 현황을 반드시
|
||||
확인하세요.
|
||||
</Note>
|
||||
|
||||
<H2>각각 유리한 상황</H2>
|
||||
<H3>프랜차이즈가 유리한 경우</H3>
|
||||
<UL>
|
||||
<li>창업 경험이 없고 매뉴얼·교육에 기반해 시작하고 싶을 때</li>
|
||||
<li>이미 검증된 브랜드의 유동 인구 효과가 필요한 상권일 때</li>
|
||||
<li>본업 병행 등으로 운영에 투입할 수 있는 시간이 제한적일 때</li>
|
||||
</UL>
|
||||
<H3>개인 창업이 유리한 경우</H3>
|
||||
<UL>
|
||||
<li>뚜렷한 콘셉트·전문 기술·레시피가 있을 때</li>
|
||||
<li>수익의 외부 유출(로열티·물류 마진)을 최소화하고 싶을 때</li>
|
||||
<li>장기적으로 자체 브랜드·다점포 확장을 계획할 때</li>
|
||||
</UL>
|
||||
|
||||
<H2>의사결정 체크리스트</H2>
|
||||
<OL>
|
||||
<li>관심 브랜드의 <Strong>정보공개서</Strong>를 열람하고 가맹점 평균 매출·폐업률을 확인했는가</li>
|
||||
<li>예상 월매출 대비 <Strong>로열티·물류 마진·광고 분담금</Strong>의 비율을 계산했는가</li>
|
||||
<li>개인 창업의 경우 3개 이상 인테리어·설비 견적을 비교했는가</li>
|
||||
<li>계약 해지·폐점 시 발생하는 원상복구·위약금 규정을 확인했는가</li>
|
||||
<li>창업자 본인의 운영 시간·체력·전문성 수준을 냉정하게 평가했는가</li>
|
||||
</OL>
|
||||
</>
|
||||
),
|
||||
};
|
||||
@@ -0,0 +1,132 @@
|
||||
import { H2, H3, P, UL, OL, Strong, Note } from '../components';
|
||||
import type { BlogPost } from './types';
|
||||
|
||||
export const post: BlogPost = {
|
||||
slug: 'hope-return-package',
|
||||
title: '희망리턴패키지 신청 방법과 혜택',
|
||||
description:
|
||||
'소상공인시장진흥공단의 희망리턴패키지 프로그램의 세 가지 트랙과 각 트랙의 지원 내용·신청 서류·선발 기준을 상세히 안내합니다.',
|
||||
category: '지원금',
|
||||
publishedAt: '2026-04-12',
|
||||
readMinutes: 9,
|
||||
content: () => (
|
||||
<>
|
||||
<P>
|
||||
희망리턴패키지는 소상공인시장진흥공단(소진공)이 운영하는 대표적인 폐업·재기
|
||||
지원 프로그램입니다. 폐업을 준비하는 단계부터 재취업·재창업으로 전환하는
|
||||
단계까지 한 번의 신청으로 연결해 주는 것이 특징입니다. 세 가지 트랙을 각각
|
||||
뜯어보고, 신청 실무를 정리했습니다.
|
||||
</P>
|
||||
|
||||
<H2>희망리턴패키지 개요</H2>
|
||||
<P>
|
||||
희망리턴패키지는 크게 <Strong>사업정리 컨설팅</Strong>, <Strong>점포 철거비 지원</Strong>,
|
||||
<Strong> 재취업·재창업 지원</Strong>의 세 트랙으로 구성됩니다. 신청자는 본인의
|
||||
상황에 맞는 트랙을 조합해 신청할 수 있습니다. 예산은 매년 배정되며, 선착순
|
||||
또는 예산 소진 시까지 접수합니다.
|
||||
</P>
|
||||
|
||||
<H2>1. 사업정리 컨설팅 트랙</H2>
|
||||
<P>
|
||||
폐업을 원활히 마무리하도록 세무·법률·부동산 전문가와 매칭해 주는 프로그램입니다.
|
||||
컨설턴트가 매장 현장을 방문하거나 비대면으로 1:1 상담을 진행합니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>세무 컨설팅: 부가세·종소세 폐업 신고, 잔여 재고 처리, 권리금 소득세 처리</li>
|
||||
<li>법률 컨설팅: 임대차 분쟁, 원상복구 의무 범위, 권리금 반환 청구 가능성</li>
|
||||
<li>부동산 컨설팅: 양도·양수 중개, 상권 분석, 권리금 책정</li>
|
||||
</UL>
|
||||
<P>
|
||||
컨설팅은 일반적으로 수 회차(회당 1~2시간)로 진행되며 자부담이 없거나 소액
|
||||
수준입니다(추정). 컨설팅만 단독 신청하는 것도 가능합니다.
|
||||
</P>
|
||||
|
||||
<H2>2. 점포 철거비 지원 트랙</H2>
|
||||
<P>
|
||||
폐업 시 임대인과의 계약에 따라 원상복구 의무가 있는 경우, 철거·폐기물 처리
|
||||
비용을 정부가 일부 환급해 주는 트랙입니다. 많은 소상공인이 실제로 큰 도움을
|
||||
받는 지원 항목입니다.
|
||||
</P>
|
||||
<H3>지원 범위</H3>
|
||||
<UL>
|
||||
<li>내부 시설물 철거(주방·인테리어·간판 등)</li>
|
||||
<li>철거 과정에서 발생하는 폐기물 처리 비용</li>
|
||||
<li>전기·가스·통신 설비 원상복구 비용</li>
|
||||
</UL>
|
||||
<H3>지원 한도(2026년 기준, 추정)</H3>
|
||||
<UL>
|
||||
<li>평당 약 13~15만원 기준으로 실비 지원</li>
|
||||
<li>최대 지원 한도는 공고별로 상이(통상 수백만원 단위)</li>
|
||||
<li>간판 철거는 별도 한도가 적용되는 경우도 있음</li>
|
||||
</UL>
|
||||
<H3>신청 순서</H3>
|
||||
<OL>
|
||||
<li>소상공인 지식배움터 또는 지역센터에 신청</li>
|
||||
<li>사전 대상 확정 통지 수령</li>
|
||||
<li>철거 시공 및 사진·영수증 보관</li>
|
||||
<li>사후 정산 서류 제출 → 지정 계좌로 환급</li>
|
||||
</OL>
|
||||
|
||||
<H2>3. 재취업·재창업 지원 트랙</H2>
|
||||
<P>
|
||||
폐업 후 재취업 또는 재창업으로 이어지도록 교육·수당·컨설팅을 제공합니다. 단순한
|
||||
현금 지원이 아니라, 교육 이수와 취업·창업 활동 실적을 전제로 한다는 점을
|
||||
기억해야 합니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>재취업 교육: 직무 교육 + 취업 알선 + 일부 수당</li>
|
||||
<li>재창업 교육: 업종 전환 교육, 창업 계획서 컨설팅, 후속 자금 연계</li>
|
||||
<li>멘토링: 선배 창업가 또는 전문가 1:1 멘토 매칭</li>
|
||||
</UL>
|
||||
|
||||
<H2>4. 공통 자격 요건</H2>
|
||||
<P>
|
||||
세 트랙 모두에 공통되는 기본 자격은 다음과 같습니다. 연도별 공고에 따라 세부
|
||||
조건이 조정될 수 있습니다.
|
||||
</P>
|
||||
<OL>
|
||||
<li>소상공인 요건 충족(업종별 상시근로자·매출액 기준)</li>
|
||||
<li>사업자등록 후 일정 기간(통상 60일 이상) 사업 영위</li>
|
||||
<li>국세·지방세 체납 없음</li>
|
||||
<li>유흥·사행성 등 제외 업종이 아닐 것</li>
|
||||
<li>동일 항목에 대한 중복 지원을 받지 않을 것</li>
|
||||
</OL>
|
||||
|
||||
<H2>5. 신청 절차</H2>
|
||||
<P>
|
||||
희망리턴패키지는 <Strong>소상공인 지식배움터(edu.sbiz.or.kr)</Strong>를 통한
|
||||
온라인 접수를 기본으로 합니다. 지역별 소상공인지원센터 방문 신청도 가능합니다.
|
||||
</P>
|
||||
<OL>
|
||||
<li>지식배움터 회원 가입 및 사업자 인증</li>
|
||||
<li>트랙 선택(사업정리 컨설팅 / 철거비 / 재취업·재창업) 후 신청서 작성</li>
|
||||
<li>필요 서류 업로드 또는 지역센터 제출</li>
|
||||
<li>자격 검토 및 대상 선정 통지</li>
|
||||
<li>트랙별 서비스 수행 및 사후 정산</li>
|
||||
</OL>
|
||||
|
||||
<H2>6. 서류 체크리스트</H2>
|
||||
<UL>
|
||||
<li>사업자등록증 사본</li>
|
||||
<li>임대차계약서 사본</li>
|
||||
<li>최근 부가세 신고서 또는 소득금액 증명원</li>
|
||||
<li>국세·지방세 완납 증명서</li>
|
||||
<li>철거 견적서(철거비 지원 신청 시)</li>
|
||||
<li>폐업 예정 사유서(자유 양식)</li>
|
||||
</UL>
|
||||
|
||||
<H2>7. 지원 시 주의점</H2>
|
||||
<UL>
|
||||
<li>철거 전 신청이 원칙 — 사후 신청은 지원 대상에서 제외될 수 있습니다.</li>
|
||||
<li>철거비는 "실비"가 원칙이므로 견적 부풀리기는 정산 지연 사유가 됩니다.</li>
|
||||
<li>컨설팅 중간에 양도가 성사되면 양도 중심으로 계약 지원을 받을 수도 있습니다.</li>
|
||||
<li>재취업·재창업 교육은 출석률 기준(통상 80% 이상)을 충족해야 수당이 지급됩니다.</li>
|
||||
</UL>
|
||||
<Note>
|
||||
Startover에 매장을 등록하면 양도 시도와 철거 견적을 병행할 수 있습니다.
|
||||
희망리턴패키지 철거비 지원에 필요한 견적서도 함께 확보할 수 있어 신청 속도가
|
||||
빨라집니다.
|
||||
</Note>
|
||||
</>
|
||||
),
|
||||
};
|
||||
@@ -0,0 +1,40 @@
|
||||
import type { BlogPost } from './types';
|
||||
|
||||
import { post as post01 } from './closure-guide-2026';
|
||||
import { post as post02 } from './closure-tax-guide';
|
||||
import { post as post03 } from './closure-vs-hiatus';
|
||||
import { post as post04 } from './restoration-cost-tips';
|
||||
import { post as post05 } from './closure-support-programs';
|
||||
import { post as post06 } from './startup-small-capital-2026';
|
||||
import { post as post07 } from './takeover-vs-newopen';
|
||||
import { post as post08 } from './commercial-area-analysis';
|
||||
import { post as post09 } from './franchise-vs-independent';
|
||||
import { post as post10 } from './startup-legal-checklist';
|
||||
import { post as post11 } from './closure-subsidy-2026';
|
||||
import { post as post12 } from './hope-return-package';
|
||||
import { post as post13 } from './re-startup-programs';
|
||||
import { post as post14 } from './demolition-cost-by-industry';
|
||||
import { post as post15 } from './interior-vendor-tips';
|
||||
import { post as post16 } from './restoration-obligation';
|
||||
import { post as post17 } from './startup-subsidy-programs';
|
||||
|
||||
export const POSTS: BlogPost[] = [
|
||||
post01, post02, post03, post04, post05,
|
||||
post06, post07, post08, post09, post10,
|
||||
post11, post12, post13, post14, post15,
|
||||
post16, post17,
|
||||
];
|
||||
|
||||
export function getPostBySlug(slug: string): BlogPost | undefined {
|
||||
return POSTS.find((p) => p.slug === slug);
|
||||
}
|
||||
|
||||
export function getPostsSortedByDate(): BlogPost[] {
|
||||
return [...POSTS].sort((a, b) => b.publishedAt.localeCompare(a.publishedAt));
|
||||
}
|
||||
|
||||
export function getPostsByCategory(category: BlogPost['category']): BlogPost[] {
|
||||
return POSTS.filter((p) => p.category === category);
|
||||
}
|
||||
|
||||
export type { BlogPost } from './types';
|
||||
@@ -0,0 +1,112 @@
|
||||
import { H2, H3, P, UL, OL, Strong, Note } from '../components';
|
||||
import type { BlogPost } from './types';
|
||||
|
||||
export const post: BlogPost = {
|
||||
slug: 'interior-vendor-tips',
|
||||
title: '인테리어 업체 선정 시 주의할 점 5가지',
|
||||
description:
|
||||
'견적 비교부터 표준 계약서, 중도금 지급 조건, 하자 보수 기간까지 — 인테리어 업체를 선정할 때 반드시 확인해야 할 5가지 체크 포인트를 정리합니다.',
|
||||
category: '인테리어',
|
||||
publishedAt: '2026-04-15',
|
||||
readMinutes: 8,
|
||||
content: () => (
|
||||
<>
|
||||
<P>
|
||||
인테리어 공사는 수천만 원이 오가는 계약이지만, 표준화된 거래 관행이 약해
|
||||
분쟁이 잦은 영역입니다. 한국소비자원 집계에 따르면 인테리어 관련 상담은
|
||||
매년 5천 건을 넘고 그중 절반 이상이 공사비 증액, 하자 보수, 공기 지연
|
||||
문제입니다. 업체 선정 단계에서 아래 5가지만 제대로 챙겨도 분쟁 가능성은
|
||||
크게 줄어듭니다.
|
||||
</P>
|
||||
|
||||
<H2>포인트 1. 견적서는 항목별로 비교해야 한다</H2>
|
||||
<P>
|
||||
총액만 비교하면 업체 간 품질 차이가 보이지 않습니다. 견적서는 반드시
|
||||
공종별·자재별로 단가가 분리되어야 하며, 최소 3곳 이상에서 동일한 양식으로
|
||||
받아야 비교가 가능합니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>철거·목공·전기·설비·도장·마감 등 공종별 인건비</li>
|
||||
<li>자재별 브랜드·규격·수량</li>
|
||||
<li>경비 항목(운반비, 청소비, 현장관리비)</li>
|
||||
<li>부가세 포함 여부</li>
|
||||
</UL>
|
||||
<P>
|
||||
특히 "일식 견적"이라며 한두 줄로 끝나는 견적서는 추후 증액의 여지가 큽니다.
|
||||
최소 20개 이상의 라인이 있는 상세 견적을 요구하세요.
|
||||
</P>
|
||||
|
||||
<H2>포인트 2. 현장 실사를 동반해야 한다</H2>
|
||||
<P>
|
||||
도면만 보고 나온 견적은 현장에서 반드시 변경됩니다. 바닥 수평, 벽체 기울기,
|
||||
배관 위치, 천장 높이, 전기 용량은 현장을 봐야 정확히 산정됩니다. 현장
|
||||
실사 없이 견적을 내는 업체는 "작업 중 발견"을 이유로 추가 비용을 청구할
|
||||
확률이 높습니다.
|
||||
</P>
|
||||
<Note>
|
||||
실사 때는 업체 대표나 실장급 담당자가 오는지 확인하세요. 영업 담당자만
|
||||
오는 경우 시공 단계에서 소통이 엇갈려 공사 품질이 떨어질 수 있습니다.
|
||||
</Note>
|
||||
|
||||
<H2>포인트 3. 계약서에 공사 범위와 자재 등급을 적는다</H2>
|
||||
<P>
|
||||
국토교통부·공정거래위원회가 배포한 인테리어 표준계약서에는 공사 범위,
|
||||
자재 목록, 공사 기간, 대금 지급 방법, 하자 담보 기간이 구체적으로 적혀
|
||||
있습니다. 업체가 자사 양식을 고집한다면 이 표준계약서 조항을 부속 합의서로
|
||||
첨부해 달라고 요구해야 합니다.
|
||||
</P>
|
||||
<H3>계약서에 반드시 포함할 조항</H3>
|
||||
<UL>
|
||||
<li>공사 범위(철거·전기·설비·마감까지 포함 여부)</li>
|
||||
<li>자재 브랜드·모델명·등급 — "동급 자재로 대체 가능"은 분쟁의 온상</li>
|
||||
<li>공사 기간과 지연 시 지체상금</li>
|
||||
<li>하자 담보 책임 기간(통상 방수 3년, 일반 공사 1~2년)</li>
|
||||
<li>중도 해지 시 기성고 정산 방식</li>
|
||||
</UL>
|
||||
|
||||
<H2>포인트 4. 지급 조건을 에스크로 또는 분할로 설계한다</H2>
|
||||
<P>
|
||||
공사비 전액을 선지급하면 중도 잠적 위험이 큽니다. 표준 권장안은 계약금
|
||||
10~20%, 중도금 40~50%, 잔금 30~40% 구조입니다. 중도금은 공정률에 따라
|
||||
단계별로 지급하고, 잔금은 준공 검수 후에 집행합니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>계약금은 10~20% 이내로 제한</li>
|
||||
<li>중도금 지급은 공정률 30%, 60% 등 객관 기준과 연동</li>
|
||||
<li>잔금은 하자 점검 후 최소 2주 유보 지급 조건 검토</li>
|
||||
<li>1천만 원 이상 공사는 에스크로 서비스 활용 가능</li>
|
||||
</UL>
|
||||
|
||||
<H2>포인트 5. 하자 보수 기간과 사후 관리 조건을 확인한다</H2>
|
||||
<P>
|
||||
건설산업기본법 시행령은 공사 종류별로 최소 1년에서 5년의 하자 담보 책임
|
||||
기간을 규정합니다. 인테리어 업체가 "보증 6개월"을 관행처럼 제시하는 경우가
|
||||
많은데, 이는 법정 기준보다 짧을 수 있습니다. 계약서에 다음을 명시하세요.
|
||||
</P>
|
||||
<UL>
|
||||
<li>하자 발생 시 방문 기한(통상 영업일 3~5일 이내)</li>
|
||||
<li>무상 보수 범위와 유상 보수 구분</li>
|
||||
<li>보수 불이행 시 손해배상 조항</li>
|
||||
</UL>
|
||||
|
||||
<H2>사례: 계약서 한 줄이 바꾼 분쟁 결과</H2>
|
||||
<P>
|
||||
서울 마포구에서 1층 카페 인테리어를 진행한 A씨는 "자재는 동급 이상으로
|
||||
대체 가능"이라는 조항에 서명했습니다. 업체는 계약된 포세린 타일 대신
|
||||
유사 규격의 저가 타일을 시공했고, 분쟁 과정에서 "동급"의 정의가 모호해
|
||||
손해 입증이 어려웠습니다. 반면 B씨는 자재를 브랜드·모델명까지 명시했고,
|
||||
다른 자재가 시공된 부분은 전액 재시공을 받아냈습니다. 계약서 한 줄의
|
||||
구체성이 수백만 원의 손해를 갈랐습니다.
|
||||
</P>
|
||||
|
||||
<H2>요약 체크리스트</H2>
|
||||
<UL>
|
||||
<li>견적은 최소 3곳, 공종·자재별 상세 견적으로 비교</li>
|
||||
<li>현장 실사는 시공 담당자 동반</li>
|
||||
<li>표준계약서 기준 공사 범위·자재 등급 명시</li>
|
||||
<li>지급 구조는 계약금·중도금·잔금 분할, 공정률 연동</li>
|
||||
<li>하자 담보 기간은 법정 기준 이상, 보수 기한 명시</li>
|
||||
</UL>
|
||||
</>
|
||||
),
|
||||
};
|
||||
@@ -0,0 +1,127 @@
|
||||
import { H2, H3, P, UL, OL, Strong, Note } from '../components';
|
||||
import type { BlogPost } from './types';
|
||||
|
||||
export const post: BlogPost = {
|
||||
slug: 're-startup-programs',
|
||||
title: '소상공인 재기 지원 프로그램 안내',
|
||||
description:
|
||||
'폐업 이후 재창업을 준비하는 소상공인을 위한 재기 지원 프로그램의 종류와 자격, 혜택 내용을 비교하고 신청 순서를 안내합니다.',
|
||||
category: '지원금',
|
||||
publishedAt: '2026-04-13',
|
||||
readMinutes: 9,
|
||||
content: () => (
|
||||
<>
|
||||
<P>
|
||||
폐업은 끝이 아니라 다음 시도의 출발점입니다. 정부와 공공기관은 폐업을 경험한
|
||||
소상공인이 재창업하도록 자금·교육·컨설팅을 결합한 재기 지원 프로그램을
|
||||
운영합니다. 대표 프로그램을 비교하고 신청 순서를 정리했습니다.
|
||||
</P>
|
||||
|
||||
<H2>재기 지원의 정의와 구조</H2>
|
||||
<P>
|
||||
재기 지원은 단순 생계비 지급이 아니라 <Strong>"재창업까지의 전 과정을 구조화하는
|
||||
프로그램"</Strong>입니다. 크게 네 축으로 구성됩니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>자금 축: 재창업 자금, 특례 보증</li>
|
||||
<li>교육 축: 재기 교육 바우처, 재창업 사관학교</li>
|
||||
<li>컨설팅 축: 업종 분석, 상권 분석, 창업 계획 검토</li>
|
||||
<li>네트워킹 축: 선배 창업가·멘토 매칭, 동기 창업자 그룹</li>
|
||||
</UL>
|
||||
|
||||
<H2>1. 재창업 자금 지원</H2>
|
||||
<P>
|
||||
대표적으로 중소벤처기업부 및 지역신용보증재단이 운영하는 <Strong>재창업 특례 보증</Strong>
|
||||
과 <Strong>재도전 성공패키지 자금</Strong>이 있습니다. 기존 폐업 과정에서 생긴
|
||||
신용 문제로 일반 대출이 어려운 경우에도 접근 가능한 트랙입니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>재창업 특례 보증: 지역신용보증재단을 통해 재창업 운영자금 보증</li>
|
||||
<li>한도: 업종·매출 계획에 따라 수천만~억원 단위(추정, 공고별 상이)</li>
|
||||
<li>금리: 일반 보증보다 낮은 우대 금리 적용</li>
|
||||
<li>심사: 재창업 계획서의 실현 가능성이 핵심 평가 요소</li>
|
||||
</UL>
|
||||
|
||||
<H2>2. 재기 컨설팅</H2>
|
||||
<P>
|
||||
소상공인시장진흥공단과 창업진흥원은 재기 희망자를 대상으로 단계별 컨설팅을
|
||||
제공합니다. 폐업 원인 분석부터 업종 전환, 신규 상권 분석까지 다룹니다.
|
||||
</P>
|
||||
<H3>컨설팅 주요 주제</H3>
|
||||
<UL>
|
||||
<li>이전 사업 실패 원인 분석(매출·원가·고객·운영)</li>
|
||||
<li>업종 유지 vs. 전환 판단</li>
|
||||
<li>신규 상권 후보지 평가</li>
|
||||
<li>재창업 계획서 작성 및 자금 조달 시뮬레이션</li>
|
||||
</UL>
|
||||
|
||||
<H2>3. 재기 교육 바우처</H2>
|
||||
<P>
|
||||
교육 바우처는 지정된 교육기관의 창업 교육을 수강할 수 있는 이용권 형태로
|
||||
제공됩니다. 한국외식업중앙회·소상공인연합회·대학 창업교육센터 등 다양한 곳에서
|
||||
사용 가능합니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>바우처 금액: 인당 약 100~200만원 내외(추정)</li>
|
||||
<li>사용 가능 교육: 업종별 실무 교육, 디지털 마케팅, 회계·세무</li>
|
||||
<li>사용 기한: 발급 후 일정 기간 내 사용 필요</li>
|
||||
</UL>
|
||||
|
||||
<H2>4. 재창업 사관학교</H2>
|
||||
<P>
|
||||
중소벤처기업부·창업진흥원이 운영하는 대표적 재기 프로그램입니다. 선발 경쟁이
|
||||
있는 대신, 선발 시 사업화 자금·교육·멘토링이 종합 패키지로 제공됩니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>대상: 폐업 경험이 있는 예비 재창업자</li>
|
||||
<li>기간: 통상 6개월~1년</li>
|
||||
<li>혜택: 사업화 자금(수천만원 단위, 추정), 전담 멘토, 투자사 연계 데모데이</li>
|
||||
<li>선발: 서류 → 면접 → 최종 심사 단계</li>
|
||||
</UL>
|
||||
|
||||
<H2>5. 자격 요건 공통점</H2>
|
||||
<OL>
|
||||
<li>직전 사업의 폐업 사실이 증빙될 것(폐업 사실 증명원)</li>
|
||||
<li>신청 시점에 소상공인 요건 또는 예비 창업자 요건 충족</li>
|
||||
<li>국세·지방세 체납이 없을 것</li>
|
||||
<li>금융 질서 문란자·신용회복 제외 대상이 아닐 것</li>
|
||||
<li>동일 목적의 타 지원사업과 중복 수급 제한</li>
|
||||
</OL>
|
||||
|
||||
<H2>6. 신청 전 준비 서류</H2>
|
||||
<UL>
|
||||
<li>폐업 사실 증명원(홈택스 발급)</li>
|
||||
<li>이전 사업의 부가세·종소세 신고 내역</li>
|
||||
<li>국세·지방세 완납 증명서</li>
|
||||
<li>신용정보조회서(보증·자금 지원 시)</li>
|
||||
<li>재창업 사업계획서(아이템·시장·자금·인력 계획 포함)</li>
|
||||
<li>대표자 주민등록등본·이력서</li>
|
||||
</UL>
|
||||
|
||||
<H2>7. 프로그램 비교 요약</H2>
|
||||
<P>
|
||||
재창업 준비 단계에 따라 활용할 프로그램을 다르게 선택하는 것이 좋습니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li><Strong>아직 아이디어 단계</Strong>: 재기 컨설팅 + 교육 바우처</li>
|
||||
<li><Strong>사업 아이템 확정</Strong>: 재창업 사관학교 지원</li>
|
||||
<li><Strong>오픈 준비·자금 필요</Strong>: 재창업 특례 보증 / 재도전 성공패키지</li>
|
||||
</UL>
|
||||
|
||||
<H2>재기 준비 체크리스트</H2>
|
||||
<UL>
|
||||
<li>폐업 신고 완료 및 폐업 사실 증명원 확보</li>
|
||||
<li>세금 체납 여부 확인 및 정리</li>
|
||||
<li>직전 사업 실패 원인 정리(자체 진단)</li>
|
||||
<li>희망 재창업 업종·상권 후보 최소 2개 선정</li>
|
||||
<li>사업계획서 초안 작성</li>
|
||||
<li>소상공인 지식배움터·창업진흥원 K-스타트업 공고 확인</li>
|
||||
</UL>
|
||||
<Note>
|
||||
Startover는 재창업을 준비하는 분에게도 도움이 됩니다. 이미 시설이 갖춰진 매장
|
||||
양수를 고려하면 초기 투자 부담을 크게 줄일 수 있고, 재기 지원금과 결합해
|
||||
자기자금 소요를 낮출 수 있습니다.
|
||||
</Note>
|
||||
</>
|
||||
),
|
||||
};
|
||||
@@ -0,0 +1,136 @@
|
||||
import { H2, H3, P, UL, OL, Strong, Note } from '../components';
|
||||
import type { BlogPost } from './types';
|
||||
|
||||
export const post: BlogPost = {
|
||||
slug: 'restoration-cost-tips',
|
||||
title: '매장 원상복구 비용 줄이는 방법',
|
||||
description:
|
||||
'원상복구 조항의 해석, 임대인 협상 포인트, 현장 실사 준비까지 — 불필요한 철거 비용을 줄이는 실전 팁을 정리합니다.',
|
||||
category: '폐업',
|
||||
publishedAt: '2026-04-07',
|
||||
readMinutes: 7,
|
||||
content: () => (
|
||||
<>
|
||||
<P>
|
||||
폐업 비용에서 가장 큰 덩어리는 철거와 원상복구입니다. 작은 카페라도 500만 원,
|
||||
중형 음식점이면 1,500만 원 이상까지 부담이 커집니다. 그러나 많은 사업자가
|
||||
실제로 해야 할 범위보다 과도하게 철거를 진행하고, 임대인과의 협상 기회를 놓쳐
|
||||
불필요한 비용을 지출합니다. 이 글에서는 원상복구 비용을 합리적으로 줄이는 방법을
|
||||
정리합니다.
|
||||
</P>
|
||||
|
||||
<H2>원상복구의 법적 정의</H2>
|
||||
<P>
|
||||
원상복구는 민법 제654조(임차인의 원상회복 의무)와 임대차 계약의 특약에 근거합니다.
|
||||
핵심은 "계약 개시 당시의 상태로 되돌려 놓아야 한다"는 것인데, 여기서 중요한 것이
|
||||
<Strong>최초 인수 시점의 상태</Strong>가 기준이라는 점입니다. 즉, 전 임차인의 인테리어를
|
||||
그대로 인수했다면 그 상태로 돌려주는 것이지, "공실 골조 상태"로 만들어야 하는
|
||||
것이 아닙니다.
|
||||
</P>
|
||||
<Note>
|
||||
판례도 임차인의 원상복구 의무 범위는 자신이 설치한 부분에 한정된다는 입장이
|
||||
많습니다(대법원 2019다252042 등 참조). 계약 당시 이미 있던 시설까지 철거할 의무는
|
||||
원칙적으로 없습니다.
|
||||
</Note>
|
||||
|
||||
<H2>계약서에서 반드시 확인할 조항</H2>
|
||||
<UL>
|
||||
<li>
|
||||
<Strong>원상복구 범위</Strong>: "원상으로 회복하여 반환한다"는 문구만 있는지,
|
||||
"공실 상태로 철거 반환"처럼 과도한 범위를 지정했는지 확인합니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>시설물 승계 조항</Strong>: "현 시설 인수" 또는 "시설 승계" 문구가 있다면
|
||||
그 시점 상태가 원상복구 기준이 됩니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>인테리어 무상 양도 조항</Strong>: "계약 종료 시 임차인의 시설은 임대인에게
|
||||
귀속된다"는 조항은 오히려 유리합니다 — 철거 의무가 면제될 수 있습니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>보증금 상계 조항</Strong>: 원상복구 미이행 시 보증금에서 공제한다는 조항의
|
||||
존재 여부와 공제 기준.
|
||||
</li>
|
||||
</UL>
|
||||
|
||||
<H2>임대인과의 협상 포인트</H2>
|
||||
<P>
|
||||
원상복구는 "해야 한다 vs 안 한다"의 문제가 아니라, 어디까지 할지를 합의하는 과정입니다.
|
||||
다음 포인트를 활용해 협상할 수 있습니다.
|
||||
</P>
|
||||
<OL>
|
||||
<li>
|
||||
<Strong>차기 임차인 유치</Strong>: 새 임차인이 현 인테리어를 일부 활용하고 싶다면
|
||||
철거를 하지 말라고 요청할 수 있습니다. 임대인에게도 공실 기간 단축이라는 이익이
|
||||
있어 협상에 응하기 쉽습니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>업종 유사성</Strong>: 차기 임차인이 같은 업종(예: 음식점→음식점)이라면
|
||||
주방 설비·배관·환기 시설을 남겨두는 것이 서로에게 이익입니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>부분 복구 제안</Strong>: 전체 공실화 대신 "바닥·벽체는 원상으로, 설비는
|
||||
잔존"처럼 부분 복구를 합의할 수 있습니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>현금 합의금</Strong>: 직접 철거하는 대신 임대인에게 일정 금액을 지급하고
|
||||
원상복구 의무를 면제받는 방식(합의금 < 실제 철거비)입니다.
|
||||
</li>
|
||||
</OL>
|
||||
|
||||
<H2>현장 실사와 사진 증빙</H2>
|
||||
<P>
|
||||
원상복구 분쟁의 90% 이상은 "계약 당시 상태"에 대한 입증에서 갈립니다. 다음
|
||||
증거를 확보해 두는 것이 결정적입니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>계약 체결 당시의 사진·동영상(날짜 메타데이터 포함)</li>
|
||||
<li>인수인계 확인서 또는 체크리스트</li>
|
||||
<li>시설 변경 이력에 대한 임대인 동의 문서</li>
|
||||
<li>이전 임차인과의 권리금 계약서(시설 인수 범위 기재)</li>
|
||||
</UL>
|
||||
|
||||
<H2>부분 원상복구 합의 방법</H2>
|
||||
<P>
|
||||
임대인이 전체 철거를 요구하는 경우에도 다음 순서로 협상하면 부분 복구로 조정 가능한
|
||||
경우가 많습니다.
|
||||
</P>
|
||||
<OL>
|
||||
<li>임대인의 실제 재임대 계획을 확인(동일 업종/이업종/직접 사용)</li>
|
||||
<li>동일 업종 매수 후보가 있다면 소개·연결 제안</li>
|
||||
<li>철거 항목을 세분화해 "남기면 좋은 것/반드시 철거할 것"을 분리 제시</li>
|
||||
<li>잔존 시설에 대한 무상 귀속 각서 작성(향후 원상복구 청구 방지)</li>
|
||||
</OL>
|
||||
|
||||
<H2>양도로 원상복구 의무 이전</H2>
|
||||
<P>
|
||||
가장 확실하게 원상복구 비용을 없애는 방법은 <Strong>양수인에게 매장을 넘기는 것</Strong>
|
||||
입니다. 권리 양도가 이루어지면 원상복구 의무는 신규 임차인에게 이전됩니다.
|
||||
권리금을 일부만 받더라도 철거비·폐기물비·시간 비용을 합치면 양도가 훨씬 유리한
|
||||
경우가 많습니다.
|
||||
</P>
|
||||
<Note>
|
||||
Startover는 매장을 한 번만 등록해도 양수인 후보와 철거·인테리어 업체에 동시에
|
||||
노출되어, 양도가 성사되지 않으면 곧바로 철거 매칭으로 연결됩니다. 양도가 진행되는
|
||||
동안 철거 업체 견적도 병행해 받아두면 의사결정이 빨라집니다.
|
||||
</Note>
|
||||
|
||||
<H2>비용 절감 체크리스트</H2>
|
||||
<UL>
|
||||
<li>최초 계약서의 원상복구·시설 승계 조항 재확인</li>
|
||||
<li>계약 당시 사진·인수 확인서 확보</li>
|
||||
<li>차기 임차인 유치 여부를 임대인에게 문의</li>
|
||||
<li>양도 가능성 검토를 철거 견적과 병행</li>
|
||||
<li>철거 견적 최소 3곳 비교(현장 실사 필수)</li>
|
||||
<li>계약서에 폐기물 처리비 포함 여부·추가비용 조건 명시</li>
|
||||
<li>부분 복구 또는 합의금 대체 가능성 협상</li>
|
||||
</UL>
|
||||
|
||||
<P>
|
||||
원상복구는 법적 의무이긴 하지만, 그 범위는 협상에 의해 크게 달라집니다. "해야 한다"는
|
||||
전제를 내려놓고, 계약서와 현장을 근거로 최소한의 범위를 합의하는 것이 폐업 비용을
|
||||
줄이는 가장 빠른 길입니다.
|
||||
</P>
|
||||
</>
|
||||
),
|
||||
};
|
||||
@@ -0,0 +1,127 @@
|
||||
import { H2, H3, P, UL, OL, Strong, Note } from '../components';
|
||||
import type { BlogPost } from './types';
|
||||
|
||||
export const post: BlogPost = {
|
||||
slug: 'restoration-obligation',
|
||||
title: '원상복구 의무, 어디까지 해야 할까?',
|
||||
description:
|
||||
'임차인의 원상복구 범위를 둘러싼 판례, 표준 계약서 조항, 양도 시 의무 이전 가능성을 사례와 함께 정리합니다.',
|
||||
category: '인테리어',
|
||||
publishedAt: '2026-04-16',
|
||||
readMinutes: 8,
|
||||
content: () => (
|
||||
<>
|
||||
<P>
|
||||
폐업을 앞두고 가장 부담되는 항목 중 하나가 원상복구입니다. 임대인은 "들어올
|
||||
때 상태로 되돌려 놓으라"고 요구하지만, 그 "들어올 때 상태"의 범위가 어디까지인지
|
||||
명확하지 않은 경우가 많습니다. 판례와 표준 계약서를 기준으로 원상복구 의무의
|
||||
합리적 범위를 정리했습니다.
|
||||
</P>
|
||||
|
||||
<H2>원상복구 의무의 법적 근거</H2>
|
||||
<P>
|
||||
민법 제615조는 "차주는 차용물을 반환할 때에 이를 원상에 회복하여야 한다"고
|
||||
규정합니다. 임대차 계약에도 준용되어, 임차인은 임차물을 반환할 때 원상으로
|
||||
회복할 의무를 집니다. 다만 이 조항은 추상적인 원칙일 뿐, 어디까지 복구해야
|
||||
하는지는 해석 문제로 남습니다.
|
||||
</P>
|
||||
|
||||
<H2>판례의 핵심: "현저한 변경"에 한정</H2>
|
||||
<P>
|
||||
대법원은 일관되게 "임차인의 원상복구 의무는 임차인이 임차물에 가한 변경에
|
||||
한정된다"는 입장을 취해왔습니다. 즉 임차인이 직접 설치·개조한 부분만
|
||||
복구하면 되고, 그 이전 임차인이 만든 변경이나 건물 자체의 노후는 임차인의
|
||||
복구 대상이 아니라는 뜻입니다.
|
||||
</P>
|
||||
<H3>판례가 인정하는 원칙</H3>
|
||||
<UL>
|
||||
<li>
|
||||
<Strong>통상 손모는 임차인 책임 아님</Strong>: 정상적 사용에 따른 벽지·
|
||||
바닥재 변색, 작은 흠집 등은 임대료에 이미 반영된 비용이므로 임차인이
|
||||
원상복구할 의무가 없다는 것이 다수 판례입니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>전 임차인이 시공한 부분은 원칙적으로 제외</Strong>: 현 임차인이
|
||||
들어왔을 때 이미 있었던 인테리어는, 별도 약정이 없는 한 현 임차인이
|
||||
복구할 의무가 없습니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>구조적 변경은 복구 의무</Strong>: 벽 철거, 화장실 증설, 칸막이
|
||||
신설처럼 현저한 변경은 복구가 원칙입니다.
|
||||
</li>
|
||||
</UL>
|
||||
|
||||
<H2>계약서 조항의 해석</H2>
|
||||
<P>
|
||||
실제 분쟁에서는 판례보다 계약서 문구가 우선 적용됩니다. 흔한 조항별 해석은
|
||||
다음과 같습니다.
|
||||
</P>
|
||||
<H3>"임차인은 반환 시 원상으로 복구한다"</H3>
|
||||
<P>
|
||||
가장 일반적인 조항입니다. 판례상 해석이 적용되어, 임차인이 직접 가한 변경만
|
||||
복구하면 됩니다. 전 임차인의 인테리어까지 철거할 의무는 없습니다.
|
||||
</P>
|
||||
|
||||
<H3>"임차인은 모든 인테리어를 철거하여 공실 상태로 반환한다"</H3>
|
||||
<P>
|
||||
"공실 상태" "스켈레톤 상태" 같은 문구가 있으면 전 임차인의 시설까지 모두
|
||||
철거해야 할 위험이 커집니다. 계약 시 반드시 수정을 요구하거나 "현 임차인이
|
||||
설치한 부분에 한함"을 부기해야 합니다.
|
||||
</P>
|
||||
|
||||
<H3>"원상복구 불이행 시 임대인이 복구하고 그 비용을 청구한다"</H3>
|
||||
<P>
|
||||
임대인이 시공한 뒤 비용 정산을 요구할 수 있는 조항입니다. 임대인이 실제
|
||||
드는 비용의 2~3배를 청구하는 사례가 많아 분쟁이 잦습니다. 가능하다면
|
||||
"임차인이 지정 업체를 통해 직접 복구한다"로 수정하세요.
|
||||
</P>
|
||||
|
||||
<H2>양도 시 의무 이전 가능성</H2>
|
||||
<P>
|
||||
매장을 양도하면 원상복구 의무도 함께 넘어갈 수 있을까요? 결론부터 말하면
|
||||
임대인 동의 없이는 불가능합니다. 임대차 계약은 임대인과 현 임차인 사이의
|
||||
계약이므로, 원상복구 의무를 이전하려면 임대인·현 임차인·신 임차인 3자가
|
||||
함께 승계 합의서를 작성해야 합니다.
|
||||
</P>
|
||||
<OL>
|
||||
<li>양도 전 임대인에게 임차권 승계 동의를 요청합니다.</li>
|
||||
<li>승계 합의서에 "신 임차인이 현재 시설을 인수하고, 퇴거 시 원상복구 의무를 승계한다"는 조항을 명시합니다.</li>
|
||||
<li>현 임차인은 이 합의서를 통해 원상복구 의무에서 완전히 해방됩니다.</li>
|
||||
</OL>
|
||||
<Note>
|
||||
합의서 없이 구두로만 넘기면, 추후 신 임차인이 원상복구를 하지 않을 경우
|
||||
임대인은 현 임차인에게도 책임을 물을 수 있습니다. 반드시 서면 3자
|
||||
합의가 필요합니다.
|
||||
</Note>
|
||||
|
||||
<H2>협상 포인트</H2>
|
||||
<UL>
|
||||
<li>
|
||||
<Strong>"현 상태 인수" 조건 활용</Strong>: 신규 임차인이 현 시설을 그대로
|
||||
쓰고 싶다면, 임대인과 협상해 원상복구 의무를 면제받을 수 있습니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>복구 범위를 계약서에 명시</Strong>: "바닥·벽체·천장 마감만 복구,
|
||||
설비·집기는 제외" 같은 구체 문구가 분쟁을 줄입니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>임대인 지정 업체 수용 여부</Strong>: 임대인이 특정 업체를 지정한다면,
|
||||
그 업체의 단가가 시장가 대비 적정한지 미리 확인합니다.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>보증금 상계 처리</Strong>: 원상복구비를 보증금에서 차감하도록
|
||||
합의하면, 별도 분쟁 없이 정산할 수 있습니다.
|
||||
</li>
|
||||
</UL>
|
||||
|
||||
<H2>실무 체크리스트</H2>
|
||||
<UL>
|
||||
<li>최초 입주 시 사진·동영상으로 현 상태를 기록</li>
|
||||
<li>계약서의 원상복구 조항을 판례 기준으로 해석 가능한지 검토</li>
|
||||
<li>전 임차인이 만든 변경은 복구 대상에서 제외됨을 인지</li>
|
||||
<li>양도 시 임대인 동의 하에 3자 승계 합의서 작성</li>
|
||||
<li>복구 범위와 업체 선정을 계약서에 구체적으로 명시</li>
|
||||
</UL>
|
||||
</>
|
||||
),
|
||||
};
|
||||
@@ -0,0 +1,132 @@
|
||||
import { H2, H3, P, UL, OL, Strong, Note } from '../components';
|
||||
import type { BlogPost } from './types';
|
||||
|
||||
export const post: BlogPost = {
|
||||
slug: 'startup-legal-checklist',
|
||||
title: '창업 전 꼭 알아야 할 법적 절차',
|
||||
description:
|
||||
'사업자등록부터 영업신고, 위생·소방 점검, 4대 보험 가입까지 — 창업자가 개업 전에 반드시 완료해야 하는 법적 절차를 체크리스트로 정리합니다.',
|
||||
category: '창업',
|
||||
publishedAt: '2026-04-10',
|
||||
readMinutes: 9,
|
||||
content: () => (
|
||||
<>
|
||||
<P>
|
||||
창업은 인테리어와 마케팅보다 "법적 절차"에서 더 자주 발목이 잡힙니다. 영업신고를
|
||||
하지 않고 개업했다가 과태료를 부과받거나, 위생교육을 이수하지 않아 개업일을
|
||||
미루는 사례가 매년 반복됩니다. 개업 전에 반드시 확인해야 하는 법적 절차를
|
||||
체크리스트 순서로 정리했습니다.
|
||||
</P>
|
||||
|
||||
<H2>1. 사업자등록 — 개업일로부터 20일 이내</H2>
|
||||
<P>
|
||||
사업자등록은 관할 세무서 또는 국세청 홈택스에서 온라인으로 신청할 수 있습니다.
|
||||
<Strong> 개업일로부터 20일 이내</Strong>에 신청하지 않으면 미등록 가산세가
|
||||
부과됩니다. 개업 준비 기간의 매입세액을 공제받으려면 오히려 개업 전에 미리
|
||||
사업자등록을 신청하는 것이 유리합니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>필요 서류: 신분증, 임대차계약서 사본, 허가·등록·신고 필증(해당 업종)</li>
|
||||
<li>간이과세자·일반과세자 선택: 연매출 예상이 약 1억 400만원(2026년 기준, 추정치) 이하라면 간이과세자 검토</li>
|
||||
<li>공동사업자 등록 시: 동업계약서 추가 제출</li>
|
||||
</UL>
|
||||
|
||||
<H2>2. 업종별 영업신고·허가</H2>
|
||||
<P>
|
||||
업종에 따라 사업자등록 전에 선행되어야 하는 신고·허가가 있습니다. 대표적인
|
||||
업종별 요구사항은 다음과 같습니다.
|
||||
</P>
|
||||
<H3>일반음식점 영업신고</H3>
|
||||
<UL>
|
||||
<li>관할 구청 위생과에 신고</li>
|
||||
<li>식품위생교육 이수증(신규 6시간) 필수</li>
|
||||
<li>건강진단결과서(보건증) 제출</li>
|
||||
<li>시설 기준: 조리장·세척시설·냉장냉동 설비 등 구비</li>
|
||||
</UL>
|
||||
<H3>휴게음식점 영업신고</H3>
|
||||
<UL>
|
||||
<li>카페·분식점·아이스크림 전문점 등이 해당</li>
|
||||
<li>주류 판매 불가 — 주류 판매 시 일반음식점으로 신고 필요</li>
|
||||
<li>식품위생교육 및 보건증 동일하게 요구</li>
|
||||
</UL>
|
||||
<H3>주류판매업 면허</H3>
|
||||
<UL>
|
||||
<li>주류 소매업 면허는 관할 세무서에서 발급</li>
|
||||
<li>편의점·마트 등 종합주류도매는 별도 요건</li>
|
||||
<li>영업 장소의 면적·위치 조건 확인 필요</li>
|
||||
</UL>
|
||||
|
||||
<H2>3. 위생교육과 보건증</H2>
|
||||
<P>
|
||||
식품접객업은 대표자 본인이 <Strong>식품위생교육</Strong>을 이수해야 하며, 신규
|
||||
교육은 6시간, 재교육은 매년 3시간이 기본입니다. 한국외식업중앙회·한국휴게음식업중앙회
|
||||
등 업종 협회에서 온라인으로 수강할 수 있습니다.
|
||||
</P>
|
||||
<P>
|
||||
<Strong>건강진단결과서(보건증)</Strong>는 식품을 취급하는 모든 직원이 보유해야
|
||||
하며, 보건소 또는 지정 의료기관에서 발급받습니다. 유효기간은 1년이며 만료 전
|
||||
재발급이 필요합니다.
|
||||
</P>
|
||||
|
||||
<H2>4. 소방안전 점검</H2>
|
||||
<P>
|
||||
일정 규모 이상의 영업장은 소방시설 설치 및 완공 신고가 필요합니다. 특히
|
||||
다중이용업소(휴게음식점·일반음식점·노래연습장·학원 등 중 일정 면적 이상)는
|
||||
<Strong> 다중이용업소 안전시설 완비 증명서</Strong>를 관할 소방서에서 발급받아야
|
||||
개업할 수 있습니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>비상구·유도등·자동화재탐지설비 확인</li>
|
||||
<li>가스 누설 경보기·소화기 비치</li>
|
||||
<li>실내 내장재 불연·난연 기준 준수</li>
|
||||
</UL>
|
||||
|
||||
<H2>5. 상표·상호 확인</H2>
|
||||
<P>
|
||||
개업 후 상표 분쟁을 피하려면 상호를 확정하기 전에 <Strong>특허정보검색서비스(KIPRIS)</Strong>
|
||||
에서 동일·유사 상표가 등록되어 있는지 확인해야 합니다. 이미 등록된 상표와
|
||||
동일·유사한 상호를 사용하면 상표권 침해로 간판 교체 및 손해배상 위험이 있습니다.
|
||||
</P>
|
||||
<OL>
|
||||
<li>KIPRIS에서 상표명·업종 분류 검색</li>
|
||||
<li>도메인 가용 여부도 함께 확인</li>
|
||||
<li>필요 시 상표 출원(약 20만원 내외, 추정치) 진행</li>
|
||||
</OL>
|
||||
|
||||
<H2>6. 4대 보험 가입 신고</H2>
|
||||
<P>
|
||||
직원을 한 명이라도 고용하면 국민연금·건강보험·고용보험·산재보험 가입 신고가
|
||||
의무입니다. 고용일로부터 14일 이내에 4대 사회보험 정보연계센터에서 일괄
|
||||
신고할 수 있습니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>대표자 본인도 국민연금·건강보험 지역가입 또는 직장가입 전환 확인</li>
|
||||
<li>일용근로자도 고용·산재보험 대상</li>
|
||||
<li>급여 지급 시 원천징수 및 간이지급명세서 제출 의무</li>
|
||||
</UL>
|
||||
|
||||
<H2>7. 통신판매업 신고(온라인 병행 시)</H2>
|
||||
<P>
|
||||
오프라인 매장과 함께 온라인 판매(스마트스토어·자사몰·배달앱 자체 판매 등)를
|
||||
운영한다면 <Strong>통신판매업 신고</Strong>가 필요합니다. 관할 구청 지역경제과에
|
||||
신청하며, 결제대행(PG) 가입증명서 또는 구매안전서비스 이용 확인증이 필수입니다.
|
||||
</P>
|
||||
|
||||
<H2>개업 전 최종 체크리스트</H2>
|
||||
<UL>
|
||||
<li>사업자등록 신청(개업일 전 또는 20일 이내)</li>
|
||||
<li>업종별 영업신고·허가 완료</li>
|
||||
<li>식품위생교육 이수증·보건증 보유</li>
|
||||
<li>소방 완비 증명서 발급(해당 업종)</li>
|
||||
<li>상호·상표 KIPRIS 검색 완료</li>
|
||||
<li>직원 채용 시 4대 보험 신고</li>
|
||||
<li>온라인 판매 병행 시 통신판매업 신고</li>
|
||||
</UL>
|
||||
<Note>
|
||||
창업 전 절차와 비용이 부담스럽다면, 기존 매장을 양수하는 방식도 고려할 수
|
||||
있습니다. Startover에서는 양도 매물을 업종·지역별로 비교해 권리금과 초기 설비
|
||||
투자 부담을 줄일 수 있습니다.
|
||||
</Note>
|
||||
</>
|
||||
),
|
||||
};
|
||||
@@ -0,0 +1,159 @@
|
||||
import { H2, H3, P, UL, OL, Strong, Note } from '../components';
|
||||
import type { BlogPost } from './types';
|
||||
|
||||
export const post: BlogPost = {
|
||||
slug: 'startup-small-capital-2026',
|
||||
title: '2026년 소자본 창업 아이템 TOP 10',
|
||||
description:
|
||||
'초기 투자 5천만 원 이하로 시작할 수 있는 2026년형 소자본 창업 아이템 10가지를 업종별 특징·손익 구조와 함께 정리합니다.',
|
||||
category: '창업',
|
||||
publishedAt: '2026-04-02',
|
||||
readMinutes: 10,
|
||||
content: () => (
|
||||
<>
|
||||
<P>
|
||||
고금리·고물가가 장기화되면서 대규모 투자를 수반한 창업은 점점 부담스러워지고
|
||||
있습니다. 반면에 인건비를 줄이거나 공간을 공유하거나 배달 채널만 운영하는
|
||||
방식의 소자본 모델은 빠르게 확산되고 있습니다. 이 글은 초기 투자 5천만 원
|
||||
이하로 시작할 수 있는 2026년형 소자본 창업 아이템 10가지를 정리합니다.
|
||||
각 아이템별로 예상 창업비용, 월매출 범위, 리스크 포인트를 함께 살펴봅니다.
|
||||
</P>
|
||||
|
||||
<Note>
|
||||
제시되는 창업비용·매출 수치는 업계 평균과 소상공인시장진흥공단 자료를 기반으로 한
|
||||
참고 범위이며, 실제 상권·면적·브랜드에 따라 크게 달라질 수 있습니다.
|
||||
</Note>
|
||||
|
||||
<H2>왜 지금 소자본 창업인가</H2>
|
||||
<P>
|
||||
소자본 창업이 주목받는 이유는 세 가지입니다. 첫째, 초기 투자 회수 기간이 짧아
|
||||
시장 반응에 빠르게 대응할 수 있습니다. 둘째, 인건비 비중이 낮은 모델이 많아
|
||||
1인 운영 또는 부부 운영이 가능합니다. 셋째, 실패 시 손실 규모가 통제 가능해
|
||||
재도전이 현실적입니다. 다만 마진율이 낮거나 경쟁이 포화된 업종도 많으므로
|
||||
아이템별 구조를 반드시 확인해야 합니다.
|
||||
</P>
|
||||
|
||||
<H2>TOP 10 아이템</H2>
|
||||
|
||||
<H3>1. 무인매장 (아이스크림·과자·밀키트)</H3>
|
||||
<UL>
|
||||
<li><Strong>예상 창업비용</Strong>: 3천만~5천만 원 (보증금 제외)</li>
|
||||
<li><Strong>월매출</Strong>: 500만~1,500만 원</li>
|
||||
<li><Strong>리스크</Strong>: 도난·재고 관리, 포화된 상권에서의 가격 경쟁</li>
|
||||
</UL>
|
||||
<P>
|
||||
인건비가 사실상 0원에 가깝지만 원가율이 높고 객단가가 낮아 유동 인구 밀집 상권이
|
||||
필수입니다. CCTV·키오스크·재고 순환 설계가 수익의 핵심입니다.
|
||||
</P>
|
||||
|
||||
<H3>2. 배달 전문 카페</H3>
|
||||
<UL>
|
||||
<li><Strong>예상 창업비용</Strong>: 2천만~4천만 원</li>
|
||||
<li><Strong>월매출</Strong>: 700만~2,000만 원</li>
|
||||
<li><Strong>리스크</Strong>: 배달 수수료·플랫폼 의존도</li>
|
||||
</UL>
|
||||
<P>
|
||||
홀 좌석이 없어 임대료가 낮고, 작은 면적(10~15평)으로도 운영이 가능합니다.
|
||||
배달 수수료와 프로모션 비용이 매출의 25~35%를 차지하므로 객단가와 리피터
|
||||
확보 전략이 중요합니다.
|
||||
</P>
|
||||
|
||||
<H3>3. 공유주방 입점</H3>
|
||||
<UL>
|
||||
<li><Strong>예상 창업비용</Strong>: 1천만~3천만 원</li>
|
||||
<li><Strong>월매출</Strong>: 500만~1,500만 원</li>
|
||||
<li><Strong>리스크</Strong>: 배달 채널 외 확장성 부족</li>
|
||||
</UL>
|
||||
<P>
|
||||
보증금과 인테리어 부담이 거의 없어 실패 시 손실이 가장 작은 모델입니다. 다만
|
||||
브랜드 확장이나 홀 운영으로 넘어가려면 별도 창업이 필요합니다.
|
||||
</P>
|
||||
|
||||
<H3>4. 네일샵</H3>
|
||||
<UL>
|
||||
<li><Strong>예상 창업비용</Strong>: 2천만~4천만 원</li>
|
||||
<li><Strong>월매출</Strong>: 400만~1,200만 원</li>
|
||||
<li><Strong>리스크</Strong>: 기술 숙련도·단골 확보까지의 공백기</li>
|
||||
</UL>
|
||||
<P>
|
||||
1인 운영이 가능하고 재료 원가율이 낮은 편입니다. SNS 포트폴리오가 사실상
|
||||
마케팅 채널이므로 운영자 본인의 기술과 컨텐츠 역량이 매출을 결정합니다.
|
||||
</P>
|
||||
|
||||
<H3>5. 서브 프랜차이즈(작은 면적·저가 커피 등)</H3>
|
||||
<UL>
|
||||
<li><Strong>예상 창업비용</Strong>: 4천만~5천만 원</li>
|
||||
<li><Strong>월매출</Strong>: 800만~1,800만 원</li>
|
||||
<li><Strong>리스크</Strong>: 가맹비·로열티, 본사 정책 변경</li>
|
||||
</UL>
|
||||
<P>
|
||||
브랜드 인지도와 매뉴얼의 도움으로 초보 창업자에게 유리하지만, 본사 의존도가
|
||||
높아 자율성이 낮습니다. 정보공개서와 가맹계약서를 반드시 숙지해야 합니다.
|
||||
</P>
|
||||
|
||||
<H3>6. 식자재 소분 판매</H3>
|
||||
<UL>
|
||||
<li><Strong>예상 창업비용</Strong>: 2천만~4천만 원</li>
|
||||
<li><Strong>월매출</Strong>: 500만~1,500만 원</li>
|
||||
<li><Strong>리스크</Strong>: 유통기한·폐기 손실</li>
|
||||
</UL>
|
||||
<P>
|
||||
1인 가구 증가로 수요가 꾸준히 성장 중입니다. 재고 회전율 관리와 소싱 루트
|
||||
확보가 마진의 핵심이며, 지역 밀착 상권일수록 유리합니다.
|
||||
</P>
|
||||
|
||||
<H3>7. 반려동물 용품 매장</H3>
|
||||
<UL>
|
||||
<li><Strong>예상 창업비용</Strong>: 3천만~5천만 원</li>
|
||||
<li><Strong>월매출</Strong>: 600만~1,700만 원</li>
|
||||
<li><Strong>리스크</Strong>: 온라인 쇼핑몰과의 가격 경쟁</li>
|
||||
</UL>
|
||||
<P>
|
||||
사료·간식은 마진이 낮지만 미용·호텔링·건강 케어 같은 서비스 매출을 결합하면
|
||||
수익성이 크게 개선됩니다. 반려인 밀집 아파트 단지 상권이 유리합니다.
|
||||
</P>
|
||||
|
||||
<H3>8. 셀프 세탁소(코인 세탁)</H3>
|
||||
<UL>
|
||||
<li><Strong>예상 창업비용</Strong>: 4천만~5천만 원(기기 리스 활용 시)</li>
|
||||
<li><Strong>월매출</Strong>: 400만~900만 원</li>
|
||||
<li><Strong>리스크</Strong>: 초기 투자 회수 기간이 김, 기기 고장</li>
|
||||
</UL>
|
||||
<P>
|
||||
24시간 무인 운영이 가능해 본업과 병행 창업으로도 많이 선택됩니다. 기숙사·원룸
|
||||
밀집 지역의 수요가 특히 안정적입니다.
|
||||
</P>
|
||||
|
||||
<H3>9. 1인 주점(작은 술집)</H3>
|
||||
<UL>
|
||||
<li><Strong>예상 창업비용</Strong>: 3천만~5천만 원</li>
|
||||
<li><Strong>월매출</Strong>: 700만~2,000만 원</li>
|
||||
<li><Strong>리스크</Strong>: 운영 시간이 늦고 체력 부담</li>
|
||||
</UL>
|
||||
<P>
|
||||
10평 내외의 소형 매장으로 운영 가능하며, 사장님의 색깔을 담은 메뉴·분위기가
|
||||
경쟁력입니다. 주류 원가율(25~30%)과 인건비 구조가 수익을 좌우합니다.
|
||||
</P>
|
||||
|
||||
<H3>10. 키즈 클래스(미술·코딩·체육)</H3>
|
||||
<UL>
|
||||
<li><Strong>예상 창업비용</Strong>: 2천만~4천만 원</li>
|
||||
<li><Strong>월매출</Strong>: 400만~1,200만 원</li>
|
||||
<li><Strong>리스크</Strong>: 학령 인구 감소, 방학 비수기</li>
|
||||
</UL>
|
||||
<P>
|
||||
학원법 대상이 아닌 교습소 형태로 시작할 수 있어 진입 장벽이 낮습니다. 학부모
|
||||
커뮤니티와 후기 관리가 매출 확장의 핵심입니다.
|
||||
</P>
|
||||
|
||||
<H2>창업 전 체크리스트</H2>
|
||||
<OL>
|
||||
<li>후보 아이템의 <Strong>원가율·인건비율·임대료율</Strong>을 각각 매출 대비 비중으로 계산</li>
|
||||
<li>상권 유동 인구와 경쟁점 밀도를 소상공인 상권정보시스템에서 확인</li>
|
||||
<li>동일 업종 최근 폐업률과 평균 유지 기간 확인</li>
|
||||
<li>자본금의 30% 이상은 운영 예비비로 남겨둘 것</li>
|
||||
<li>양도·양수 매물과 신규 개업 견적을 함께 비교해 초기 비용 최적화</li>
|
||||
</OL>
|
||||
</>
|
||||
),
|
||||
};
|
||||
@@ -0,0 +1,161 @@
|
||||
import { H2, H3, P, UL, OL, Strong, Note } from '../components';
|
||||
import type { BlogPost } from './types';
|
||||
|
||||
export const post: BlogPost = {
|
||||
slug: 'startup-subsidy-programs',
|
||||
title: '정부 창업 지원금 종류와 신청 방법',
|
||||
description:
|
||||
'예비창업패키지, 초기창업패키지, 청년창업사관학교 등 대표적인 정부 창업 지원 프로그램을 비교하고 신청 전략을 안내합니다.',
|
||||
category: '지원금',
|
||||
publishedAt: '2026-04-17',
|
||||
readMinutes: 10,
|
||||
content: () => (
|
||||
<>
|
||||
<P>
|
||||
정부가 운영하는 창업 지원 프로그램은 매년 예산과 대상이 변하지만, 전체
|
||||
구조는 비교적 안정적입니다. 중소벤처기업부를 중심으로 창업진흥원, 지방
|
||||
중소벤처기업청, 광역·기초 지자체가 서로 다른 단계의 창업을 지원합니다.
|
||||
대표적인 프로그램의 구조와 신청 전략을 정리했습니다.
|
||||
</P>
|
||||
|
||||
<H2>창업 지원금 생태계 개관</H2>
|
||||
<P>
|
||||
창업 단계는 흔히 예비창업기(사업자등록 전) → 초기창업기(3년 이내) →
|
||||
도약기(3~7년) → 재도전기로 나뉩니다. 단계별로 지원 프로그램과 주관 기관이
|
||||
다르므로, 본인이 속한 단계를 먼저 확인해야 합니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>예비창업기: 예비창업패키지, 청년창업사관학교(일부)</li>
|
||||
<li>초기창업기: 초기창업패키지, 창업도약패키지(연계)</li>
|
||||
<li>도약기: 창업도약패키지, TIPS 프로그램</li>
|
||||
<li>재도전기: 재도전 성공 패키지</li>
|
||||
</UL>
|
||||
|
||||
<H2>예비창업패키지</H2>
|
||||
<P>
|
||||
사업자등록을 하지 않은 예비 창업자를 대상으로 하는 대표 프로그램입니다.
|
||||
사업화 자금 최대 1억 원(평균 약 5천만 원)과 창업 교육, 전담 멘토링이
|
||||
제공됩니다.
|
||||
</P>
|
||||
<H3>자격 요건</H3>
|
||||
<UL>
|
||||
<li>공고일 기준 사업자등록 이력이 없는 자</li>
|
||||
<li>대학생·직장인·일반인 누구나 지원 가능</li>
|
||||
<li>선정 후 협약 기간 내 사업자등록 필수</li>
|
||||
</UL>
|
||||
<H3>신청 방법</H3>
|
||||
<P>
|
||||
매년 2~3월경 K-Startup 포털에 공고가 올라옵니다. 사업계획서 제출 → 서면
|
||||
평가 → 발표 평가의 3단계로 진행되며, 경쟁률은 5:1에서 10:1 수준입니다.
|
||||
</P>
|
||||
|
||||
<H2>초기창업패키지</H2>
|
||||
<P>
|
||||
사업자등록 후 3년 이내인 초기 창업 기업을 지원합니다. 사업화 자금 최대
|
||||
1억 원과 시제품 제작, 마케팅, 판로 개척 등을 지원합니다.
|
||||
</P>
|
||||
<H3>자격 요건</H3>
|
||||
<UL>
|
||||
<li>공고일 기준 창업 3년 이내 기업</li>
|
||||
<li>기술·제품 기반 창업에 우선순위</li>
|
||||
<li>재무제표와 사업자등록증 제출 필수</li>
|
||||
</UL>
|
||||
<H3>신청 전략</H3>
|
||||
<P>
|
||||
초기창업패키지는 매출·고용 실적이 평가에 크게 반영됩니다. 매출 규모보다
|
||||
성장률, 기술 차별성, 지식재산권 보유 여부가 점수에 유리하게 작용합니다.
|
||||
</P>
|
||||
|
||||
<H2>청년창업사관학교</H2>
|
||||
<P>
|
||||
만 39세 이하 기술창업자를 대상으로 1년간 집중 지원하는 프로그램입니다.
|
||||
중소벤처기업진흥공단이 운영하며, 전국 권역별로 입교생을 선발합니다.
|
||||
사업화 자금 최대 1억 원, 전용 공간, 전담 코치가 제공됩니다.
|
||||
</P>
|
||||
<H3>특징</H3>
|
||||
<UL>
|
||||
<li>기술 기반 창업에 한정(일반 도소매·음식점은 제외)</li>
|
||||
<li>입교 후 졸업 성과에 따라 후속 지원 연계</li>
|
||||
<li>전국 18개 권역(서울·인천·경기·부산 등)에서 선발</li>
|
||||
</UL>
|
||||
|
||||
<H2>재도전 성공 패키지</H2>
|
||||
<P>
|
||||
폐업 후 재창업에 나서는 기업가를 지원하는 프로그램입니다. 1회 이상 폐업
|
||||
경험이 있는 창업자에게 사업화 자금 최대 6천만 원과 교육, 멘토링을
|
||||
제공합니다.
|
||||
</P>
|
||||
<H3>자격 요건</H3>
|
||||
<UL>
|
||||
<li>폐업 후 3년 이내 재창업자</li>
|
||||
<li>재창업 업종에 제한(일부 유흥·사행업 제외)</li>
|
||||
<li>세금 체납·신용불량 해소 또는 정리 계획 제출</li>
|
||||
</UL>
|
||||
<Note>
|
||||
재도전 성공 패키지는 사업계획서에 "이전 폐업의 원인 분석과 재창업의
|
||||
차별점"을 구체적으로 담는 것이 핵심입니다. 단순히 새 아이템을 제시하는
|
||||
것보다, 실패를 어떻게 학습했는지 설득력 있게 써야 선정률이 올라갑니다.
|
||||
</Note>
|
||||
|
||||
<H2>중앙부처 vs 지자체 지원의 차이</H2>
|
||||
<P>
|
||||
위 프로그램들은 대부분 중앙부처(중소벤처기업부) 주관입니다. 별도로 각
|
||||
지자체가 운영하는 창업 지원 사업도 있으며, 중복 수혜가 가능한 경우와
|
||||
불가능한 경우가 섞여 있습니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>
|
||||
<Strong>중앙부처 지원</Strong>: 금액이 크고(최대 1억 원 수준), 전국
|
||||
경쟁이라 경쟁률 높음. 평가 기준이 엄격.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>지자체 지원</Strong>: 금액은 작지만(500만~5천만 원) 경쟁률이 낮고
|
||||
지역 특화 업종에 유리. 서울시 청년 창업, 경기도 기술창업, 부산 청년
|
||||
창업 등 다양.
|
||||
</li>
|
||||
</UL>
|
||||
|
||||
<H2>공통 제출 서류</H2>
|
||||
<OL>
|
||||
<li>사업계획서(정부 표준 양식 PSST 또는 프로그램별 양식)</li>
|
||||
<li>대표자 신분증·주민등록등본</li>
|
||||
<li>사업자등록증(해당 시)</li>
|
||||
<li>재무제표 또는 수입 증빙(해당 시)</li>
|
||||
<li>특허·지식재산권 증빙(가산점)</li>
|
||||
<li>청년 자격 증빙(만 39세 이하 대상 프로그램)</li>
|
||||
</OL>
|
||||
|
||||
<H2>선정 팁: 사업계획서 구성</H2>
|
||||
<P>
|
||||
정부 표준 사업계획서는 PSST 구조(Problem - Solution - Scale-up - Team)를
|
||||
따릅니다. 각 섹션을 균형 있게 작성하는 것이 중요합니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li>
|
||||
<Strong>Problem</Strong>: 시장 조사 데이터로 문제의 크기를 객관적으로
|
||||
제시. 통계청·시장조사기관 자료 인용.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>Solution</Strong>: 경쟁사 대비 차별점을 3가지로 요약. 기술 기반
|
||||
창업은 특허·기술성 강조.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>Scale-up</Strong>: 3~5년 매출·고용 계획을 수치로 제시. 지나친
|
||||
과장은 오히려 감점.
|
||||
</li>
|
||||
<li>
|
||||
<Strong>Team</Strong>: 대표자·핵심 팀원 경력과 역할 분담을 명확히.
|
||||
</li>
|
||||
</UL>
|
||||
|
||||
<H2>요약 체크리스트</H2>
|
||||
<UL>
|
||||
<li>본인 창업 단계(예비·초기·도약·재도전)를 먼저 확인</li>
|
||||
<li>K-Startup 포털에서 매년 공고 일정 확인</li>
|
||||
<li>사업계획서는 PSST 구조에 맞춰 작성</li>
|
||||
<li>중앙부처·지자체 지원의 중복 가능 여부 확인</li>
|
||||
<li>지식재산권·기술성 증빙을 가산점으로 확보</li>
|
||||
</UL>
|
||||
</>
|
||||
),
|
||||
};
|
||||
@@ -0,0 +1,114 @@
|
||||
import { H2, H3, P, UL, OL, Strong, Note } from '../components';
|
||||
import type { BlogPost } from './types';
|
||||
|
||||
export const post: BlogPost = {
|
||||
slug: 'takeover-vs-newopen',
|
||||
title: '창업 시 양도양수 vs 신규 개업 비교 분석',
|
||||
description:
|
||||
'권리금을 내고 기존 매장을 양도받는 것과 신규로 개업하는 것 — 초기 비용, 시장 검증, 리스크 측면에서 어떤 선택이 유리한지 비교합니다.',
|
||||
category: '창업',
|
||||
publishedAt: '2026-04-04',
|
||||
readMinutes: 8,
|
||||
content: () => (
|
||||
<>
|
||||
<P>
|
||||
창업을 결심했을 때 가장 먼저 부딪히는 갈림길은 "기존 매장을 양도받을까, 아예
|
||||
새로 차릴까"입니다. 두 방식은 초기 비용 구조, 수익 안정성, 리스크의 모양이
|
||||
완전히 다릅니다. 이 글은 양도양수와 신규 개업을 6개 축으로 비교하고,
|
||||
어떤 상황에 어떤 선택이 유리한지 정리합니다.
|
||||
</P>
|
||||
|
||||
<H2>양도양수의 장단점</H2>
|
||||
<H3>장점</H3>
|
||||
<UL>
|
||||
<li><Strong>시장 검증 완료</Strong>: 매출 장부가 있는 매장이라면 상권·업종의 수익성이 이미 증명되어 있습니다.</li>
|
||||
<li><Strong>초기 공사 비용 절감</Strong>: 인테리어·설비·가구를 그대로 인수하므로 별도 시공이 최소화됩니다.</li>
|
||||
<li><Strong>영업 공백 최소</Strong>: 기존 거래처·단골·메뉴를 이어받아 첫 달부터 매출이 발생합니다.</li>
|
||||
<li><Strong>인허가 이관 간소</Strong>: 일부 업종(일반음식점 등)은 명의 변경으로 허가를 승계할 수 있습니다.</li>
|
||||
</UL>
|
||||
<H3>단점</H3>
|
||||
<UL>
|
||||
<li><Strong>권리금 부담</Strong>: 시설권리금 + 영업권리금 + 바닥권리금이 수천만~수억 원에 이를 수 있습니다.</li>
|
||||
<li><Strong>숨겨진 부실</Strong>: 장부상 매출과 실제 매출이 다를 수 있고, 누수·노후 설비 등 숨은 비용이 존재합니다.</li>
|
||||
<li><Strong>브랜드 재정립 제약</Strong>: 기존 이미지가 굳어진 매장은 콘셉트 전환이 어렵습니다.</li>
|
||||
</UL>
|
||||
|
||||
<H2>신규 개업의 장단점</H2>
|
||||
<H3>장점</H3>
|
||||
<UL>
|
||||
<li><Strong>콘셉트·브랜드 자유</Strong>: 인테리어·메뉴·가격을 처음부터 본인 스타일로 설계할 수 있습니다.</li>
|
||||
<li><Strong>권리금 없음(또는 최소)</Strong>: 신축 상가·공실 상태의 상가는 권리금이 없거나 매우 낮습니다.</li>
|
||||
<li><Strong>최신 설비·디자인</Strong>: 트렌드에 맞는 설비와 공간으로 초기 주목도를 확보할 수 있습니다.</li>
|
||||
</UL>
|
||||
<H3>단점</H3>
|
||||
<UL>
|
||||
<li><Strong>시장 미검증 리스크</Strong>: 상권과 업종 조합이 실제 수익으로 이어질지 창업자가 감당해야 합니다.</li>
|
||||
<li><Strong>인테리어·설비 비용 집중</Strong>: 초기 투자 대부분이 공사·장비 비용에 쏠립니다.</li>
|
||||
<li><Strong>매출 램프업 구간</Strong>: 오픈 후 단골 확보까지 3~6개월의 손실 구간을 버텨야 합니다.</li>
|
||||
</UL>
|
||||
|
||||
<H2>초기 비용 비교</H2>
|
||||
<P>
|
||||
같은 10평 카페를 기준으로 단순 비교하면 다음과 같은 구조 차이가 나타납니다.
|
||||
</P>
|
||||
<UL>
|
||||
<li><Strong>양도양수</Strong>: 권리금 3,000만 원 + 보증금 2,000만 원 + 소액 리뉴얼 500만 원 ≈ 5,500만 원</li>
|
||||
<li><Strong>신규 개업</Strong>: 보증금 2,000만 원 + 인테리어 3,000만 원 + 설비·집기 1,500만 원 ≈ 6,500만 원</li>
|
||||
</UL>
|
||||
<P>
|
||||
초기 현금 규모는 비슷해 보이지만, 양도 방식은 "즉시 매출이 발생하는 매장"을,
|
||||
신규 방식은 "0원에서 시작하는 매장"을 얻는다는 점에서 실질 가치가 다릅니다.
|
||||
</P>
|
||||
|
||||
<H2>수익 안정성 차이</H2>
|
||||
<P>
|
||||
양도양수 매장은 3~6개월 내 안정화되는 경우가 많습니다. 반면 신규 개업은 첫
|
||||
6개월 매출이 목표치의 50~70% 수준에 머무는 것이 일반적입니다. 초기 운영 자금을
|
||||
최소 6개월치 고정비 이상 확보하지 못하면 신규 개업은 현실적으로 위험합니다.
|
||||
</P>
|
||||
|
||||
<H2>권리금의 기능과 회수 리스크</H2>
|
||||
<P>
|
||||
권리금은 크게 세 가지로 구성됩니다.
|
||||
</P>
|
||||
<OL>
|
||||
<li><Strong>시설권리금</Strong>: 인테리어·설비 등 유형 자산에 대한 대가</li>
|
||||
<li><Strong>영업권리금</Strong>: 단골·매출 흐름 등 무형 가치에 대한 대가</li>
|
||||
<li><Strong>바닥권리금</Strong>: 상권의 입지 프리미엄에 대한 대가</li>
|
||||
</OL>
|
||||
<P>
|
||||
권리금은 법적으로 보장된 금액이 아니며, 퇴점 시 다음 인수자에게 회수하는
|
||||
구조입니다. 상권 침체나 업종 트렌드 변화로 회수가 어려워질 수 있어
|
||||
<Strong> "권리금은 투자금이 아닌 비용" </Strong>으로 보는 시각이 현실적입니다.
|
||||
</P>
|
||||
|
||||
<H2>어떤 경우에 양도를, 어떤 경우에 신규를 선택할까</H2>
|
||||
<H3>양도양수가 유리한 경우</H3>
|
||||
<UL>
|
||||
<li>창업 경험이 없어 시장 검증이 된 매장이 안전하다고 판단될 때</li>
|
||||
<li>오픈 준비 기간을 짧게 가져가야 할 때</li>
|
||||
<li>해당 상권·업종의 평균 매출이 명확히 증명된 매물을 찾았을 때</li>
|
||||
</UL>
|
||||
<H3>신규 개업이 유리한 경우</H3>
|
||||
<UL>
|
||||
<li>뚜렷한 콘셉트·브랜드가 있고 공간 디자인의 자유도가 중요한 경우</li>
|
||||
<li>권리금이 과도하게 형성된 상권에서 대안 상권을 찾은 경우</li>
|
||||
<li>6개월 이상의 운영 예비비를 충분히 확보한 경우</li>
|
||||
</UL>
|
||||
|
||||
<Note>
|
||||
Startover는 폐업을 결심한 사장님의 매장을 양도 매물로 먼저 노출시켜, 창업자는
|
||||
검증된 매장을 더 낮은 권리금에 확보하고 양도인은 철거비를 아낄 수 있는 구조입니다.
|
||||
</Note>
|
||||
|
||||
<H2>최종 의사결정 체크리스트</H2>
|
||||
<OL>
|
||||
<li>현재 보유 자본의 30% 이상을 운영 예비비로 남길 수 있는가</li>
|
||||
<li>양도 매장의 경우 최근 12개월 매출 장부와 세금계산서를 검증했는가</li>
|
||||
<li>임대차 계약 잔여 기간과 재계약 조건을 임대인과 직접 확인했는가</li>
|
||||
<li>권리금은 회수 불확실한 비용으로 회계적으로 분리해 판단했는가</li>
|
||||
<li>신규 개업의 경우 최소 3개 견적의 인테리어·설비 비교를 완료했는가</li>
|
||||
</OL>
|
||||
</>
|
||||
),
|
||||
};
|
||||
@@ -0,0 +1,13 @@
|
||||
import type { ReactNode } from 'react';
|
||||
|
||||
export type BlogCategory = '폐업' | '창업' | '지원금' | '인테리어';
|
||||
|
||||
export interface BlogPost {
|
||||
slug: string;
|
||||
title: string;
|
||||
description: string;
|
||||
category: BlogCategory;
|
||||
publishedAt: string;
|
||||
readMinutes: number;
|
||||
content: () => ReactNode;
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
import type { Metadata } from 'next';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: '문의하기 | Startover',
|
||||
description: 'Startover 서비스 이용, 매장 등록, 업체 인증, 제휴에 관한 문의를 접수합니다.',
|
||||
alternates: { canonical: 'https://startover.co.kr/contact' },
|
||||
};
|
||||
|
||||
export default function ContactPage() {
|
||||
return (
|
||||
<main className="mx-auto max-w-3xl px-6 py-16 font-body">
|
||||
<p className="text-sm font-medium tracking-[0.2em] uppercase text-warm-600">Contact</p>
|
||||
<h1 className="mt-4 font-display text-4xl font-bold text-ink">문의하기</h1>
|
||||
<p className="mt-4 text-ink-light">
|
||||
서비스 이용, 매장 등록, 업체 인증, 제휴·언론 취재 등 궁금한 점을 아래 경로로 보내주세요.
|
||||
영업일 기준 1~2일 이내에 답변드립니다.
|
||||
</p>
|
||||
|
||||
<div className="mt-12 space-y-6">
|
||||
<div className="rounded-2xl border border-ink/5 bg-white/70 p-6 backdrop-blur-sm">
|
||||
<p className="text-xs font-medium tracking-widest uppercase text-ink-muted">일반 문의</p>
|
||||
<p className="mt-2 font-display text-xl font-bold text-ink">hello@startover.co.kr</p>
|
||||
<p className="mt-1 text-sm text-ink-light">서비스 이용, 매장 등록, 거래 절차 관련 문의</p>
|
||||
</div>
|
||||
|
||||
<div className="rounded-2xl border border-ink/5 bg-white/70 p-6 backdrop-blur-sm">
|
||||
<p className="text-xs font-medium tracking-widest uppercase text-ink-muted">업체 인증</p>
|
||||
<p className="mt-2 font-display text-xl font-bold text-ink">partners@startover.co.kr</p>
|
||||
<p className="mt-1 text-sm text-ink-light">철거·인테리어 업체 인증, 서비스 영역 확장 협의</p>
|
||||
</div>
|
||||
|
||||
<div className="rounded-2xl border border-ink/5 bg-white/70 p-6 backdrop-blur-sm">
|
||||
<p className="text-xs font-medium tracking-widest uppercase text-ink-muted">개인정보 보호</p>
|
||||
<p className="mt-2 font-display text-xl font-bold text-ink">privacy@startover.co.kr</p>
|
||||
<p className="mt-1 text-sm text-ink-light">개인정보 열람·정정·삭제 요청, 보호책임자 연락</p>
|
||||
</div>
|
||||
|
||||
<div className="rounded-2xl border border-ink/5 bg-white/70 p-6 backdrop-blur-sm">
|
||||
<p className="text-xs font-medium tracking-widest uppercase text-ink-muted">제휴·언론</p>
|
||||
<p className="mt-2 font-display text-xl font-bold text-ink">press@startover.co.kr</p>
|
||||
<p className="mt-1 text-sm text-ink-light">제휴 제안, 언론 취재 문의</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p className="mt-12 text-sm text-ink-muted">
|
||||
긴급한 거래 관련 사안은 가입하신 계정에서 해당 계약 페이지의 [분쟁 접수]를 이용해 주세요.
|
||||
</p>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,101 @@
|
||||
import type { Metadata } from 'next';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: '자주 묻는 질문 | Startover',
|
||||
description:
|
||||
'Startover 이용에 자주 묻는 질문과 답변을 모았습니다. 매장 등록, 거래 절차, 지원금, 인증 업체 관련 궁금증을 확인해 보세요.',
|
||||
alternates: { canonical: 'https://startover.co.kr/faq' },
|
||||
};
|
||||
|
||||
const FAQS = [
|
||||
{
|
||||
q: 'Startover에서 매장을 등록하려면 어떻게 해야 하나요?',
|
||||
a: '회원가입 후 [매장 등록] 메뉴에서 업종, 지역, 권리금, 월매출 등 기본 정보를 입력하면 초안이 생성됩니다. 운영팀 검수를 거쳐 공개가 승인되면 검색 결과에 노출됩니다.',
|
||||
},
|
||||
{
|
||||
q: '매장 등록은 무료인가요?',
|
||||
a: '현재 베타 기간 중에는 매장 등록과 기본 매칭이 무료입니다. 계약이 성사되어 에스크로 결제가 이루어지는 시점에 표준 중개 수수료가 발생합니다.',
|
||||
},
|
||||
{
|
||||
q: '권리금 회수기간은 어떻게 계산하나요?',
|
||||
a: '권리금 ÷ 월수익으로 계산한 개월 수를 표시합니다. 예를 들어 권리금 1억 2천만 원, 월수익 990만 원인 매장은 약 12개월의 권리금 회수기간을 가집니다.',
|
||||
},
|
||||
{
|
||||
q: '월매출과 월수익 정보는 누가 검증하나요?',
|
||||
a: '월매출·월수익은 매도인이 제공한 자료이며 법적 근거로 사용할 수 없습니다. 본 정보는 참고용이며, 실제 거래 전 반드시 실사와 세무 자료로 검증하시기 바랍니다.',
|
||||
},
|
||||
{
|
||||
q: '매장 검색은 어떤 조건으로 필터할 수 있나요?',
|
||||
a: '지역(강남권/마포권 등), 업종 대분류(휴게음식점/일반음식점/주류점 등), 소분류, 거래 상태(거래 가능/매칭 중) 기준으로 필터할 수 있습니다.',
|
||||
},
|
||||
{
|
||||
q: '정부 지원금은 어떻게 신청하나요?',
|
||||
a: '매장 상세 페이지에서 [지원금 확인] 버튼을 누르면 해당 매장이 받을 수 있는 지원금 프로그램 후보가 표시됩니다. 체크리스트와 서류 업로드 흐름을 따라가면 운영팀이 제출 가능 여부를 판단해 안내합니다.',
|
||||
},
|
||||
{
|
||||
q: '철거 업체나 인테리어 업체는 어떻게 고르나요?',
|
||||
a: '인증을 통과한 업체만 매칭 풀에 포함됩니다. 매장 등록 후 [매칭 요청 보내기]로 철거/인테리어 요청을 등록하면 지역·업종에 맞는 인증 업체에게 전달되고, 업체가 수락하면 계약 단계로 넘어갑니다.',
|
||||
},
|
||||
{
|
||||
q: '에스크로 결제는 어떤 방식으로 작동하나요?',
|
||||
a: '계약 체결 후 매수인이 입금한 권리금·공사비는 회사가 지정한 에스크로 계좌에 보관되며, 사전검수·중간검수·최종검수 단계별로 단계적으로 해제·정산됩니다.',
|
||||
},
|
||||
{
|
||||
q: '계약 후 분쟁이 발생하면 어떻게 하나요?',
|
||||
a: '계약 상세 페이지에서 분쟁 접수가 가능합니다. 접수된 분쟁은 운영팀이 배정되어 사실관계를 확인하고, 조정안을 제시하여 당사자 간 합의를 돕습니다.',
|
||||
},
|
||||
{
|
||||
q: '베타 지역 외 매장도 등록할 수 있나요?',
|
||||
a: '현재 베타는 강남권·마포권을 중심으로 운영되며, 이외 지역은 순차적으로 확장됩니다. 지역 확장 요청은 문의 페이지로 접수해 주시면 우선순위에 반영합니다.',
|
||||
},
|
||||
{
|
||||
q: '매장을 공개하지 않고 제한된 사람에게만 보여줄 수 있나요?',
|
||||
a: '네. 매장 공개 상태를 PRIVATE(비공개) 또는 RESTRICTED(제한 공개)로 설정할 수 있으며, 매칭이 성사된 상대방에게만 상세 정보가 공개되는 옵션도 제공합니다.',
|
||||
},
|
||||
{
|
||||
q: '서비스 관련 문의는 어디로 하면 되나요?',
|
||||
a: '[문의하기] 페이지를 통해 접수해 주시면 영업일 기준 1~2일 이내에 회신드립니다.',
|
||||
},
|
||||
];
|
||||
|
||||
export default function FaqPage() {
|
||||
const jsonLd = {
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'FAQPage',
|
||||
mainEntity: FAQS.map(({ q, a }) => ({
|
||||
'@type': 'Question',
|
||||
name: q,
|
||||
acceptedAnswer: { '@type': 'Answer', text: a },
|
||||
})),
|
||||
};
|
||||
|
||||
return (
|
||||
<main className="mx-auto max-w-3xl px-6 py-16 font-body">
|
||||
<script
|
||||
type="application/ld+json"
|
||||
dangerouslySetInnerHTML={{ __html: JSON.stringify(jsonLd) }}
|
||||
/>
|
||||
|
||||
<p className="text-sm font-medium tracking-[0.2em] uppercase text-warm-600">FAQ</p>
|
||||
<h1 className="mt-4 font-display text-4xl font-bold text-ink">자주 묻는 질문</h1>
|
||||
<p className="mt-4 text-ink-light">
|
||||
Startover 이용에 대해 자주 들어오는 질문과 답변을 정리했습니다.
|
||||
</p>
|
||||
|
||||
<div className="mt-12 space-y-4">
|
||||
{FAQS.map(({ q, a }, i) => (
|
||||
<details
|
||||
key={i}
|
||||
className="group rounded-2xl border border-ink/5 bg-white/70 p-6 backdrop-blur-sm"
|
||||
>
|
||||
<summary className="flex cursor-pointer items-start justify-between gap-4 list-none">
|
||||
<span className="font-display font-semibold text-ink">{q}</span>
|
||||
<span className="mt-1 shrink-0 text-ink-muted transition-transform group-open:rotate-45">+</span>
|
||||
</summary>
|
||||
<p className="mt-4 text-sm leading-relaxed text-ink-light">{a}</p>
|
||||
</details>
|
||||
))}
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
@@ -7,8 +7,51 @@ import { AuthButtons } from './auth-buttons';
|
||||
import './globals.css';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'Startover',
|
||||
description: 'Startover - 폐업 · 양도 · 창업을 잇는 중개 플랫폼',
|
||||
metadataBase: new URL('https://startover.co.kr'),
|
||||
title: {
|
||||
default: 'Startover | 폐업 · 양도 · 창업을 잇다',
|
||||
template: '%s | Startover',
|
||||
},
|
||||
description:
|
||||
'소상공인의 폐업 · 양도 · 창업을 한 흐름으로 연결합니다. 매장 한 번 등록으로 매수자, 철거·인테리어 업체와 매칭되고 정부 지원금 신청까지 이어집니다.',
|
||||
keywords: [
|
||||
'폐업',
|
||||
'양도',
|
||||
'창업',
|
||||
'권리금',
|
||||
'상가 양도',
|
||||
'소상공인',
|
||||
'점포 매매',
|
||||
'철거',
|
||||
'인테리어',
|
||||
'희망리턴패키지',
|
||||
],
|
||||
alternates: {
|
||||
canonical: 'https://startover.co.kr',
|
||||
},
|
||||
openGraph: {
|
||||
title: 'Startover | 폐업 · 양도 · 창업을 잇다',
|
||||
description: '소상공인의 폐업 · 양도 · 창업을 한 흐름으로 연결하는 중개 플랫폼',
|
||||
url: 'https://startover.co.kr',
|
||||
siteName: 'Startover',
|
||||
locale: 'ko_KR',
|
||||
type: 'website',
|
||||
},
|
||||
twitter: {
|
||||
card: 'summary_large_image',
|
||||
title: 'Startover | 폐업 · 양도 · 창업을 잇다',
|
||||
description: '폐업·양도·창업을 잇는 중개 플랫폼',
|
||||
},
|
||||
robots: {
|
||||
index: true,
|
||||
follow: true,
|
||||
googleBot: {
|
||||
index: true,
|
||||
follow: true,
|
||||
'max-image-preview': 'large',
|
||||
'max-snippet': -1,
|
||||
},
|
||||
},
|
||||
other: {
|
||||
'google-adsense-account': 'ca-pub-9505789508299290',
|
||||
},
|
||||
@@ -32,7 +75,7 @@ async function Navigation() {
|
||||
<Link href="/" className="font-display text-xl font-bold text-ink">
|
||||
Startover
|
||||
</Link>
|
||||
<div className="flex items-center gap-6">
|
||||
<div className="flex items-center gap-5">
|
||||
<Link href="/stores" className="text-sm text-ink-light hover:text-warm-600 transition-colors">
|
||||
매장 검색
|
||||
</Link>
|
||||
@@ -48,8 +91,11 @@ async function Navigation() {
|
||||
<Link href="/vendors" className="text-sm text-ink-light hover:text-warm-600 transition-colors">
|
||||
업체 인증
|
||||
</Link>
|
||||
<Link href="/contracts" className="text-sm text-ink-light hover:text-warm-600 transition-colors">
|
||||
계약
|
||||
<Link href="/blog" className="text-sm text-ink-light hover:text-warm-600 transition-colors">
|
||||
블로그
|
||||
</Link>
|
||||
<Link href="/faq" className="text-sm text-ink-light hover:text-warm-600 transition-colors">
|
||||
FAQ
|
||||
</Link>
|
||||
{isOperator && (
|
||||
<Link
|
||||
@@ -66,6 +112,51 @@ async function Navigation() {
|
||||
);
|
||||
}
|
||||
|
||||
function Footer() {
|
||||
return (
|
||||
<footer className="mt-24 border-t border-ink/5 bg-warm-50/60 font-body">
|
||||
<div className="mx-auto grid max-w-7xl grid-cols-2 gap-8 px-6 py-12 md:grid-cols-4">
|
||||
<div>
|
||||
<p className="font-display text-lg font-bold text-ink">Startover</p>
|
||||
<p className="mt-2 text-xs leading-relaxed text-ink-muted">
|
||||
폐업 · 양도 · 창업을 잇는
|
||||
<br />
|
||||
소상공인 중개 플랫폼
|
||||
</p>
|
||||
</div>
|
||||
<div>
|
||||
<p className="text-xs font-medium tracking-widest uppercase text-ink-muted">서비스</p>
|
||||
<ul className="mt-3 space-y-2 text-sm">
|
||||
<li><Link href="/stores" className="text-ink-light hover:text-warm-700">매장 검색</Link></li>
|
||||
<li><Link href="/stores/new" className="text-ink-light hover:text-warm-700">매장 등록</Link></li>
|
||||
<li><Link href="/subsidies" className="text-ink-light hover:text-warm-700">지원금</Link></li>
|
||||
<li><Link href="/vendors" className="text-ink-light hover:text-warm-700">업체 인증</Link></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<p className="text-xs font-medium tracking-widest uppercase text-ink-muted">알아보기</p>
|
||||
<ul className="mt-3 space-y-2 text-sm">
|
||||
<li><Link href="/about" className="text-ink-light hover:text-warm-700">회사 소개</Link></li>
|
||||
<li><Link href="/blog" className="text-ink-light hover:text-warm-700">블로그</Link></li>
|
||||
<li><Link href="/faq" className="text-ink-light hover:text-warm-700">자주 묻는 질문</Link></li>
|
||||
<li><Link href="/contact" className="text-ink-light hover:text-warm-700">문의하기</Link></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div>
|
||||
<p className="text-xs font-medium tracking-widest uppercase text-ink-muted">약관</p>
|
||||
<ul className="mt-3 space-y-2 text-sm">
|
||||
<li><Link href="/terms" className="text-ink-light hover:text-warm-700">이용약관</Link></li>
|
||||
<li><Link href="/privacy" className="text-ink-light hover:text-warm-700">개인정보처리방침</Link></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div className="border-t border-ink/5 px-6 py-4 text-center text-xs text-ink-muted">
|
||||
© 2026 Startover. All rights reserved.
|
||||
</div>
|
||||
</footer>
|
||||
);
|
||||
}
|
||||
|
||||
export default function RootLayout({
|
||||
children,
|
||||
}: Readonly<{
|
||||
@@ -84,6 +175,7 @@ export default function RootLayout({
|
||||
<body className="min-h-screen bg-warm-50 font-body">
|
||||
<Navigation />
|
||||
{children}
|
||||
<Footer />
|
||||
</body>
|
||||
</html>
|
||||
);
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
import type { Metadata } from 'next';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: '개인정보처리방침 | Startover',
|
||||
description: 'Startover 개인정보처리방침입니다.',
|
||||
alternates: { canonical: 'https://startover.co.kr/privacy' },
|
||||
};
|
||||
|
||||
export default function PrivacyPage() {
|
||||
return (
|
||||
<main className="mx-auto max-w-3xl px-6 py-16 font-body">
|
||||
<h1 className="font-display text-3xl font-bold text-ink">개인정보처리방침</h1>
|
||||
<p className="mt-2 text-sm text-ink-muted">최종 개정일: 2026년 1월 1일</p>
|
||||
|
||||
<section className="mt-10 space-y-6 text-ink-light leading-relaxed">
|
||||
<p>
|
||||
Startover(이하 "회사")는 이용자의 개인정보를 중요시하며, 「개인정보 보호법」과
|
||||
관련 법령을 준수합니다. 본 개인정보처리방침은 회사가 수집하는 개인정보의 항목과
|
||||
이용 목적, 보유 기간, 제3자 제공 여부 및 이용자의 권리를 설명합니다.
|
||||
</p>
|
||||
|
||||
<h2 className="font-display text-xl font-bold text-ink">1. 수집하는 개인정보 항목</h2>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>
|
||||
<strong>회원가입·로그인</strong>: 이메일, 이름, 비밀번호(암호화), 연락처, 소셜 로그인 식별자
|
||||
</li>
|
||||
<li>
|
||||
<strong>매장 등록·거래</strong>: 사업자등록번호, 매장 소재지, 권리금·월세 등 거래 정보
|
||||
</li>
|
||||
<li>
|
||||
<strong>자동 수집</strong>: 접속 IP, 쿠키, 서비스 이용 기록
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 className="font-display text-xl font-bold text-ink">2. 개인정보의 이용 목적</h2>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>회원 식별 및 본인 확인</li>
|
||||
<li>매칭, 계약, 정산 등 서비스 제공</li>
|
||||
<li>정부 지원금 자격 확인을 위한 최소 정보 검증</li>
|
||||
<li>공지사항 및 약관 변경 등 필수 알림 발송</li>
|
||||
<li>서비스 개선 및 부정 이용 방지</li>
|
||||
</ul>
|
||||
|
||||
<h2 className="font-display text-xl font-bold text-ink">3. 개인정보의 보유 및 이용 기간</h2>
|
||||
<p>
|
||||
이용자의 개인정보는 원칙적으로 수집 및 이용 목적이 달성되면 지체 없이 파기합니다.
|
||||
다만, 관계 법령에 따라 보존할 필요가 있는 경우 해당 기간 동안 보관합니다.
|
||||
</p>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>계약 또는 청약철회 등에 관한 기록: 5년</li>
|
||||
<li>대금결제 및 재화 공급에 관한 기록: 5년</li>
|
||||
<li>소비자 불만 또는 분쟁처리에 관한 기록: 3년</li>
|
||||
</ul>
|
||||
|
||||
<h2 className="font-display text-xl font-bold text-ink">4. 개인정보의 제3자 제공</h2>
|
||||
<p>
|
||||
회사는 이용자의 동의 없이 개인정보를 외부에 제공하지 않습니다. 다만, 다음의 경우에는
|
||||
예외적으로 제공될 수 있습니다.
|
||||
</p>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>이용자가 매칭에 동의하여 상대방에게 정보가 전달되는 경우</li>
|
||||
<li>법령에 의하여 수사기관 또는 감독기관이 정당한 절차에 따라 요청하는 경우</li>
|
||||
</ul>
|
||||
|
||||
<h2 className="font-display text-xl font-bold text-ink">5. 이용자의 권리와 행사 방법</h2>
|
||||
<p>
|
||||
이용자는 언제든지 본인의 개인정보를 조회·수정할 수 있으며, 탈퇴를 통해 개인정보의
|
||||
처리 정지 또는 삭제를 요청할 수 있습니다.
|
||||
</p>
|
||||
|
||||
<h2 className="font-display text-xl font-bold text-ink">6. 개인정보의 안전성 확보 조치</h2>
|
||||
<p>
|
||||
회사는 개인정보의 안전한 처리를 위해 암호화(비밀번호, 주요 식별정보), 접근 권한 관리,
|
||||
접속 기록 보관, 물리적·기술적 보안 조치를 시행합니다.
|
||||
</p>
|
||||
|
||||
<h2 className="font-display text-xl font-bold text-ink">7. 개인정보 보호 책임자</h2>
|
||||
<p>
|
||||
개인정보 처리와 관련한 문의는 아래 연락처로 접수해 주시기 바랍니다.
|
||||
</p>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>이메일: privacy@startover.co.kr</li>
|
||||
<li>문의 페이지: <a href="/contact" className="text-warm-700 underline">startover.co.kr/contact</a></li>
|
||||
</ul>
|
||||
</section>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
import type { MetadataRoute } from 'next';
|
||||
|
||||
export default function robots(): MetadataRoute.Robots {
|
||||
return {
|
||||
rules: [
|
||||
{
|
||||
userAgent: '*',
|
||||
allow: '/',
|
||||
disallow: ['/admin/', '/api/', '/auth/'],
|
||||
},
|
||||
],
|
||||
sitemap: 'https://startover.co.kr/sitemap.xml',
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
import type { MetadataRoute } from 'next';
|
||||
import { POSTS } from './blog/posts';
|
||||
|
||||
const BASE_URL = 'https://startover.co.kr';
|
||||
|
||||
export default function sitemap(): MetadataRoute.Sitemap {
|
||||
const now = new Date();
|
||||
|
||||
const staticRoutes: MetadataRoute.Sitemap = [
|
||||
{ url: `${BASE_URL}/`, lastModified: now, changeFrequency: 'weekly', priority: 1.0 },
|
||||
{ url: `${BASE_URL}/about`, lastModified: now, changeFrequency: 'monthly', priority: 0.7 },
|
||||
{ url: `${BASE_URL}/faq`, lastModified: now, changeFrequency: 'monthly', priority: 0.7 },
|
||||
{ url: `${BASE_URL}/contact`, lastModified: now, changeFrequency: 'monthly', priority: 0.5 },
|
||||
{ url: `${BASE_URL}/terms`, lastModified: now, changeFrequency: 'yearly', priority: 0.3 },
|
||||
{ url: `${BASE_URL}/privacy`, lastModified: now, changeFrequency: 'yearly', priority: 0.3 },
|
||||
{ url: `${BASE_URL}/stores`, lastModified: now, changeFrequency: 'daily', priority: 0.9 },
|
||||
{ url: `${BASE_URL}/blog`, lastModified: now, changeFrequency: 'weekly', priority: 0.8 },
|
||||
];
|
||||
|
||||
const blogRoutes: MetadataRoute.Sitemap = POSTS.map((post) => ({
|
||||
url: `${BASE_URL}/blog/${post.slug}`,
|
||||
lastModified: new Date(post.publishedAt),
|
||||
changeFrequency: 'monthly',
|
||||
priority: 0.6,
|
||||
}));
|
||||
|
||||
return [...staticRoutes, ...blogRoutes];
|
||||
}
|
||||
@@ -36,6 +36,7 @@ async function handleDeleteDraft(formData: FormData) {
|
||||
|
||||
await prisma.$transaction(async (tx) => {
|
||||
await tx.storeLease.deleteMany({ where: { storeId: store.id } });
|
||||
await tx.storeSale.deleteMany({ where: { storeId: store.id } });
|
||||
await tx.storeFacility.deleteMany({ where: { storeId: store.id } });
|
||||
await tx.store.delete({ where: { id: store.id } });
|
||||
});
|
||||
@@ -43,6 +44,24 @@ async function handleDeleteDraft(formData: FormData) {
|
||||
redirect('/stores');
|
||||
}
|
||||
|
||||
function formatKRW(value: number | null | undefined): string {
|
||||
if (value == null) return '-';
|
||||
return `${Number(value).toLocaleString('ko-KR')}원`;
|
||||
}
|
||||
|
||||
function formatMargin(sales?: number | null, profit?: number | null): string {
|
||||
if (!sales || !profit) return '-';
|
||||
const pct = (Number(profit) / Number(sales)) * 100;
|
||||
return `${pct.toFixed(1)}%`;
|
||||
}
|
||||
|
||||
function formatPaybackMonths(premium?: number | null, profit?: number | null): string {
|
||||
if (!premium || !profit) return '-';
|
||||
const months = Number(premium) / Number(profit);
|
||||
if (months >= 12) return `${(months / 12).toFixed(1)}년`;
|
||||
return `${months.toFixed(1)}개월`;
|
||||
}
|
||||
|
||||
export default async function StoreDetailPage({ params }: { params: Promise<{ id: string }> }) {
|
||||
const { id } = await params;
|
||||
const prisma = createPrismaClient();
|
||||
@@ -51,9 +70,15 @@ export default async function StoreDetailPage({ params }: { params: Promise<{ id
|
||||
where: { publicId: id },
|
||||
include: {
|
||||
regionCluster: { select: { nameKo: true } },
|
||||
industryLeaf: { select: { nameKo: true } },
|
||||
industryLeaf: {
|
||||
select: { nameKo: true, parent: { select: { nameKo: true } } },
|
||||
},
|
||||
lease: true,
|
||||
sale: true,
|
||||
facility: true,
|
||||
photos: {
|
||||
orderBy: { sortOrder: 'asc' },
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
@@ -77,6 +102,18 @@ export default async function StoreDetailPage({ params }: { params: Promise<{ id
|
||||
? 'bg-warm-400/15 text-warm-700'
|
||||
: 'bg-ink/5 text-ink-muted';
|
||||
|
||||
const industryLabel = [
|
||||
store.industryLeaf?.parent?.nameKo,
|
||||
store.industryLeaf?.nameKo,
|
||||
]
|
||||
.filter(Boolean)
|
||||
.join(' · ');
|
||||
|
||||
const premium = store.sale?.premiumAmount ?? store.lease?.premiumAmount ?? null;
|
||||
const sales = store.sale?.monthlySalesAmount ?? null;
|
||||
const profit = store.sale?.monthlyProfitAmount ?? null;
|
||||
const startup = store.sale?.startupCostAmount ?? null;
|
||||
|
||||
return (
|
||||
<main className="mx-auto max-w-4xl px-6 py-10 font-body">
|
||||
<div className="mb-6">
|
||||
@@ -101,39 +138,96 @@ export default async function StoreDetailPage({ params }: { params: Promise<{ id
|
||||
<h2 className="font-display text-xl font-bold text-ink mb-4">기본 정보</h2>
|
||||
<div className="grid grid-cols-2 gap-4">
|
||||
<InfoItem label="지역" value={store.regionCluster?.nameKo ?? '-'} />
|
||||
<InfoItem label="업종" value={store.industryLeaf?.nameKo ?? '-'} />
|
||||
<InfoItem label="도로명 주소" value={store.roadAddress} />
|
||||
<InfoItem label="업종" value={industryLabel || '-'} />
|
||||
<InfoItem label="주소" value={store.roadAddress} />
|
||||
<InfoItem label="등록일" value={store.createdAt.toLocaleDateString('ko-KR')} />
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* 매매 정보 */}
|
||||
<section className="mt-8 rounded-2xl border border-warm-300/40 bg-warm-50/70 p-6">
|
||||
<h2 className="font-display text-xl font-bold text-ink mb-4">매매 정보</h2>
|
||||
|
||||
{store.sale?.listingDescription && (
|
||||
<p className="mb-4 text-sm leading-relaxed text-ink whitespace-pre-line">
|
||||
{store.sale.listingDescription}
|
||||
</p>
|
||||
)}
|
||||
|
||||
<div className="grid grid-cols-2 gap-4 md:grid-cols-3">
|
||||
<BigInfoItem label="권리금" value={formatKRW(premium != null ? Number(premium) : null)} accent />
|
||||
<BigInfoItem label="창업비용" value={formatKRW(startup != null ? Number(startup) : null)} />
|
||||
<BigInfoItem label="월매출" value={formatKRW(sales != null ? Number(sales) : null)} />
|
||||
<BigInfoItem label="월수익" value={formatKRW(profit != null ? Number(profit) : null)} accent />
|
||||
<BigInfoItem
|
||||
label="월수익률"
|
||||
value={formatMargin(
|
||||
sales != null ? Number(sales) : undefined,
|
||||
profit != null ? Number(profit) : undefined,
|
||||
)}
|
||||
/>
|
||||
<BigInfoItem
|
||||
label="권리금 회수기간"
|
||||
value={formatPaybackMonths(
|
||||
premium != null ? Number(premium) : undefined,
|
||||
profit != null ? Number(profit) : undefined,
|
||||
)}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{(store.sale?.locationHighlight || store.sale?.saleReason) && (
|
||||
<div className="mt-6 grid grid-cols-1 gap-4 md:grid-cols-2">
|
||||
{store.sale?.locationHighlight && (
|
||||
<div className="rounded-xl bg-white/70 p-4">
|
||||
<p className="text-xs font-medium tracking-widest uppercase text-warm-700">입지 특징</p>
|
||||
<p className="mt-2 text-sm text-ink whitespace-pre-line">
|
||||
{store.sale.locationHighlight}
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
{store.sale?.saleReason && (
|
||||
<div className="rounded-xl bg-white/70 p-4">
|
||||
<p className="text-xs font-medium tracking-widest uppercase text-warm-700">매매 사유</p>
|
||||
<p className="mt-2 text-sm text-ink whitespace-pre-line">{store.sale.saleReason}</p>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
</section>
|
||||
|
||||
{/* 매장 사진 */}
|
||||
{store.photos.length > 0 && (
|
||||
<section className="mt-8">
|
||||
<h2 className="font-display text-xl font-bold text-ink mb-4">매장 사진</h2>
|
||||
<div className="grid grid-cols-2 gap-3 md:grid-cols-3">
|
||||
{store.photos.map((photo) => (
|
||||
<div
|
||||
key={photo.id.toString()}
|
||||
className="aspect-square overflow-hidden rounded-xl bg-warm-100"
|
||||
>
|
||||
{/* eslint-disable-next-line @next/next/no-img-element */}
|
||||
<img
|
||||
src={photo.storageKey}
|
||||
alt="매장 사진"
|
||||
className="h-full w-full object-cover"
|
||||
/>
|
||||
</div>
|
||||
))}
|
||||
</div>
|
||||
</section>
|
||||
)}
|
||||
|
||||
{/* 임대 정보 */}
|
||||
<section className="mt-8">
|
||||
<h2 className="font-display text-xl font-bold text-ink mb-4">임대 정보</h2>
|
||||
<div className="grid grid-cols-2 gap-4">
|
||||
<InfoItem
|
||||
label="보증금"
|
||||
value={
|
||||
store.lease?.depositAmount != null
|
||||
? `${Number(store.lease.depositAmount).toLocaleString('ko-KR')}원`
|
||||
: '-'
|
||||
}
|
||||
value={formatKRW(store.lease?.depositAmount != null ? Number(store.lease.depositAmount) : null)}
|
||||
/>
|
||||
<InfoItem
|
||||
label="월세"
|
||||
value={
|
||||
store.lease?.monthlyRentAmount != null
|
||||
? `${Number(store.lease.monthlyRentAmount).toLocaleString('ko-KR')}원`
|
||||
: '-'
|
||||
}
|
||||
/>
|
||||
<InfoItem
|
||||
label="권리금"
|
||||
value={
|
||||
store.lease?.premiumAmount != null
|
||||
? `${Number(store.lease.premiumAmount).toLocaleString('ko-KR')}원`
|
||||
: '-'
|
||||
}
|
||||
value={formatKRW(store.lease?.monthlyRentAmount != null ? Number(store.lease.monthlyRentAmount) : null)}
|
||||
/>
|
||||
<InfoItem
|
||||
label="임대 잔여 기간"
|
||||
@@ -219,6 +313,13 @@ export default async function StoreDetailPage({ params }: { params: Promise<{ id
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p className="mt-6 rounded-2xl bg-warm-100/60 px-5 py-4 text-xs leading-relaxed text-ink-muted">
|
||||
주의: 창업에이전트는 법률에 따라 부동산 중개 정보를 제공할 수 없으며, 권리금과 창업비용만 표시
|
||||
가능합니다. 매출·수익 정보는 매도인 제공 자료이며, 법적 근거로 사용될 수 없습니다. 권리금 계약은
|
||||
행정사가, 임대차 계약은 공인중개사가 작성합니다. 이 문구는 법률상 면책적 자료로 사용될 수
|
||||
있습니다.
|
||||
</p>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
@@ -231,3 +332,16 @@ function InfoItem({ label, value }: { label: string; value: string }) {
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
function BigInfoItem({ label, value, accent }: { label: string; value: string; accent?: boolean }) {
|
||||
return (
|
||||
<div>
|
||||
<p className="text-sm text-ink-muted">{label}</p>
|
||||
<p
|
||||
className={`mt-1 font-display text-lg font-bold ${accent ? 'text-warm-700' : 'text-ink'}`}
|
||||
>
|
||||
{value}
|
||||
</p>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
export type IndustryMajor = {
|
||||
code: string;
|
||||
label: string;
|
||||
children: { code: string; label: string }[];
|
||||
};
|
||||
|
||||
export const INDUSTRY_MAJORS: IndustryMajor[] = [
|
||||
{
|
||||
code: 'REST_LIGHT',
|
||||
label: '휴게음식점',
|
||||
children: [
|
||||
{ code: 'REST_LIGHT.CAFE', label: '카페' },
|
||||
{ code: 'REST_LIGHT.CHICKEN_PIZZA', label: '치킨/피자' },
|
||||
{ code: 'REST_LIGHT.FASTFOOD', label: '패스트푸드' },
|
||||
{ code: 'REST_LIGHT.BAKERY', label: '제과점' },
|
||||
{ code: 'REST_LIGHT.SNACK', label: '분식' },
|
||||
{ code: 'REST_LIGHT.ICECREAM', label: '아이스크림' },
|
||||
{ code: 'REST_LIGHT.ETC', label: '기타' },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: 'REST_FULL',
|
||||
label: '일반음식점',
|
||||
children: [
|
||||
{ code: 'REST_FULL.KOREAN', label: '한식' },
|
||||
{ code: 'REST_FULL.JAPANESE', label: '일식' },
|
||||
{ code: 'REST_FULL.CHINESE', label: '중식' },
|
||||
{ code: 'REST_FULL.SNACK', label: '분식' },
|
||||
{ code: 'REST_FULL.SEAFOOD', label: '해물' },
|
||||
{ code: 'REST_FULL.RESTAURANT', label: '레스토랑' },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: 'BAR',
|
||||
label: '주류점',
|
||||
children: [
|
||||
{ code: 'BAR.BEER', label: '맥주호프' },
|
||||
{ code: 'BAR.NORAE', label: '노래주점' },
|
||||
{ code: 'BAR.WINE', label: '와인/위스키바' },
|
||||
{ code: 'BAR.IZAKAYA', label: '이자카야' },
|
||||
{ code: 'BAR.POCHA', label: '실내포차' },
|
||||
{ code: 'BAR.ETC', label: '기타주점' },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: 'LEISURE',
|
||||
label: '오락스포츠',
|
||||
children: [
|
||||
{ code: 'LEISURE.GYM', label: '헬스장' },
|
||||
{ code: 'LEISURE.YOGA', label: '요가/필라테스' },
|
||||
{ code: 'LEISURE.SCREENGOLF', label: '스크린골프장' },
|
||||
{ code: 'LEISURE.BILLIARD', label: '당구장' },
|
||||
{ code: 'LEISURE.GOLF_RANGE', label: '골프연습장' },
|
||||
{ code: 'LEISURE.PCCAFE', label: '피씨방' },
|
||||
{ code: 'LEISURE.ETC', label: '기타오락' },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: 'RETAIL',
|
||||
label: '판매업',
|
||||
children: [
|
||||
{ code: 'RETAIL.CVS', label: '편의점' },
|
||||
{ code: 'RETAIL.SUPERMARKET', label: '슈퍼마켓' },
|
||||
{ code: 'RETAIL.STATIONERY', label: '문구점' },
|
||||
{ code: 'RETAIL.COSMETICS', label: '화장품점' },
|
||||
{ code: 'RETAIL.MOBILE', label: '이동통신점' },
|
||||
{ code: 'RETAIL.ETC', label: '기타판매' },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: 'SERVICE',
|
||||
label: '서비스업',
|
||||
children: [
|
||||
{ code: 'SERVICE.HAIR', label: '미용실' },
|
||||
{ code: 'SERVICE.READING_ROOM', label: '독서실' },
|
||||
{ code: 'SERVICE.SKIN', label: '피부미용' },
|
||||
{ code: 'SERVICE.LAUNDRY', label: '빨래방' },
|
||||
{ code: 'SERVICE.NAIL', label: '네일아트' },
|
||||
{ code: 'SERVICE.CARWASH', label: '세차장/카센터' },
|
||||
{ code: 'SERVICE.KIDS_CAFE', label: '키즈카페' },
|
||||
{ code: 'SERVICE.MASSAGE', label: '마사지' },
|
||||
{ code: 'SERVICE.ETC', label: '기타서비스업' },
|
||||
],
|
||||
},
|
||||
{
|
||||
code: 'OTHER',
|
||||
label: '기타업종',
|
||||
children: [
|
||||
{ code: 'OTHER.MEDICAL', label: '병원/약국' },
|
||||
{ code: 'OTHER.GOSIWON', label: '고시원' },
|
||||
{ code: 'OTHER.MOTEL', label: '모텔' },
|
||||
{ code: 'OTHER.ACADEMY', label: '학원' },
|
||||
{ code: 'OTHER.PENSION', label: '펜션' },
|
||||
{ code: 'OTHER.REALESTATE', label: '상가매매/임대' },
|
||||
{ code: 'OTHER.REALESTATE_ETC', label: '기타부동산' },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
export function findMajorByLeaf(leafCode: string): string | undefined {
|
||||
for (const major of INDUSTRY_MAJORS) {
|
||||
if (major.children.some((c) => c.code === leafCode)) return major.code;
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
export function labelForLeaf(leafCode: string): string | undefined {
|
||||
for (const major of INDUSTRY_MAJORS) {
|
||||
const c = major.children.find((c) => c.code === leafCode);
|
||||
if (c) return c.label;
|
||||
}
|
||||
return undefined;
|
||||
}
|
||||
@@ -11,12 +11,19 @@ export type StoreFormState = {
|
||||
fieldValues?: {
|
||||
listingTitle?: string;
|
||||
regionClusterCode?: string;
|
||||
industryMajorCode?: string;
|
||||
industryLeafCode?: string;
|
||||
roadAddress?: string;
|
||||
depositAmount?: string;
|
||||
monthlyRentAmount?: string;
|
||||
premiumAmount?: string;
|
||||
remainingLeaseMonths?: string;
|
||||
monthlySalesAmount?: string;
|
||||
monthlyProfitAmount?: string;
|
||||
startupCostAmount?: string;
|
||||
listingDescription?: string;
|
||||
locationHighlight?: string;
|
||||
saleReason?: string;
|
||||
exclusiveAreaSqm?: string;
|
||||
floorLevel?: string;
|
||||
kitchenEquipmentSummary?: string;
|
||||
@@ -29,12 +36,21 @@ export async function createStoreDraftAction(
|
||||
): Promise<StoreFormState> {
|
||||
const listingTitle = (formData.get('listingTitle') as string | null)?.trim() ?? '';
|
||||
const regionClusterCode = (formData.get('regionClusterCode') as string | null) ?? '';
|
||||
const industryMajorCode = (formData.get('industryMajorCode') as string | null) ?? '';
|
||||
const industryLeafCode = (formData.get('industryLeafCode') as string | null) ?? '';
|
||||
const roadAddress = (formData.get('roadAddress') as string | null)?.trim() ?? '';
|
||||
const depositAmount = formData.get('depositAmount') as string | null;
|
||||
const monthlyRentAmount = formData.get('monthlyRentAmount') as string | null;
|
||||
const premiumAmount = formData.get('premiumAmount') as string | null;
|
||||
const remainingLeaseMonths = formData.get('remainingLeaseMonths') as string | null;
|
||||
const monthlySalesAmount = formData.get('monthlySalesAmount') as string | null;
|
||||
const monthlyProfitAmount = formData.get('monthlyProfitAmount') as string | null;
|
||||
const startupCostAmount = formData.get('startupCostAmount') as string | null;
|
||||
const listingDescription =
|
||||
(formData.get('listingDescription') as string | null)?.trim() ?? '';
|
||||
const locationHighlight =
|
||||
(formData.get('locationHighlight') as string | null)?.trim() ?? '';
|
||||
const saleReason = (formData.get('saleReason') as string | null)?.trim() ?? '';
|
||||
const exclusiveAreaSqm = formData.get('exclusiveAreaSqm') as string | null;
|
||||
const floorLevel = formData.get('floorLevel') as string | null;
|
||||
const kitchenEquipmentSummary =
|
||||
@@ -43,12 +59,19 @@ export async function createStoreDraftAction(
|
||||
const fieldValues = {
|
||||
listingTitle,
|
||||
regionClusterCode,
|
||||
industryMajorCode,
|
||||
industryLeafCode,
|
||||
roadAddress,
|
||||
depositAmount: depositAmount ?? undefined,
|
||||
monthlyRentAmount: monthlyRentAmount ?? undefined,
|
||||
premiumAmount: premiumAmount ?? undefined,
|
||||
remainingLeaseMonths: remainingLeaseMonths ?? undefined,
|
||||
monthlySalesAmount: monthlySalesAmount ?? undefined,
|
||||
monthlyProfitAmount: monthlyProfitAmount ?? undefined,
|
||||
startupCostAmount: startupCostAmount ?? undefined,
|
||||
listingDescription,
|
||||
locationHighlight,
|
||||
saleReason,
|
||||
exclusiveAreaSqm: exclusiveAreaSqm ?? undefined,
|
||||
floorLevel: floorLevel ?? undefined,
|
||||
kitchenEquipmentSummary,
|
||||
@@ -59,6 +82,15 @@ export async function createStoreDraftAction(
|
||||
return { error: '로그인이 필요합니다.', fieldValues };
|
||||
}
|
||||
|
||||
const hasSale =
|
||||
premiumAmount ||
|
||||
monthlySalesAmount ||
|
||||
monthlyProfitAmount ||
|
||||
startupCostAmount ||
|
||||
listingDescription ||
|
||||
locationHighlight ||
|
||||
saleReason;
|
||||
|
||||
const input: CreateStoreDraftInput = {
|
||||
ownerUserId: session.user.dbId,
|
||||
listingTitle,
|
||||
@@ -77,6 +109,19 @@ export async function createStoreDraftAction(
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
...(hasSale
|
||||
? {
|
||||
sale: {
|
||||
premiumAmount: premiumAmount ? Number(premiumAmount) : undefined,
|
||||
monthlySalesAmount: monthlySalesAmount ? Number(monthlySalesAmount) : undefined,
|
||||
monthlyProfitAmount: monthlyProfitAmount ? Number(monthlyProfitAmount) : undefined,
|
||||
startupCostAmount: startupCostAmount ? Number(startupCostAmount) : undefined,
|
||||
listingDescription: listingDescription || undefined,
|
||||
locationHighlight: locationHighlight || undefined,
|
||||
saleReason: saleReason || undefined,
|
||||
},
|
||||
}
|
||||
: {}),
|
||||
...(exclusiveAreaSqm || floorLevel || kitchenEquipmentSummary
|
||||
? {
|
||||
facility: {
|
||||
|
||||
@@ -1,13 +1,22 @@
|
||||
'use client';
|
||||
|
||||
import { useActionState } from 'react';
|
||||
import { useActionState, useMemo, useState } from 'react';
|
||||
import Link from 'next/link';
|
||||
import { createStoreDraftAction, type StoreFormState } from './actions';
|
||||
import { INDUSTRY_MAJORS } from '../industries';
|
||||
|
||||
const initialState: StoreFormState = {};
|
||||
|
||||
export default function NewStorePage() {
|
||||
const [state, formAction, isPending] = useActionState(createStoreDraftAction, initialState);
|
||||
const [majorCode, setMajorCode] = useState<string>(
|
||||
state.fieldValues?.industryMajorCode ?? '',
|
||||
);
|
||||
|
||||
const leafOptions = useMemo(
|
||||
() => INDUSTRY_MAJORS.find((m) => m.code === majorCode)?.children ?? [],
|
||||
[majorCode],
|
||||
);
|
||||
|
||||
return (
|
||||
<main className="mx-auto max-w-3xl px-6 py-10 font-body">
|
||||
@@ -46,7 +55,7 @@ export default function NewStorePage() {
|
||||
className="w-full rounded-xl border border-ink/10 bg-white/70 px-4 py-3 text-sm text-ink focus:border-warm-500 focus:ring-2 focus:ring-warm-500/20 focus:outline-none"
|
||||
/>
|
||||
</div>
|
||||
<div className="grid grid-cols-2 gap-4">
|
||||
<div className="grid grid-cols-1 gap-4 md:grid-cols-3">
|
||||
<div>
|
||||
<label className="block text-sm text-ink-muted mb-1">지역 *</label>
|
||||
<select
|
||||
@@ -61,23 +70,42 @@ export default function NewStorePage() {
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<label className="block text-sm text-ink-muted mb-1">업종 *</label>
|
||||
<label className="block text-sm text-ink-muted mb-1">업종 대분류 *</label>
|
||||
<select
|
||||
name="industryMajorCode"
|
||||
required
|
||||
value={majorCode}
|
||||
onChange={(e) => setMajorCode(e.target.value)}
|
||||
className="w-full rounded-xl border border-ink/10 bg-white/70 px-4 py-3 text-sm text-ink focus:border-warm-500 focus:ring-2 focus:ring-warm-500/20 focus:outline-none"
|
||||
>
|
||||
<option value="">대분류 선택</option>
|
||||
{INDUSTRY_MAJORS.map((m) => (
|
||||
<option key={m.code} value={m.code}>
|
||||
{m.label}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
</div>
|
||||
<div>
|
||||
<label className="block text-sm text-ink-muted mb-1">업종 소분류 *</label>
|
||||
<select
|
||||
name="industryLeafCode"
|
||||
required
|
||||
defaultValue={state.fieldValues?.industryLeafCode}
|
||||
className="w-full rounded-xl border border-ink/10 bg-white/70 px-4 py-3 text-sm text-ink focus:border-warm-500 focus:ring-2 focus:ring-warm-500/20 focus:outline-none"
|
||||
disabled={!majorCode}
|
||||
className="w-full rounded-xl border border-ink/10 bg-white/70 px-4 py-3 text-sm text-ink focus:border-warm-500 focus:ring-2 focus:ring-warm-500/20 focus:outline-none disabled:opacity-50"
|
||||
>
|
||||
<option value="">업종 선택</option>
|
||||
<option value="FNB.CAFE">카페</option>
|
||||
<option value="FNB.KOREAN">한식</option>
|
||||
<option value="FNB.WESTERN">양식</option>
|
||||
<option value="FNB.JAPANESE">일식</option>
|
||||
<option value="">소분류 선택</option>
|
||||
{leafOptions.map((c) => (
|
||||
<option key={c.code} value={c.code}>
|
||||
{c.label}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<label className="block text-sm text-ink-muted mb-1">도로명 주소 *</label>
|
||||
<label className="block text-sm text-ink-muted mb-1">주소 *</label>
|
||||
<input
|
||||
type="text"
|
||||
name="roadAddress"
|
||||
@@ -90,6 +118,87 @@ export default function NewStorePage() {
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* 매매 정보 */}
|
||||
<section>
|
||||
<h2 className="font-display text-xl font-bold text-ink mb-4">매매 정보</h2>
|
||||
<div className="space-y-4 rounded-2xl border border-ink/5 bg-white/70 backdrop-blur-sm p-6">
|
||||
<div className="grid grid-cols-2 gap-4">
|
||||
<div>
|
||||
<label className="block text-sm text-ink-muted mb-1">권리금 (원)</label>
|
||||
<input
|
||||
type="number"
|
||||
name="premiumAmount"
|
||||
placeholder="120000000"
|
||||
defaultValue={state.fieldValues?.premiumAmount}
|
||||
className="w-full rounded-xl border border-ink/10 bg-white/70 px-4 py-3 text-sm text-ink focus:border-warm-500 focus:ring-2 focus:ring-warm-500/20 focus:outline-none"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label className="block text-sm text-ink-muted mb-1">창업비용 (원)</label>
|
||||
<input
|
||||
type="number"
|
||||
name="startupCostAmount"
|
||||
placeholder="150000000"
|
||||
defaultValue={state.fieldValues?.startupCostAmount}
|
||||
className="w-full rounded-xl border border-ink/10 bg-white/70 px-4 py-3 text-sm text-ink focus:border-warm-500 focus:ring-2 focus:ring-warm-500/20 focus:outline-none"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="grid grid-cols-2 gap-4">
|
||||
<div>
|
||||
<label className="block text-sm text-ink-muted mb-1">월매출 (원)</label>
|
||||
<input
|
||||
type="number"
|
||||
name="monthlySalesAmount"
|
||||
placeholder="85000000"
|
||||
defaultValue={state.fieldValues?.monthlySalesAmount}
|
||||
className="w-full rounded-xl border border-ink/10 bg-white/70 px-4 py-3 text-sm text-ink focus:border-warm-500 focus:ring-2 focus:ring-warm-500/20 focus:outline-none"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label className="block text-sm text-ink-muted mb-1">월수익 (원)</label>
|
||||
<input
|
||||
type="number"
|
||||
name="monthlyProfitAmount"
|
||||
placeholder="9900000"
|
||||
defaultValue={state.fieldValues?.monthlyProfitAmount}
|
||||
className="w-full rounded-xl border border-ink/10 bg-white/70 px-4 py-3 text-sm text-ink focus:border-warm-500 focus:ring-2 focus:ring-warm-500/20 focus:outline-none"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<label className="block text-sm text-ink-muted mb-1">매물 설명</label>
|
||||
<textarea
|
||||
rows={3}
|
||||
name="listingDescription"
|
||||
placeholder="예: 역세권 1층 풀오토매장, 최고매출·최고순이익"
|
||||
defaultValue={state.fieldValues?.listingDescription}
|
||||
className="w-full rounded-xl border border-ink/10 bg-white/70 px-4 py-3 text-sm text-ink focus:border-warm-500 focus:ring-2 focus:ring-warm-500/20 focus:outline-none"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label className="block text-sm text-ink-muted mb-1">입지 특징</label>
|
||||
<textarea
|
||||
rows={3}
|
||||
name="locationHighlight"
|
||||
placeholder="예: 지하철역 도보 1분, 대로변, 유동인구 많음"
|
||||
defaultValue={state.fieldValues?.locationHighlight}
|
||||
className="w-full rounded-xl border border-ink/10 bg-white/70 px-4 py-3 text-sm text-ink focus:border-warm-500 focus:ring-2 focus:ring-warm-500/20 focus:outline-none"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label className="block text-sm text-ink-muted mb-1">매매 사유</label>
|
||||
<textarea
|
||||
rows={3}
|
||||
name="saleReason"
|
||||
placeholder="예: 건강상의 이유로 매장 정리"
|
||||
defaultValue={state.fieldValues?.saleReason}
|
||||
className="w-full rounded-xl border border-ink/10 bg-white/70 px-4 py-3 text-sm text-ink focus:border-warm-500 focus:ring-2 focus:ring-warm-500/20 focus:outline-none"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
{/* 임대 정보 */}
|
||||
<section>
|
||||
<h2 className="font-display text-xl font-bold text-ink mb-4">임대 정보</h2>
|
||||
@@ -116,27 +225,15 @@ export default function NewStorePage() {
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
<div className="grid grid-cols-2 gap-4">
|
||||
<div>
|
||||
<label className="block text-sm text-ink-muted mb-1">권리금 (원)</label>
|
||||
<input
|
||||
type="number"
|
||||
name="premiumAmount"
|
||||
placeholder="30000000"
|
||||
defaultValue={state.fieldValues?.premiumAmount}
|
||||
className="w-full rounded-xl border border-ink/10 bg-white/70 px-4 py-3 text-sm text-ink focus:border-warm-500 focus:ring-2 focus:ring-warm-500/20 focus:outline-none"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label className="block text-sm text-ink-muted mb-1">임대 잔여 기간 (개월)</label>
|
||||
<input
|
||||
type="number"
|
||||
name="remainingLeaseMonths"
|
||||
placeholder="18"
|
||||
defaultValue={state.fieldValues?.remainingLeaseMonths}
|
||||
className="w-full rounded-xl border border-ink/10 bg-white/70 px-4 py-3 text-sm text-ink focus:border-warm-500 focus:ring-2 focus:ring-warm-500/20 focus:outline-none"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label className="block text-sm text-ink-muted mb-1">임대 잔여 기간 (개월)</label>
|
||||
<input
|
||||
type="number"
|
||||
name="remainingLeaseMonths"
|
||||
placeholder="18"
|
||||
defaultValue={state.fieldValues?.remainingLeaseMonths}
|
||||
className="w-full rounded-xl border border-ink/10 bg-white/70 px-4 py-3 text-sm text-ink focus:border-warm-500 focus:ring-2 focus:ring-warm-500/20 focus:outline-none"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@@ -1,28 +1,60 @@
|
||||
import Link from 'next/link';
|
||||
import { createPrismaClient } from '@startover/database';
|
||||
import { StoreFilters } from './store-filters';
|
||||
import { INDUSTRY_MAJORS } from './industries';
|
||||
|
||||
export const dynamic = 'force-dynamic';
|
||||
|
||||
function formatKRWShort(value: number | null | undefined): string {
|
||||
if (value == null) return '-';
|
||||
const v = Number(value);
|
||||
if (v >= 100_000_000) {
|
||||
const eok = v / 100_000_000;
|
||||
return `${Number.isInteger(eok) ? eok : eok.toFixed(1)}억`;
|
||||
}
|
||||
if (v >= 10_000) {
|
||||
const man = Math.round(v / 10_000);
|
||||
return `${man.toLocaleString('ko-KR')}만`;
|
||||
}
|
||||
return `${v.toLocaleString('ko-KR')}원`;
|
||||
}
|
||||
|
||||
export default async function StoresPage({
|
||||
searchParams,
|
||||
}: {
|
||||
searchParams: Promise<{ region?: string; industry?: string; status?: string }>;
|
||||
searchParams: Promise<{ region?: string; industry?: string; industryMajor?: string; status?: string }>;
|
||||
}) {
|
||||
const params = await searchParams;
|
||||
const prisma = createPrismaClient();
|
||||
|
||||
const where: Record<string, unknown> = { publicationStatus: 'PUBLISHED' as const };
|
||||
if (params.region) where['regionCluster'] = { code: params.region };
|
||||
if (params.industry) where['industryLeaf'] = { code: params.industry };
|
||||
if (params.industry) {
|
||||
where['industryLeaf'] = { code: params.industry };
|
||||
} else if (params.industryMajor) {
|
||||
const major = INDUSTRY_MAJORS.find((m) => m.code === params.industryMajor);
|
||||
if (major) {
|
||||
where['industryLeaf'] = { code: { in: major.children.map((c) => c.code) } };
|
||||
}
|
||||
}
|
||||
if (params.status) where['dealStatus'] = params.status;
|
||||
|
||||
const query = {
|
||||
where,
|
||||
include: {
|
||||
regionCluster: { select: { nameKo: true } },
|
||||
industryLeaf: { select: { nameKo: true } },
|
||||
lease: { select: { depositAmount: true, monthlyRentAmount: true } },
|
||||
industryLeaf: {
|
||||
select: { nameKo: true, parent: { select: { nameKo: true } } },
|
||||
},
|
||||
sale: {
|
||||
select: { premiumAmount: true, monthlyProfitAmount: true, monthlySalesAmount: true },
|
||||
},
|
||||
lease: { select: { premiumAmount: true } },
|
||||
photos: {
|
||||
where: { isRepresentative: true },
|
||||
take: 1,
|
||||
select: { storageKey: true },
|
||||
},
|
||||
},
|
||||
orderBy: { createdAt: 'desc' as const },
|
||||
};
|
||||
@@ -55,64 +87,92 @@ export default async function StoresPage({
|
||||
<StoreFilters />
|
||||
|
||||
{/* 매장 목록 */}
|
||||
<div className="mt-6 grid grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3 animate-fade-up">
|
||||
<div className="mt-6 grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3 animate-fade-up">
|
||||
{stores.length === 0 ? (
|
||||
<div className="col-span-full py-16 text-center text-sm text-ink-muted">
|
||||
등록된 매장이 없습니다
|
||||
</div>
|
||||
) : (
|
||||
stores.map((store: (typeof stores)[number]) => (
|
||||
<Link
|
||||
key={store.publicId}
|
||||
href={`/stores/${store.publicId}`}
|
||||
className="block rounded-2xl border border-ink/5 bg-white/70 backdrop-blur-sm p-5 card-lift"
|
||||
>
|
||||
<div className="flex items-start justify-between">
|
||||
<h3 className="font-display font-semibold text-ink">{store.listingTitle}</h3>
|
||||
<span
|
||||
className={`rounded-full px-2 py-0.5 text-xs font-medium ${
|
||||
store.dealStatus === 'OPEN'
|
||||
? 'bg-sage-500/10 text-sage-600'
|
||||
stores.map((store) => {
|
||||
const premium = store.sale?.premiumAmount ?? store.lease?.premiumAmount ?? null;
|
||||
const profit = store.sale?.monthlyProfitAmount ?? null;
|
||||
const industryLabel = [
|
||||
store.industryLeaf?.parent?.nameKo,
|
||||
store.industryLeaf?.nameKo,
|
||||
]
|
||||
.filter(Boolean)
|
||||
.join('/');
|
||||
const photoSrc = store.photos[0]?.storageKey ?? null;
|
||||
|
||||
return (
|
||||
<Link
|
||||
key={store.publicId}
|
||||
href={`/stores/${store.publicId}`}
|
||||
className="block overflow-hidden rounded-2xl border border-ink/5 bg-white/70 backdrop-blur-sm card-lift"
|
||||
>
|
||||
{/* 사진 영역 */}
|
||||
<div className="relative aspect-[4/3] w-full bg-warm-100">
|
||||
{photoSrc ? (
|
||||
// eslint-disable-next-line @next/next/no-img-element
|
||||
<img
|
||||
src={photoSrc}
|
||||
alt={store.listingTitle}
|
||||
className="h-full w-full object-cover"
|
||||
/>
|
||||
) : (
|
||||
<div className="flex h-full w-full items-center justify-center text-xs text-ink-muted">
|
||||
사진 준비 중
|
||||
</div>
|
||||
)}
|
||||
<span
|
||||
className={`absolute right-3 top-3 rounded-full px-2 py-0.5 text-xs font-medium ${
|
||||
store.dealStatus === 'OPEN'
|
||||
? 'bg-sage-500/90 text-white'
|
||||
: store.dealStatus === 'MATCHING'
|
||||
? 'bg-warm-600/90 text-white'
|
||||
: 'bg-ink/70 text-white'
|
||||
}`}
|
||||
>
|
||||
{store.dealStatus === 'OPEN'
|
||||
? '거래 가능'
|
||||
: store.dealStatus === 'MATCHING'
|
||||
? 'bg-warm-400/15 text-warm-700'
|
||||
: 'bg-ink/5 text-ink-muted'
|
||||
}`}
|
||||
>
|
||||
{store.dealStatus === 'OPEN'
|
||||
? '거래 가능'
|
||||
: store.dealStatus === 'MATCHING'
|
||||
? '매칭 중'
|
||||
: store.dealStatus}
|
||||
</span>
|
||||
</div>
|
||||
<p className="mt-1 text-sm text-ink-muted">
|
||||
{store.regionCluster?.nameKo ?? '-'} · {store.industryLeaf?.nameKo ?? '-'}
|
||||
</p>
|
||||
<div className="mt-3 flex gap-4 text-sm text-ink-muted">
|
||||
<span>
|
||||
보증금{' '}
|
||||
<span className="font-medium text-ink">
|
||||
{store.lease?.depositAmount != null
|
||||
? `${Number(store.lease.depositAmount).toLocaleString('ko-KR')}원`
|
||||
: '-'}
|
||||
? '매칭 중'
|
||||
: store.dealStatus}
|
||||
</span>
|
||||
</span>
|
||||
<span>
|
||||
월세{' '}
|
||||
<span className="font-medium text-ink">
|
||||
{store.lease?.monthlyRentAmount != null
|
||||
? `${Number(store.lease.monthlyRentAmount).toLocaleString('ko-KR')}원`
|
||||
: '-'}
|
||||
</span>
|
||||
</span>
|
||||
</div>
|
||||
</Link>
|
||||
))
|
||||
</div>
|
||||
|
||||
{/* 정보 영역 */}
|
||||
<div className="p-4">
|
||||
<p className="text-xs text-ink-muted">
|
||||
{store.regionCluster?.nameKo ?? '-'}
|
||||
{industryLabel ? ` · ${industryLabel}` : ''}
|
||||
</p>
|
||||
<h3 className="mt-1 line-clamp-1 font-display font-bold text-ink">
|
||||
{store.listingTitle}
|
||||
</h3>
|
||||
<div className="mt-3 space-y-1">
|
||||
<div className="flex items-baseline justify-between">
|
||||
<span className="text-xs text-ink-muted">권리금</span>
|
||||
<span className="font-display font-bold text-warm-700">
|
||||
{formatKRWShort(premium != null ? Number(premium) : null)}
|
||||
</span>
|
||||
</div>
|
||||
<div className="flex items-baseline justify-between">
|
||||
<span className="text-xs text-ink-muted">월수익</span>
|
||||
<span className="font-display font-bold text-ink">
|
||||
{formatKRWShort(profit != null ? Number(profit) : null)}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</Link>
|
||||
);
|
||||
})
|
||||
)}
|
||||
</div>
|
||||
|
||||
<div className="mt-8 text-center text-sm text-ink-muted">
|
||||
베타 서비스: 강남권·마포권 F&B 매장만 지원합니다
|
||||
매출·수익 정보는 매도인이 제공한 자료이며 법적 근거로 사용될 수 없습니다
|
||||
</div>
|
||||
</main>
|
||||
);
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
'use client';
|
||||
|
||||
import { useRouter, useSearchParams } from 'next/navigation';
|
||||
import { useCallback } from 'react';
|
||||
import { useCallback, useMemo, useState } from 'react';
|
||||
import { INDUSTRY_MAJORS } from './industries';
|
||||
|
||||
const REGION_OPTIONS = [
|
||||
{ value: '', label: '전체 지역' },
|
||||
@@ -9,14 +10,6 @@ const REGION_OPTIONS = [
|
||||
{ value: 'KR.BETA.MAPO_CORE', label: '마포권 (홍대/합정/연남)' },
|
||||
];
|
||||
|
||||
const INDUSTRY_OPTIONS = [
|
||||
{ value: '', label: '전체 업종' },
|
||||
{ value: 'FNB.CAFE', label: '카페' },
|
||||
{ value: 'FNB.KOREAN', label: '한식' },
|
||||
{ value: 'FNB.WESTERN', label: '양식' },
|
||||
{ value: 'FNB.JAPANESE', label: '일식' },
|
||||
];
|
||||
|
||||
const STATUS_OPTIONS = [
|
||||
{ value: '', label: '전체 상태' },
|
||||
{ value: 'OPEN', label: '거래 가능' },
|
||||
@@ -28,15 +21,23 @@ export function StoreFilters() {
|
||||
const router = useRouter();
|
||||
const searchParams = useSearchParams();
|
||||
|
||||
const [majorCode, setMajorCode] = useState<string>(searchParams.get('industryMajor') ?? '');
|
||||
const subOptions = useMemo(
|
||||
() => INDUSTRY_MAJORS.find((m) => m.code === majorCode)?.children ?? [],
|
||||
[majorCode],
|
||||
);
|
||||
|
||||
const handleSubmit = useCallback(
|
||||
(e: React.FormEvent<HTMLFormElement>) => {
|
||||
e.preventDefault();
|
||||
const data = new FormData(e.currentTarget);
|
||||
const params = new URLSearchParams();
|
||||
const region = data.get('region') as string;
|
||||
const industryMajor = data.get('industryMajor') as string;
|
||||
const industry = data.get('industry') as string;
|
||||
const status = data.get('status') as string;
|
||||
if (region) params.set('region', region);
|
||||
if (industryMajor) params.set('industryMajor', industryMajor);
|
||||
if (industry) params.set('industry', industry);
|
||||
if (status) params.set('status', status);
|
||||
const qs = params.toString();
|
||||
@@ -62,13 +63,28 @@ export function StoreFilters() {
|
||||
))}
|
||||
</select>
|
||||
<select
|
||||
name="industry"
|
||||
defaultValue={searchParams.get('industry') ?? ''}
|
||||
name="industryMajor"
|
||||
value={majorCode}
|
||||
onChange={(e) => setMajorCode(e.target.value)}
|
||||
className="rounded-xl border border-ink/10 bg-white/70 px-4 py-3 text-sm text-ink focus:border-warm-500 focus:ring-2 focus:ring-warm-500/20 focus:outline-none"
|
||||
>
|
||||
{INDUSTRY_OPTIONS.map((opt) => (
|
||||
<option key={opt.value} value={opt.value}>
|
||||
{opt.label}
|
||||
<option value="">전체 대분류</option>
|
||||
{INDUSTRY_MAJORS.map((m) => (
|
||||
<option key={m.code} value={m.code}>
|
||||
{m.label}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
<select
|
||||
name="industry"
|
||||
defaultValue={searchParams.get('industry') ?? ''}
|
||||
disabled={!majorCode}
|
||||
className="rounded-xl border border-ink/10 bg-white/70 px-4 py-3 text-sm text-ink focus:border-warm-500 focus:ring-2 focus:ring-warm-500/20 focus:outline-none disabled:opacity-50"
|
||||
>
|
||||
<option value="">전체 소분류</option>
|
||||
{subOptions.map((c) => (
|
||||
<option key={c.code} value={c.code}>
|
||||
{c.label}
|
||||
</option>
|
||||
))}
|
||||
</select>
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
import type { Metadata } from 'next';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: '이용약관 | Startover',
|
||||
description: 'Startover 이용약관입니다.',
|
||||
alternates: { canonical: 'https://startover.co.kr/terms' },
|
||||
};
|
||||
|
||||
export default function TermsPage() {
|
||||
return (
|
||||
<main className="mx-auto max-w-3xl px-6 py-16 font-body">
|
||||
<h1 className="font-display text-3xl font-bold text-ink">이용약관</h1>
|
||||
<p className="mt-2 text-sm text-ink-muted">시행일: 2026년 1월 1일</p>
|
||||
|
||||
<section className="prose mt-10 space-y-6 text-ink-light leading-relaxed">
|
||||
<h2 className="font-display text-xl font-bold text-ink">제1조 (목적)</h2>
|
||||
<p>
|
||||
본 약관은 Startover(이하 "회사")가 제공하는 폐업·양도·창업 중개 플랫폼
|
||||
서비스(이하 "서비스")의 이용과 관련하여 회사와 이용자의 권리·의무 및
|
||||
책임사항을 규정함을 목적으로 합니다.
|
||||
</p>
|
||||
|
||||
<h2 className="font-display text-xl font-bold text-ink">제2조 (정의)</h2>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>
|
||||
<strong>이용자</strong>: 본 약관에 따라 회사가 제공하는 서비스를 이용하는 회원 및 비회원을 말합니다.
|
||||
</li>
|
||||
<li>
|
||||
<strong>매도인</strong>: 매장을 등록하여 양도·매각을 희망하는 이용자를 말합니다.
|
||||
</li>
|
||||
<li>
|
||||
<strong>매수인</strong>: 등록된 매장을 인수·매입하고자 하는 이용자를 말합니다.
|
||||
</li>
|
||||
<li>
|
||||
<strong>인증 업체</strong>: 철거, 인테리어 등의 서비스를 제공하기 위해 회사의 인증 절차를 거친 사업자를 말합니다.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2 className="font-display text-xl font-bold text-ink">제3조 (약관의 효력 및 변경)</h2>
|
||||
<p>
|
||||
본 약관은 서비스 화면에 게시하거나 기타의 방법으로 이용자에게 공지함으로써 효력이
|
||||
발생합니다. 회사는 관련 법령을 위배하지 않는 범위에서 본 약관을 개정할 수 있으며,
|
||||
개정 시에는 시행일 7일 전부터 공지합니다.
|
||||
</p>
|
||||
|
||||
<h2 className="font-display text-xl font-bold text-ink">제4조 (서비스의 제공)</h2>
|
||||
<p>
|
||||
회사는 이용자에게 다음과 같은 서비스를 제공합니다.
|
||||
</p>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>매장 정보 등록 및 조회</li>
|
||||
<li>매도인·매수인·인증 업체 간 매칭 서비스</li>
|
||||
<li>정부 지원금 자격 조회 및 서류 안내</li>
|
||||
<li>표준 계약서, 에스크로 결제, 검수 승인 서비스</li>
|
||||
</ul>
|
||||
|
||||
<h2 className="font-display text-xl font-bold text-ink">제5조 (이용자의 의무)</h2>
|
||||
<p>
|
||||
이용자는 다음 행위를 하여서는 안 됩니다.
|
||||
</p>
|
||||
<ul className="list-disc space-y-2 pl-6">
|
||||
<li>허위 매장 정보를 등록하는 행위</li>
|
||||
<li>타인의 개인정보를 도용하는 행위</li>
|
||||
<li>서비스의 안정적인 운영을 방해하는 행위</li>
|
||||
<li>회사의 사전 승낙 없이 영리 목적으로 서비스를 이용하는 행위</li>
|
||||
</ul>
|
||||
|
||||
<h2 className="font-display text-xl font-bold text-ink">제6조 (책임의 제한)</h2>
|
||||
<p>
|
||||
회사는 중개 플랫폼을 제공하는 사업자로서, 이용자 간의 거래에 대한 직접적인
|
||||
당사자가 아닙니다. 매장 정보의 정확성, 거래 조건의 적정성에 대한 최종 책임은
|
||||
해당 정보를 제공한 이용자에게 있으며, 회사는 이에 대하여 법적 책임을 지지 않습니다.
|
||||
</p>
|
||||
<p>
|
||||
매출·수익 정보는 매도인이 제공한 자료이며 회사가 이를 검증하지 않습니다.
|
||||
이용자는 거래 전 반드시 실사와 법률 검토를 거쳐야 합니다.
|
||||
</p>
|
||||
|
||||
<h2 className="font-display text-xl font-bold text-ink">제7조 (분쟁 해결)</h2>
|
||||
<p>
|
||||
서비스 이용과 관련하여 분쟁이 발생한 경우, 회사는 이용자의 입장을 청취하고
|
||||
합리적인 해결을 위해 노력합니다. 해결이 되지 않는 경우 관련 법령 및 상관례에
|
||||
따릅니다.
|
||||
</p>
|
||||
|
||||
<h2 className="font-display text-xl font-bold text-ink">제8조 (기타)</h2>
|
||||
<p>
|
||||
본 약관에 명시되지 않은 사항은 관련 법령 및 서비스별 운영 정책에 따릅니다.
|
||||
</p>
|
||||
</section>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
@@ -119,6 +119,21 @@ export async function createStoreDraftService(
|
||||
});
|
||||
}
|
||||
|
||||
if (draft.sale) {
|
||||
await tx.storeSale.create({
|
||||
data: {
|
||||
storeId: created.id,
|
||||
premiumAmount: draft.sale.premiumAmount ?? null,
|
||||
monthlySalesAmount: draft.sale.monthlySalesAmount ?? null,
|
||||
monthlyProfitAmount: draft.sale.monthlyProfitAmount ?? null,
|
||||
startupCostAmount: draft.sale.startupCostAmount ?? null,
|
||||
listingDescription: draft.sale.listingDescription ?? null,
|
||||
locationHighlight: draft.sale.locationHighlight ?? null,
|
||||
saleReason: draft.sale.saleReason ?? null,
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
await createAuditLog(tx, {
|
||||
resourceType: 'STORE',
|
||||
resourceId: created.publicId,
|
||||
|
||||
@@ -541,6 +541,7 @@ model Store {
|
||||
policyVersion PolicyVersion? @relation(fields: [policyVersionId], references: [id])
|
||||
|
||||
lease StoreLease?
|
||||
sale StoreSale?
|
||||
facility StoreFacility?
|
||||
lifecycle StoreLifecycle?
|
||||
photos StorePhoto[]
|
||||
@@ -575,6 +576,26 @@ model StoreLease {
|
||||
@@map("store_leases")
|
||||
}
|
||||
|
||||
/// 매매 정보 (권리금/월매출/월수익/창업비용/매물설명 등) (Store 1:1 확장)
|
||||
model StoreSale {
|
||||
id BigInt @id @default(autoincrement()) @map("id")
|
||||
storeId BigInt @unique @map("store_id")
|
||||
premiumAmount Decimal? @map("premium_amount") @db.Decimal(14, 2)
|
||||
monthlySalesAmount Decimal? @map("monthly_sales_amount") @db.Decimal(14, 2)
|
||||
monthlyProfitAmount Decimal? @map("monthly_profit_amount") @db.Decimal(14, 2)
|
||||
startupCostAmount Decimal? @map("startup_cost_amount") @db.Decimal(14, 2)
|
||||
listingDescription String? @map("listing_description")
|
||||
locationHighlight String? @map("location_highlight")
|
||||
saleReason String? @map("sale_reason")
|
||||
createdAt DateTime @default(now()) @map("created_at") @db.Timestamptz(6)
|
||||
updatedAt DateTime @updatedAt @map("updated_at") @db.Timestamptz(6)
|
||||
|
||||
// Relations
|
||||
store Store @relation(fields: [storeId], references: [id])
|
||||
|
||||
@@map("store_sales")
|
||||
}
|
||||
|
||||
/// F&B 필터링과 인수 판단에 필요한 설비 정보 (Store 1:1 확장)
|
||||
/// CHECK constraint: exclusiveAreaSqm > 0 (custom SQL migration)
|
||||
model StoreFacility {
|
||||
|
||||
@@ -1,9 +1,56 @@
|
||||
code,name_ko,parent_code,depth,sort_order,is_leaf,is_active,is_beta_enabled
|
||||
FNB,음식점/카페,,0,1,false,true,true
|
||||
FNB.CAFE,카페,FNB,1,1,true,true,true
|
||||
FNB.BAKERY,베이커리,FNB,1,2,true,true,true
|
||||
FNB.KOREAN,한식,FNB,1,3,true,true,true
|
||||
FNB.CHICKEN,치킨,FNB,1,4,true,true,true
|
||||
FNB.BAR,주점,FNB,1,5,true,true,true
|
||||
FNB.DESSERT,디저트,FNB,1,6,true,true,true
|
||||
FNB.FASTCASUAL,간편식/패스트캐주얼,FNB,1,7,true,true,true
|
||||
REST_LIGHT,휴게음식점,,0,1,false,true,true
|
||||
REST_LIGHT.CAFE,카페,REST_LIGHT,1,1,true,true,true
|
||||
REST_LIGHT.CHICKEN_PIZZA,치킨/피자,REST_LIGHT,1,2,true,true,true
|
||||
REST_LIGHT.FASTFOOD,패스트푸드,REST_LIGHT,1,3,true,true,true
|
||||
REST_LIGHT.BAKERY,제과점,REST_LIGHT,1,4,true,true,true
|
||||
REST_LIGHT.SNACK,분식,REST_LIGHT,1,5,true,true,true
|
||||
REST_LIGHT.ICECREAM,아이스크림,REST_LIGHT,1,6,true,true,true
|
||||
REST_LIGHT.ETC,기타,REST_LIGHT,1,7,true,true,true
|
||||
REST_FULL,일반음식점,,0,2,false,true,true
|
||||
REST_FULL.KOREAN,한식,REST_FULL,1,1,true,true,true
|
||||
REST_FULL.JAPANESE,일식,REST_FULL,1,2,true,true,true
|
||||
REST_FULL.CHINESE,중식,REST_FULL,1,3,true,true,true
|
||||
REST_FULL.SNACK,분식,REST_FULL,1,4,true,true,true
|
||||
REST_FULL.SEAFOOD,해물,REST_FULL,1,5,true,true,true
|
||||
REST_FULL.RESTAURANT,레스토랑,REST_FULL,1,6,true,true,true
|
||||
BAR,주류점,,0,3,false,true,true
|
||||
BAR.BEER,맥주호프,BAR,1,1,true,true,true
|
||||
BAR.NORAE,노래주점,BAR,1,2,true,true,true
|
||||
BAR.WINE,와인/위스키바,BAR,1,3,true,true,true
|
||||
BAR.IZAKAYA,이자카야,BAR,1,4,true,true,true
|
||||
BAR.POCHA,실내포차,BAR,1,5,true,true,true
|
||||
BAR.ETC,기타주점,BAR,1,6,true,true,true
|
||||
LEISURE,오락스포츠,,0,4,false,true,true
|
||||
LEISURE.GYM,헬스장,LEISURE,1,1,true,true,true
|
||||
LEISURE.YOGA,요가/필라테스,LEISURE,1,2,true,true,true
|
||||
LEISURE.SCREENGOLF,스크린골프장,LEISURE,1,3,true,true,true
|
||||
LEISURE.BILLIARD,당구장,LEISURE,1,4,true,true,true
|
||||
LEISURE.GOLF_RANGE,골프연습장,LEISURE,1,5,true,true,true
|
||||
LEISURE.PCCAFE,피씨방,LEISURE,1,6,true,true,true
|
||||
LEISURE.ETC,기타오락,LEISURE,1,7,true,true,true
|
||||
RETAIL,판매업,,0,5,false,true,true
|
||||
RETAIL.CVS,편의점,RETAIL,1,1,true,true,true
|
||||
RETAIL.SUPERMARKET,슈퍼마켓,RETAIL,1,2,true,true,true
|
||||
RETAIL.STATIONERY,문구점,RETAIL,1,3,true,true,true
|
||||
RETAIL.COSMETICS,화장품점,RETAIL,1,4,true,true,true
|
||||
RETAIL.MOBILE,이동통신점,RETAIL,1,5,true,true,true
|
||||
RETAIL.ETC,기타판매,RETAIL,1,6,true,true,true
|
||||
SERVICE,서비스업,,0,6,false,true,true
|
||||
SERVICE.HAIR,미용실,SERVICE,1,1,true,true,true
|
||||
SERVICE.READING_ROOM,독서실,SERVICE,1,2,true,true,true
|
||||
SERVICE.SKIN,피부미용,SERVICE,1,3,true,true,true
|
||||
SERVICE.LAUNDRY,빨래방,SERVICE,1,4,true,true,true
|
||||
SERVICE.NAIL,네일아트,SERVICE,1,5,true,true,true
|
||||
SERVICE.CARWASH,세차장/카센터,SERVICE,1,6,true,true,true
|
||||
SERVICE.KIDS_CAFE,키즈카페,SERVICE,1,7,true,true,true
|
||||
SERVICE.MASSAGE,마사지,SERVICE,1,8,true,true,true
|
||||
SERVICE.ETC,기타서비스업,SERVICE,1,9,true,true,true
|
||||
OTHER,기타업종,,0,7,false,true,true
|
||||
OTHER.MEDICAL,병원/약국,OTHER,1,1,true,true,true
|
||||
OTHER.GOSIWON,고시원,OTHER,1,2,true,true,true
|
||||
OTHER.MOTEL,모텔,OTHER,1,3,true,true,true
|
||||
OTHER.ACADEMY,학원,OTHER,1,4,true,true,true
|
||||
OTHER.PENSION,펜션,OTHER,1,5,true,true,true
|
||||
OTHER.REALESTATE,상가매매/임대,OTHER,1,6,true,true,true
|
||||
OTHER.REALESTATE_ETC,기타부동산,OTHER,1,7,true,true,true
|
||||
|
||||
|
@@ -26,6 +26,16 @@ export interface IndustryChecker {
|
||||
// Input / Output types
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
export interface StoreSaleInput {
|
||||
readonly premiumAmount?: number;
|
||||
readonly monthlySalesAmount?: number;
|
||||
readonly monthlyProfitAmount?: number;
|
||||
readonly startupCostAmount?: number;
|
||||
readonly listingDescription?: string;
|
||||
readonly locationHighlight?: string;
|
||||
readonly saleReason?: string;
|
||||
}
|
||||
|
||||
export interface CreateStoreDraftInput {
|
||||
readonly ownerUserId: string;
|
||||
readonly listingTitle: string;
|
||||
@@ -34,6 +44,7 @@ export interface CreateStoreDraftInput {
|
||||
readonly roadAddress: string;
|
||||
readonly detailAddress?: string;
|
||||
readonly lease?: StoreLeaseInput;
|
||||
readonly sale?: StoreSaleInput;
|
||||
readonly facility?: StoreFacilityInput;
|
||||
}
|
||||
|
||||
@@ -48,6 +59,7 @@ export interface StoreDraft {
|
||||
readonly publicationStatus: 'PRIVATE';
|
||||
readonly dealStatus: 'OPEN';
|
||||
readonly lease?: StoreLeaseProps;
|
||||
readonly sale?: StoreSaleInput;
|
||||
readonly facility?: StoreFacilityProps;
|
||||
}
|
||||
|
||||
@@ -76,7 +88,7 @@ function validateRequiredFields(input: CreateStoreDraftInput): readonly FieldErr
|
||||
errors.push({ field: 'regionClusterCode', message: '지역 클러스터 코드는 필수입니다.' });
|
||||
}
|
||||
if (!input.roadAddress.trim()) {
|
||||
errors.push({ field: 'roadAddress', message: '도로명 주소는 필수입니다.' });
|
||||
errors.push({ field: 'roadAddress', message: '주소는 필수입니다.' });
|
||||
}
|
||||
|
||||
return errors;
|
||||
@@ -158,6 +170,7 @@ export function createStoreDraft(
|
||||
publicationStatus: 'PRIVATE' as const,
|
||||
dealStatus: 'OPEN' as const,
|
||||
lease: leaseProps,
|
||||
sale: input.sale,
|
||||
facility: facilityProps,
|
||||
});
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ export {
|
||||
type StoreDraft,
|
||||
type RegionChecker,
|
||||
type IndustryChecker,
|
||||
type StoreSaleInput,
|
||||
} from './create-store-draft.js';
|
||||
export {
|
||||
reviewStore,
|
||||
|
||||
Generated
+3337
-2865
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user