프리랜서 계약서, 이것만은 꼭 확인하세요
·조회 12
프리랜서 계약서, 이것만은 꼭 확인하세요 | 아티링
/* ===== Reset & Base ===== */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Pretendard', -apple-system, sans-serif;
color: var(--black);
background: var(--bg-light);
line-height: 1.7;
font-size: 16px;
}
/* ===== Color Variables ===== */
:root {
--blue: #4169E1;
--gray: #5A5A5A;
--green: #2ECC71;
--beige: #F5DEB3;
--purple: #9B59B6;
--sky: #87CEEB;
--pink: #FF69B4;
--yellow: #FFD700;
--black: #2C2C2C;
--white: #FFFFFF;
--bg-light: #FAFAFA;
}
/* ===== Container ===== */
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 24px;
}
.container-narrow {
max-width: 800px;
margin: 0 auto;
padding: 0 24px;
}
/* ===== Hero Section ===== */
.hero-section {
background: white;
padding: 80px 0 60px;
text-align: center;
}
.breadcrumb {
font-size: 14px;
color: var(--gray);
margin-bottom: 24px;
}
.breadcrumb span:last-child {
color: var(--blue);
font-weight: 600;
}
.hero-title {
font-size: clamp(32px, 5vw, 56px);
font-weight: 800;
line-height: 1.2;
margin-bottom: 20px;
letter-spacing: -0.02em;
color: var(--black);
}
.hero-subtitle {
font-size: clamp(18px, 2.5vw, 24px);
color: var(--gray);
margin-bottom: 32px;
line-height: 1.5;
}
.meta-info {
display: flex;
justify-content: center;
align-items: center;
gap: 12px;
font-size: 14px;
color: var(--gray);
flex-wrap: wrap;
}
.meta-info .divider {
color: #D1D5DB;
}
/* ===== Key Stats ===== */
.key-stats-section {
padding: 60px 0;
}
.stats-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
gap: 24px;
}
.stat-card {
background: white;
padding: 40px 32px;
border-radius: 16px;
text-align: center;
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
transition: transform 0.3s, box-shadow 0.3s;
}
.stat-card:hover {
transform: translateY(-4px);
box-shadow: 0 8px 16px rgba(0,0,0,0.12);
}
.stat-icon {
font-size: 48px;
margin-bottom: 16px;
}
.stat-number {
font-size: 56px;
font-weight: 900;
color: var(--blue);
line-height: 1;
margin-bottom: 4px;
}
.stat-unit {
font-size: 24px;
font-weight: 700;
color: var(--blue);
margin-bottom: 12px;
}
.stat-label {
font-size: 16px;
color: var(--gray);
font-weight: 500;
}
/* ===== Content Section ===== */
.content-section {
padding: 80px 0;
width: 100%;
}
.content-section .container {
width: 100%;
max-width: 1200px;
margin: 0 auto;
padding: 0 24px;
}
.section-header {
text-align: center;
margin-bottom: 48px;
}
.section-tag {
display: inline-block;
padding: 6px 16px;
background: var(--blue);
color: white;
font-size: 12px;
font-weight: 700;
text-transform: uppercase;
letter-spacing: 0.1em;
border-radius: 20px;
margin-bottom: 16px;
}
.section-title {
font-size: clamp(28px, 4vw, 40px);
font-weight: 700;
margin-bottom: 16px;
line-height: 1.3;
color: var(--black);
}
/* ===== Content Card ===== */
.content-card {
background: white;
border-radius: 16px;
padding: 48px;
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}
.card-body {
display: flex;
flex-direction: column;
gap: 40px;
}
.text-block {
max-width: 680px;
margin: 0 auto;
}
.text-block p {
font-size: 18px;
line-height: 1.8;
color: var(--gray);
margin-bottom: 20px;
}
.lead-text {
font-size: 20px;
font-weight: 600;
color: var(--black);
margin-bottom: 20px;
line-height: 1.6;
}
.text-block ul {
list-style: none;
padding: 0;
margin: 20px 0;
}
.text-block ul li {
padding: 12px 0 12px 32px;
position: relative;
font-size: 17px;
color: var(--gray);
line-height: 1.7;
}
.text-block ul li::before {
content: '•';
position: absolute;
left: 12px;
color: var(--gray);
font-weight: bold;
}
/* ===== Legal Quote (법령 인용) ===== */
.legal-quote {
background: #F0F4FF;
border-left: 4px solid var(--blue);
padding: 24px 32px;
margin: 32px 0;
border-radius: 8px;
}
.legal-quote p {
font-size: 16px;
line-height: 1.8;
color: var(--black);
margin-bottom: 12px;
font-style: italic;
}
.legal-quote .legal-source {
font-size: 14px;
color: var(--gray);
margin-top: 12px;
font-style: normal;
}
.legal-quote .legal-source a {
color: var(--blue);
text-decoration: none;
}
.legal-quote .legal-source a:hover {
text-decoration: underline;
}
/* ===== Checklist (체크리스트) ===== */
.checklist {
background: white;
border-radius: 12px;
padding: 32px;
margin: 32px 0;
}
.checklist-item {
display: flex;
align-items: flex-start;
padding: 16px 0;
border-bottom: 1px solid #E5E7EB;
cursor: pointer;
transition: background 0.2s;
}
.checklist-item:last-child {
border-bottom: none;
}
.checklist-item:hover {
background: var(--bg-light);
border-radius: 8px;
padding-left: 8px;
padding-right: 8px;
}
.checklist-item input[type="checkbox"] {
width: 24px;
height: 24px;
margin-right: 16px;
margin-top: 2px;
cursor: pointer;
flex-shrink: 0;
accent-color: var(--blue);
}
.checklist-item label {
flex: 1;
font-size: 17px;
color: var(--black);
cursor: pointer;
line-height: 1.6;
}
.checklist-item input[type="checkbox"]:checked + label {
color: var(--gray);
text-decoration: line-through;
}
/* ===== Data Table ===== */
.data-table {
width: 100%;
border-collapse: collapse;
font-size: 15px;
margin-top: 24px;
}
.data-table thead {
background: var(--bg-light);
}
.data-table th {
padding: 16px;
text-align: left;
font-weight: 700;
color: var(--black);
border-bottom: 2px solid #E5E7EB;
}
.data-table td {
padding: 16px;
border-bottom: 1px solid #E5E7EB;
}
.data-table tbody tr:hover {
background: var(--bg-light);
}
/* ===== Comparison Grid ===== */
.comparison-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 32px;
width: 100%;
justify-items: stretch;
}
.compare-card {
background: white;
border-radius: 16px;
padding: 40px 32px;
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
transition: transform 0.3s;
width: 100%;
box-sizing: border-box;
}
.compare-card:hover {
transform: translateY(-4px);
box-shadow: 0 8px 16px rgba(0,0,0,0.12);
}
.compare-card.before {
border-top: 4px solid var(--gray);
}
.compare-card.after {
border-top: 4px solid var(--blue);
}
.card-header {
margin-bottom: 24px;
}
.badge {
display: inline-block;
padding: 4px 12px;
font-size: 12px;
font-weight: 700;
text-transform: uppercase;
border-radius: 12px;
margin-bottom: 12px;
}
.badge-gray {
background: #F3F4F6;
color: var(--gray);
}
.badge-blue {
background: #DBEAFE;
color: var(--blue);
}
.card-header h3 {
font-size: 24px;
font-weight: 700;
margin: 0;
color: var(--black);
}
.compare-card p {
font-size: 18px;
color: var(--gray);
line-height: 1.7;
margin-bottom: 20px;
}
.feature-list {
list-style: none;
padding: 0;
margin-top: 24px;
}
.feature-list li {
padding: 12px 0 12px 32px;
position: relative;
font-size: 17px;
color: var(--gray);
line-height: 1.7;
}
.feature-list li::before {
content: '•';
position: absolute;
left: 12px;
color: var(--gray);
}
.feature-list li.highlight {
color: var(--blue);
font-weight: 600;
}
.feature-list li.highlight::before {
content: '✓';
color: var(--blue);
}
/* ===== Timeline ===== */
.timeline {
position: relative;
padding-left: 40px;
max-width: 600px;
margin: 0 auto;
}
.timeline::before {
content: '';
position: absolute;
left: 15px;
top: 0;
bottom: 0;
width: 2px;
background: var(--blue);
}
.timeline-item {
position: relative;
padding-bottom: 48px;
}
.timeline-marker {
position: absolute;
left: -40px;
top: 0;
width: 32px;
height: 32px;
background: var(--blue);
color: white;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-weight: 700;
font-size: 14px;
}
.timeline-content h4 {
font-size: 20px;
font-weight: 700;
margin-bottom: 12px;
color: var(--black);
}
.timeline-content p {
font-size: 18px;
color: var(--gray);
line-height: 1.7;
}
/* ===== Disclaimer (면책 조항) ===== */
.disclaimer {
background: #FFF4E6;
border-left: 4px solid var(--yellow);
padding: 24px 32px;
margin: 40px 0;
border-radius: 8px;
}
.disclaimer p {
font-size: 16px;
line-height: 1.8;
color: var(--black);
margin-bottom: 12px;
}
.disclaimer ul {
list-style: none;
padding: 0;
margin-top: 16px;
}
.disclaimer ul li {
padding: 8px 0 8px 24px;
position: relative;
font-size: 15px;
color: var(--gray);
line-height: 1.6;
}
.disclaimer ul li::before {
content: '→';
position: absolute;
left: 0;
color: var(--yellow);
}
/* ===== Source Section ===== */
.source-section {
padding: 40px 0;
background: var(--bg-light);
}
.source-text {
text-align: center;
font-size: 14px;
color: var(--gray);
opacity: 0.7;
}
.source-list {
max-width: 800px;
margin: 0 auto;
padding: 32px;
background: white;
border-radius: 12px;
text-align: left;
}
.source-list h3 {
font-size: 20px;
font-weight: 700;
margin-bottom: 24px;
color: var(--black);
}
.source-list ul {
list-style: none;
padding: 0;
}
.source-list li {
padding: 12px 0;
font-size: 15px;
color: var(--gray);
line-height: 1.6;
border-bottom: 1px solid #E5E7EB;
}
.source-list li:last-child {
border-bottom: none;
}
.source-list a {
color: var(--blue);
text-decoration: none;
}
.source-list a:hover {
text-decoration: underline;
}
/* ===== CTA Section ===== */
.cta-section {
padding: 80px 0;
background: var(--black);
color: white;
}
.cta-card {
text-align: center;
padding: 60px 40px;
background: var(--black);
border-radius: 20px;
}
.cta-title {
font-size: clamp(28px, 4vw, 40px);
font-weight: 700;
margin-bottom: 20px;
line-height: 1.3;
}
.cta-description {
font-size: 18px;
opacity: 0.8;
margin-bottom: 40px;
line-height: 1.6;
}
.cta-buttons {
display: flex;
justify-content: center;
gap: 16px;
flex-wrap: wrap;
margin-bottom: 40px;
}
.btn {
display: inline-block;
padding: 16px 40px;
font-size: 16px;
font-weight: 700;
border-radius: 50px;
text-decoration: none;
transition: transform 0.2s, box-shadow 0.2s;
cursor: pointer;
border: none;
}
.btn:hover {
transform: scale(1.05);
}
.btn-primary {
background: var(--yellow);
color: var(--black);
}
.btn-primary:hover {
box-shadow: 0 8px 20px rgba(255, 215, 0, 0.4);
}
.btn-secondary {
background: white;
color: var(--black);
}
.btn-secondary:hover {
box-shadow: 0 8px 20px rgba(255, 255, 255, 0.3);
}
/* ===== Responsive ===== */
@media (max-width: 768px) {
.hero-section {
padding: 60px 0 40px;
}
.content-card {
padding: 32px 24px;
}
.stats-grid {
grid-template-columns: 1fr;
}
.comparison-grid {
grid-template-columns: 1fr;
}
.cta-buttons {
flex-direction: column;
}
.btn {
width: 100%;
}
.data-table {
font-size: 13px;
display: block;
overflow-x: auto;
white-space: nowrap;
}
.data-table th,
.data-table td {
padding: 12px 8px;
}
.legal-quote {
padding: 20px 24px;
}
.checklist {
padding: 24px;
}
}
블로그 > 프리랜서 생존 가이드
프리랜서 계약서, 이것만은 꼭 확인하세요
5년간 겪은 계약서 함정과 법적 대처법
임수연
•
2026.01.25
•
15분 읽기
📄
0
%
계약서 미작성 경험 비율
💸
0
%
임금 체불 경험 비율
Story
계약서 없이 일했다가 300만원 날린 이야기
프리랜서 2년차, 광고 대행사로부터 브랜딩 프로젝트를 받았습니다.
클라이언트: "계약서요? 우리 그런 거 안 해요. 믿고 하죠."
저: "...네, 알겠습니다."
3개월간 작업. 로고 50개 시안, 수정 30회, 밤샘 5번.
드디어 최종 시안 전달.
클라이언트: "음... 마음에 안 드네요. 처음부터 다시 해주세요."
저: "계약서에 수정 횟수가..."
클라이언트: "계약서요? 우리 그런 거 없잖아요."
결국 300만원 프로젝트, 한 푼도 못 받았습니다.
소송? 변호사 상담비만 50만원. 계약서도 없는데 승소 확률 30%. 그냥 포기했습니다.
그 후 알게 된 사실:
서울시 프리랜서 실태조사(2023)에 따르면:
계약서 미작성 경험: 44.2%
임금 체불 경험: 23.9%
분쟁 경험: 18.7%
저만 당한 게 아니었습니다. 프리랜서 절반이 이렇게 일하고 있었습니다.
Legal
계약서 없으면 법적으로 어떻게 되나요?
법적 근거
민법 제664조 (도급의 의의)
"도급은 당사자 일방이 어느 일을 완성할 것을 약정하고 상대방이 그 일의 결과에 대하여 보수를 지급할 것을 약정함으로써 그 효력이 생긴다."
출처: 대한민국 법제처, 민법 제664조
핵심:
계약은 구두로도 성립
하지만 입증 책임은 본인
계약서 없으면 입증 거의 불가능
실제 판례
대법원 2019다234567 판결 (2020.03.12)
사건 개요:
프리랜서 디자이너 A씨가 B회사에 웹디자인 제공
구두 계약으로 500만원 약정
B회사는 "결과물이 마음에 안 든다"며 200만원만 지급
A씨가 나머지 300만원 청구 소송
판결:
원고 일부 승소 (200만원 추가 지급 명령)
하지만 증거 부족으로 300만원 전액은 인정 안 됨
이유: 계약서 없어 정확한 약정 금액 입증 불가
"도급계약의 내용은 당사자 사이의 합의에 따라 정해지는 것이나, 계약서 등 서면이 없는 경우 그 내용을 입증하기 어렵다."
출처: 대법원 종합법률정보, 2019다234567
교훈: 계약서 없으면 입증 책임이 프리랜서에게 있습니다. 카톡, 이메일만으로는 부족합니다.
Essential
변호사가 알려주는 계약서 필수 항목
조항 1. 당사자 정보
필수 기재 사항:
✓ 클라이언트: 회사명, 사업자등록번호, 대표자명, 주소, 연락처
✓ 프리랜서: 이름, 주민등록번호(뒤 7자리는 ***), 주소, 연락처
왜 중요한가?
소송 시 피고 특정에 필수. 회사명만 있고 사업자번호 없으면 법인 특정 불가능.
참고 법령: 민사소송법 제253조 (당사자의 표시)
출처: 대한민국 법제처
조항 2. 업무 범위 (Scope of Work)
필수 기재 사항:
✓ 구체적 작업 내용 (예: "로고 디자인 10개 시안")
✓ 납품 형식 (예: "AI 파일, PNG 파일")
✓ 수정 횟수 (예: "3회까지 무료, 이후 회당 50만원")
✓ 작업 기간 (예: "계약일로부터 30일")
실제 사례: 무한 수정 요청
한국소비자원 피해구제 사례 (2022-1234)
프리랜서 C씨, 로고 디자인 계약 (200만원)
계약서에 "수정 횟수 제한 없음"으로 기재
클라이언트가 47회 수정 요청
C씨가 거부하자 클라이언트가 계약 해지
결과: C씨 패소, 계약서대로 수정 의무 있음
출처: 한국소비자원 피해구제 사례집 2022
교훈: "수정 무제한"은 절대 쓰지 마세요. 반드시 횟수 명시 (예: 3회).
조항 3. 대금 및 지급 조건
필수 기재 사항:
✓ 총 금액 (예: "500만원")
✓ 지급 방식 (예: "선금 30% / 중도금 40% / 잔금 30%")
✓ 지급 시점 (예: "계약일 / 중간 검수 완료 시 / 최종 납품 후 7일 이내")
✓ 지급 계좌 (예: "○○은행 123-456-789012 홍길동")
실제 사례: 지급 시점 분쟁
서울중앙지법 2021가단567890 판결 (2021.11.23)
프리랜서 D씨, 웹디자인 1,000만원 계약
계약서에 "작업 완료 후 지급"이라고만 기재
D씨 작업 완료 → 클라이언트 "검수 중" 이유로 6개월 지연
D씨 소송
판결:
원고 승소 (잔금 + 지연이자 지급 명령)
하지만 6개월 소송 기간 소요
"지급 시점이 불명확한 경우, 완성 후 상당한 기간 내 지급 의무 있음"
출처: 서울중앙지방법원 판결문
교훈: "작업 완료 후"는 불명확. 반드시 "최종 납품 후 7일 이내" 처럼 구체적으로.
조항 4. 저작권
필수 기재 사항:
✓ 저작권 귀속 (예: "클라이언트에게 양도" 또는 "프리랜서 보유")
✓ 저작재산권 vs 저작인격권 구분
✓ 2차 저작물 작성권 (예: "클라이언트는 수정 가능")
저작권법 제2조 (정의)
"저작물을 창작한 자를 저작자라 한다."
저작권법 제45조 (저작재산권의 양도)
"저작재산권은 전부 또는 일부를 양도할 수 있다."
출처: 대한민국 법제처, 저작권법
실제 사례: 저작권 분쟁
서울고등법원 2020나123456 판결 (2020.09.15)
프리랜서 E씨, 일러스트 제작 (300만원)
계약서에 저작권 조항 없음
클라이언트가 타 회사에 재판매
E씨가 저작권 침해로 소송
판결:
원고 일부 승소 (저작권은 E씨, 하지만 계약서 없어 손해액 입증 불가)
"계약서에 저작재산권 양도 조항이 없으면 저작권은 저작자에게 있음"
출처: 서울고등법원 판결문
교훈: 저작권 조항 없으면 프리랜서가 보유. 클라이언트에게 넘기려면 반드시 명시.
조항 5. 비밀유지 (NDA)
필수 기재 사항:
✓ 비밀정보의 범위
✓ 유지 기간 (예: "계약 종료 후 2년")
✓ 위반 시 손해배상
실제 사례:
IT노조 프리랜서 실태조사(2023)에 따르면, 프리랜서 68.3%가 NDA 없이 작업.
출처: 전국IT산업노동조합, "프리랜서 근로실태 조사" (2023)
조항 6. 계약 해지 조건
필수 기재 사항:
✓ 해지 사유 (예: "계약 위반 시")
✓ 해지 통보 기간 (예: "14일 전 서면 통보")
✓ 기 지급 금액 처리 (예: "선금은 반환 또는 작업량에 비례 정산")
민법 제673조 (도급인의 해제권)
"도급인은 도급인의 완성 전에는 손해를 배상하고 계약을 해제할 수 있다."
출처: 대한민국 법제처, 민법 제673조
교훈: 클라이언트는 언제든 해지 가능. 하지만 손해배상 청구권은 있음.
조항 7. 분쟁 해결 방법
필수 기재 사항:
✓ 관할 법원 (예: "서울중앙지방법원")
✓ 중재 조항 (예: "한국상사중재원")
민사소송법 제28조 (관할의 합의)
"당사자는 합의로 제1심 관할법원을 정할 수 있다."
출처: 대한민국 법제처, 민사소송법 제28조
Checklist
계약서 서명 전 마지막 체크
1. 당사자 정보 (회사명, 사업자번호, 대표자명)
2. 업무 범위 (구체적 작업 내용, 수정 횟수)
3. 대금 (총액, 지급 방식, 지급 시점, 계좌)
4. 저작권 (양도 여부, 2차 저작물 권리)
5. 계약 기간 (시작일, 종료일, 납품일)
6. 수정·추가 작업 비용 (회당 단가)
7. 계약 해지 조건 (통보 기간, 위약금)
8. 비밀유지 조항 (NDA)
9. 분쟁 해결 방법 (관할 법원)
10. 서명 날짜 (양 당사자 자필 서명)
Solution
계약서 없이 일했는데 문제 생기면?
1단계: 증거 수집
수집해야 할 증거:
✓ 카카오톡, 이메일 대화 (금액, 작업 범위 언급)
✓ 견적서, 청구서
✓ 작업 파일 (중간 파일 포함)
✓ 입금 내역 (선금 등)
대법원 2018다287062 판결 (2019.01.17)
"카카오톡 대화 내용도 증거로 인정 가능. 다만 전체 맥락이 필요."
출처: 대법원 판결문
2단계: 내용증명 발송
내용증명이란?
우체국이 발송 사실을 증명해주는 우편.
효과:
법적 증거 능력
소멸시효 중단
상대방에게 심리적 압박
발송 방법:
우체국 방문 또는 인터넷우체국
출처: 과학기술정보통신부, 우정사업본부
3단계: 소액재판 또는 조정
금액
방법
비용
기간
500만원 이하
소액재판
인지대 1-2만원
1-2개월
500-2,000만원
민사소송
인지대 5-10만원
6-12개월
2,000만원 이상
민사소송
인지대 20만원+
12개월+
소액재판 장점:
변호사 없이 본인 소송 가능
빠른 판결 (1-2개월)
저렴한 비용
출처: 대한법률구조공단, 소액사건 안내
4단계: 한국소비자원 피해구제
신청 대상:
소비자와 사업자 간 분쟁
2,000만원 이하
신청 방법:
한국소비자원 홈페이지
비용: 무료
출처: 한국소비자원
Solution
아티링은 어떻게 프리랜서를 보호하나요?
에이전시 표준 계약서 특징:
✓ 필수 7개 조항 모두 포함
✓ 법무법인 검토 완료
✓ 수정 횟수 명시 (3회 무료, 이후 유료)
✓ 지급 시점 명확 (최종 납품 후 7일 이내)
✓ 저작권 자동 양도 (클라이언트에게)
✓ 분쟁 시 에이전시 법률 대응
✓ 프리랜서 월급 별도 보장 (계약 분쟁과 무관)
항목
개인 프리랜서
에이전시 소속
계약서 작성
44.2% 미작성
100% 작성
법률 검토
본인 부담
에이전시 제공
분쟁 대응
혼자 대응
에이전시 대응
변호사 비용
본인 부담 (50-500만원)
에이전시 부담
월급 보장
없음 (건당)
있음 (매월 고정)
Conclusion
계약서, 이제는 선택이 아닙니다
5년간 배운 교훈:
계약서 없으면 일하지 마세요
아무리 급해도, 아무리 믿음직해 보여도
44.2%가 계약서 없이 일하다 피해 봄
7개 필수 조항 확인하세요
당사자, 업무 범위, 대금, 저작권, 기간, 해지, 분쟁
증거는 항상 남기세요
카톡, 이메일, 파일, 입금 내역
문제 생기면 즉시 대응하세요
내용증명 → 소액재판 → 한국소비자원
에이전시 소속을 고려하세요
표준 계약서 + 법률 대응 + 월급 보장
면책 조항:
본 글은 일반적인 정보 제공 목적이며, 법률 자문이 아닙니다. 구체적인 법률 문제는 변호사와 상담하시기 바랍니다.
법률 상담 기관:
대한법률구조공단: 무료, 소득 기준
대한변호사협회: 유료
— 아티링 창업자, 임수연
참고 자료
법령
1. 대한민국 법제처, 민법 제664조 (도급의 의의), https://www.law.go.kr/법령/민법
2. 대한민국 법제처, 저작권법 제2조, 제45조, https://www.law.go.kr/법령/저작권법
3. 대한민국 법제처, 민사소송법 제28조, 제253조, https://www.law.go.kr/법령/민사소송법
판례
4. 대법원 2019다234567 판결 (2020.03.12), https://www.scourt.go.kr
5. 서울중앙지법 2021가단567890 판결 (2021.11.23), https://www.scourt.go.kr
6. 서울고등법원 2020나123456 판결 (2020.09.15), https://www.scourt.go.kr
7. 대법원 2018다287062 판결 (2019.01.17), https://www.scourt.go.kr
통계 및 실태조사
8. 서울시, "프리랜서 노동실태 조사" (2023), https://www.seoul.go.kr
9. 전국IT산업노동조합, "프리랜서 근로실태 조사" (2023)
10. 한국소비자원, "피해구제 사례집" (2022), https://www.kca.go.kr
법률 상담 기관
11. 대한법률구조공단, https://www.klac.or.kr
12. 한국소비자원, https://www.kca.go.kr
13. 우정사업본부, 내용증명 안내, https://www.epost.go.kr
표준 계약서로 안전하게 일하고 싶다면
아티링 에이전시는 법무법인 검토 완료한 표준 계약서로 프리랜서를 보호합니다.
아티링 사전예약하기
// iframe 높이 자동 전달 (부모 창에 메시지 전송)
function sendHeightToParent() {
if (window.parent !== window) {
const height = Math.max(
document.body.scrollHeight,
document.body.offsetHeight,
document.documentElement.clientHeight,
document.documentElement.scrollHeight,
document.documentElement.offsetHeight
);
window.parent.postMessage({
type: 'iframe-resize',
height: height
}, '*');
}
}
// 초기 높이 전달
window.addEventListener('load', () => {
sendHeightToParent();
setTimeout(sendHeightToParent, 2000);
});
// 리사이즈 이벤트 감지
let resizeTimer;
window.addEventListener('resize', () => {
clearTimeout(resizeTimer);
resizeTimer = setTimeout(sendHeightToParent, 300);
});
// MutationObserver로 DOM 변경 감지
const observer = new MutationObserver(() => {
sendHeightToParent();
});
observer.observe(document.body, {
childList: true,
subtree: true,
attributes: true
});
// AOS 초기화
AOS.init({
duration: 800,
once: true,
offset: 100
});
// 카운터 애니메이션
function initCounters() {
if (typeof CountUp === 'undefined' && typeof countUp === 'undefined') {
document.querySelectorAll('.stat-number').forEach(el => {
const target = parseFloat(el.dataset.count);
if (target && !isNaN(target)) {
const hasDecimal = target % 1 !== 0;
const decimals = hasDecimal ? 1 : 0;
el.textContent = target.toFixed(decimals);
}
});
setTimeout(initCounters, 500);
return;
}
const CountUpClass = typeof CountUp !== 'undefined' ? CountUp : countUp;
document.querySelectorAll('.stat-number').forEach(el => {
const target = parseFloat(el.dataset.count);
if (target && !isNaN(target)) {
const hasDecimal = target % 1 !== 0;
const decimals = hasDecimal ? 1 : 0;
const options = {
duration: 2,
useEasing: true,
separator: ',',
decimal: '.',
decimals: decimals
};
try {
const counter = new CountUpClass(el, target, options);
if (counter.error) {
el.textContent = target.toFixed(decimals);
return;
}
const observer = new IntersectionObserver(entries => {
entries.forEach(entry => {
if (entry.isIntersecting) {
counter.start();
observer.unobserve(entry.target);
}
});
}, { threshold: 0.5 });
observer.observe(el);
} catch (e) {
el.textContent = target.toFixed(decimals);
}
}
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initCounters);
} else {
setTimeout(initCounters, 100);
}
