# -*- coding: utf-8 -*- import json, csv, re, io rows = [json.loads(l) for l in open('data/precedents/precedents.jsonl')] D = {r['case_id']: r for r in rows} # (사건번호, 등급, 주제, 쟁점요약, 적용사유/한계) CUR = [ # ── A: 어문저작물 본문 표절 판단 기준을 직접 제시 ("2012다73493","A","실질적 유사성·의거관계 총론", "실질적 유사성은 창작적 표현형식만을 대비해 판단한다. 의거관계는 접근 가능성과 유사성 등 간접사실로 사실상 추정되며, 의거 판단에서는 보호받지 못하는 표현의 유사성도 참작할 수 있다.", "본 과제 판정 로직의 최상위 기준. 다만 사안 자체는 깃털 공예품이라 어문 적용 시 법리만 인용해야 한다."), ("2010가합1884","A","어문 유사성 2분법(선덕여왕 1심)", "어문저작물의 유사성을 부분적·문언적 유사성과 포괄적·비문언적 유사성으로 나누어 판단한다. 역사적 사실을 소재로 한 저작물은 전개가 유사해질 수밖에 없으므로 이 특성을 충분히 고려해야 한다.", "자서전은 실재 사건을 소재로 하므로 '전형적 표현·역사적 사실은 보호 밖'이라는 이 판시가 오탐 억제의 직접 근거가 된다."), ("2012나17150","A","선덕여왕 항소심", "1심과 달리 접근 가능성을 인정해 대본 표절을 인정. 접근 가능성 인정 여부가 결론을 뒤집을 수 있음을 보여준다.", "동일 사건의 심급 간 결론 역전 사례. 기계 판정 결과를 확정 결론으로 제시하면 안 된다는 근거. 다만 이 사건의 상고심 판단은 적재본에 없으므로 항소심 결론을 확정된 법리로 인용해서는 안 된다."), ("2014다14375","A","역사·학술 서적 대 소설(석굴암, 대법원)", "역사적 사실과 설화에 대한 '새로운 해석'은 아이디어 영역이다. 사실 나열·기능 설명·통상적 묘사는 창작성이 없고, 장르와 주제가 다르면 공통 소재에서 오는 표현 중복은 부득이하다.", "실화·인물·시대 배경을 공유하는 자서전 간 유사도 오탐을 걸러내는 핵심 근거. 1심 2012가합80045, 항소심 2013나33609와 함께 3심급 세트로 확보됨."), ("2019가합541129","A","역사 소재 저작물 간 실질적 유사성", "세종·신미대사 훈민정음 창제라는 동일 소재를 다루었으나 아이디어·인물 설정만 유사하고 창작적 표현형식은 유사하지 않아 실질적 유사성을 부정.", "위 석굴암 법리의 최신 재확인. 인물·사건이 겹치는 자서전 비교에 그대로 대응된다."), ("2020도13556","A","편집저작물(교재) 창작성·특정", "소재의 선택·배열·구성에 창작성이 있으면 편집저작물로 보호된다. 실질적 유사성은 창작적 표현형식만 대비하며, 법원은 침해가 다투어지는 부분을 명확히 특정해야 한다.", "자서전의 구성·목차·에피소드 배열 유사도를 다룰 근거이자, 리포트가 '어느 구간이 문제인지'를 특정해야 한다는 요구사항의 근거."), ("2013가합5771","A","원저작물 기반 파생 출판물", "교과서 목차·단원 제목·배열 순서·핵심 내용을 그대로 따른 문제집은 2차적저작물작성권과 저작인격권을 침해한다.", "원저작물의 구조를 따라간 후속 출판물의 침해 인정례. 구조 유사도 신호의 법적 의미를 뒷받침."), ("2013도8793","A","인용 비율과 정당한 인용(대법원)", "저서 각 장의 11~40%를 타인 저서에서 인용하고 참고문헌·일부 각주를 달았더라도, 인용량·내용·구성에 비추어 인용 부분을 구별하기 어렵고 스스로 창작한 것처럼 보이는 부분이 상당하며 시장에서 경쟁 관계라면 정당한 범위·공정한 관행에 합치한 인용이 아니다.", "본 과제에서 가장 직접적인 정량 기준. 출처 표시가 있어도 비율과 식별 가능성에 따라 침해가 된다는 점을 명시."), ("2013노232","A","전부 복제형 인용 부정", "저작물의 일부가 아닌 전체를 변형·부가 없이 그대로 복제해 그 자체로 이용한 것은 저작권법 제28조의 인용이 아니다. 교육 목적이 일부 있어도 근본 목적이 영리이고 원저작물의 완전한 대체물이면 인용에 해당하지 않는다.", "인용 항변을 배척하는 기준 4요소(일부/변형/부가/대체성)를 명확히 제시."), ("2011도3599","A","요약물의 실질적 유사성(대법원)", "요약물이 원저작물과 실질적 유사성이 있는지 판단하는 기준을 제시.", "AI 요약·재서술형 표절 판정의 직접 근거. 단 적재본에는 사건 표시만 있고 판시 본문이 없어 원문 확보 필요."), ("2024노803","A","요약·발췌 강의교안", "교재 내용을 요약·발췌한 강의교안은 학문 일반의 개념·표현에 불과해 창작적 표현이 아니므로 침해가 성립하지 않는다.", "위 2011도3599의 반대 방향 사례. 요약형 표절의 성립·불성립 경계를 함께 제시할 수 있다."), ("2012나4904","A","소설 간 표절 인정·손해 부정", "의거관계와 실질적 유사성이 모두 인정되어 저작권 침해는 성립하나, 장르·독자층·유통 방식이 달라 재산상 손해는 부정하고 저작인격권 침해에 따른 위자료만 인정.", "'침해 인정 ≠ 손해 인정'을 보여주는 사례. 리포트가 위험도와 손해를 분리해 제시해야 하는 근거."), ("2013나18193","A","시(詩)의 실질적 유사성", "사용된 단어가 일부 일치해도 단어·문장 배치, 행·연 구분 등 전체 구성을 모방한 정도에 이르지 않으면 실질적 유사성을 쉽게 인정할 수 없다.", "어휘 단위 일치율만으로 표절을 단정하면 안 된다는 직접 근거. 본 엔진의 n-gram 신호 해석에 대응."), ("2019가합588425","A","웹소설 간 실질적 유사성 부정", "원고·피고 웹소설 사이에 실질적 유사성을 인정하기 어려워 침해금지 청구 기각.", "장편 서사물 간 비교의 최근 기각례. 적재본에 요지만 있어 원문 확인 필요."), ("2025가단81306","A","어문저작물 창작성·의거관계 부정", "원고 어문저작물에 보호 대상인 창작적 표현방식이 포함되어 있다고 보기 어렵고 실질적 유사성·의거관계도 인정되지 않아 청구 기각.", "가장 최근의 어문 표절 기각례. 요지만 적재되어 있어 원문 확인 필요."), ("2021가합570441","A","어문저작물 창작성 인정·침해", "원고 어문저작물의 창작성을 인정하고, 비슷한 표현을 사용한 피고에게 저작재산권 침해를 인정.", "어문 침해 인정례. 요지만 적재되어 있어 원문 확인 필요."), ("2021가합572409","A","실용서(교본) 간 실질적 유사성 인정", "동일 주제 실용서(플루트 연주법·기초 음악이론) 사이의 실질적 유사성을 인정해 침해금지 청구 인용.", "실용적 저작물이라도 유사성이 인정될 수 있음을 보여, 아래 2019가합537427과 균형을 이룬다."), ("2019가합537427","A","실용적 저작물의 보호 범위 제한", "수험서가 전체로는 저작물이라도 창작성이 인정되지 않는 개별 부분에는 저작권 효력이 미치지 않는다. 서술방식·체계의 차이, 표현 유사 정도와 비중을 종합해 침해를 부정.", "정보 전달형 서술(연보·경력·사실 기술)이 많은 자서전의 오탐 억제 근거."), ("2010다70520","A","수험서의 저작물성(대법원)", "수험서 등 실용적 저작물의 저작물성과 침해 판단 기준.", "v1.3에서 오탐 억제 근거로 쓰는 판례. 적재본에는 사건 표시만 있어 원문 확보 필요."), ("2012가합80045","A","석굴암 1심", "사실·정보 전달을 주목적으로 하는 사실적·기능적 저작물은 표현 방법이 제한되므로 보호 범위를 좁게 해석해야 한다.", "'사실적 저작물 보호범위 축소' 법리의 원문. 항소심 2013나33609, 상고심 2014다14375와 연결."), ("2013나33609","A","석굴암 항소심","1심의 실질적 유사성 부정 판단 유지.","3심급 세트 완성용."), ("2022노434","A","논문 발췌의 창작성", "타인 논문에서 발췌해 사용한 부분에 창작성이 있다고 보기 어려워 저작권 침해를 인정하지 않음.", "학술적 서술의 창작성 하한선. 요지만 적재되어 있어 원문 확인 필요."), ("2021가합558106","A","논문 표절 침해 인정", "원고 논문을 표절한 논문을 게재한 행위에 대해 저작권 침해금지와 손해배상을 인정.", "표절이라는 표현이 직접 쓰인 민사 인용례. 요지만 적재되어 있어 원문 확인 필요."), ("2024도19189","A","정당한 인용 부정 확정(대법원)", "설교 영상 무단 게시가 저작권법 제28조의 정당한 인용에 해당하지 않는다며 유죄 확정.", "인용 항변 배척의 최신 대법원 확정례. 매체는 영상이나 인용 법리는 공통. 원심은 2024노28."), # ── B: 자서전 출판 실무의 주변 쟁점(성명표시·동일성유지·대필·출판계약) ("2018도144","B","표지갈이 — 저작자 아닌 자 표시(대법원)", "저작자 아닌 자를 저작자로 표시해 공표하면 저작권법 제137조 제1항 제1호 위반죄가 성립하고, 저작자 아닌 자와 실제 저작자의 동의가 있었더라도 원칙적으로 달라지지 않는다. 실제 저작자가 가담하면 공범으로 처벌된다.", "자서전 대필·공저 표기 관행에 직접 적용되는 형사 법리. 당사자 합의만으로는 면책되지 않는다는 점이 실무상 가장 중요. 다만 표절 탐지가 아니라 저작자 표시 문제이므로 B로 분류."), ("2020고정2156","B","공저 집필자 미표시", "공저자 중 1인이 집필한 부분이 포함된 문제집을 그 저작권자를 표시하지 않고 출판해 영리 목적 저작재산권 침해와 비저작자 표시 공표가 모두 인정(선고유예).", "대필·공저 자서전에서 기여자 누락 시의 형사 리스크 사례."), ("2024나13167","B","공동저작물 초고와 성명표시", "공동저작물인 초고를 활용해 논문을 게재하면서 성명을 표시하지 않은 피고에게 저작인격권 침해에 따른 위자료 책임 인정. 표절 인식이 없던 다른 피고에 대한 청구와 저작재산권 침해 주장은 기각.", "초고 제공자(구술자·대필자) 관계에 대응. 가해자별 고의 유무에 따라 책임이 갈린다는 점도 유용."), ("2021가합25193","B","2차적저작물과 원저작자 표시", "타인 대본의 2차적저작물에 해당하는 대본을 작성해 자신을 '작/연출'로 표시한 경우 성명표시권 침해로 위자료 책임이 있고, 원저작자를 표시하지 않는 한 공연할 수 없다.", "각색·윤문된 자서전에서 원저작자 표시 의무의 근거."), ("2022가합516598","B","교재 무단복제·성명표시권","영어교재 무단복제와 성명표시권 침해에 따른 손해배상 인정.","출판물 무단복제 + 인격권 병합 청구의 최근 사례. 요지만 적재."), ("2019가합106853","B","무단 게시와 출처 미표시","저작권 있는 서적을 무단으로 블로그에 게시하며 출처를 표시하지 않아 성명표시권 침해 인정.","출처 미표시가 인격권 침해로 구성되는 사례. 요지만 적재."), ("2010다79923","B","출판계약과 동일성유지권(대법원)", "저작자가 명시적·묵시적으로 동의한 범위 내의 변경은 동일성유지권 침해가 아니며, 동의 여부와 범위는 출판계약의 성질·경위·내용, 당사자 지위, 출판 목적, 저작물 성격 등을 종합해 개별적으로 판단한다.", "자서전 편집·윤문의 허용 범위를 가르는 기준."), ("2020가합589318","B","무단 변경 게시", "허락 없이 저작물 내용 일부를 변경해 블로그에 올린 사안에서 복제권·공중송신권과 동일성유지권 침해를 인정.", "부분 변경도 동일성유지권 침해가 된다는 사례."), ("2013가합85566","B","줄거리 변경과 동일성유지권", "작가 교체 후 극중 사망 인물을 살아나도록 줄거리를 변경한 것은 저작물의 본질을 해하는 중대한 변경으로 동일성유지권 침해.", "대필 교체·후속 편집으로 서사가 바뀌는 상황에 대응."), ("2024나2061521","B","번역저작물 무단 전재·수정","번역저작물을 무단 전재·수정해 저작재산권과 저작인격권을 침해했으나 손해배상 범위는 제한.","번역·재편집물 취급 사례. 요지만 적재."), ("2024가합96852","B","번역서의 창작성과 상속", "성경 번역서의 창작성을 인정하고 번역자 상속인들의 저작권 승계를 인정, 무단 복제·배포에 대해 출판·판매 금지, 폐기, 손해배상 인용.", "고인 저작물의 상속 저작권 문제. 유고 자서전 취급에 관련. 요지만 적재."), ("2019가단5264420","B","번역자료의 창작성 부정", "미국 변호사 윤리규정·이민법 등의 번역자료에 창작성을 부정해 침해를 인정하지 않음.", "번역·인용 자료의 창작성 하한. 2024가합96852와 대비하면 경계가 드러난다."), ("2020도6425","B","회복저작물의 2차적저작물(대망, 대법원)", "1975년판 번역서를 일부 수정·증감해 2005년판을 발행한 행위가 회복저작물 저작자의 권리를 침해하는지 판단.", "기존 판본을 수정·증보해 재출간하는 자서전 개정판 상황에 대응."), ("2021가합20761","B","출판계약과 외전 집필","소설 작가가 기존 소설의 외전을 집필해 게재한 것이 출판계약 위반이 아니라고 판단.","자서전 후속·개정판 집필의 계약상 허용 범위. 요지만 적재."), ("2022나40712","B","출판계약 종료 후 판매","출판계약 이후에도 출판권을 지속 판매해 저작재산권을 침해한 사건.","계약 종료 후 재고 유통 문제. 요지만 적재."), ("87도2604","B","교과서 무단 수록과 저작인격권", "타인의 동시·산문을 제목과 지은이를 고치고 문구를 수정해 교과서에 수록한 사안에서 저작인격권 침해를 다룸.", "성명표시·동일성유지 침해의 고전 사례. 판결 원문이 구자체 혼용이라 인용 시 정리 필요."), ("64다515","B","저작인격권 침해 최초 사례", "출판물 발매배포금지 사건에서 성명표시권·동일성유지권·개작권을 다룬 초기 대법원 판결.", "연혁 정리용. 판결문이 한자 원문이라 실무 인용 가치는 낮다."), ("2012다204587","B","저작물 폐기와 인격적 법익(대법원)", "저작물 폐기 행위는 동일성유지권 침해 성립 여부와 별개로 저작자의 인격권을 침해하는 위법행위가 될 수 있다(도라산역 벽화).", "저작인격권 밖의 일반 인격권 구성. 자서전 원고 폐기·회수 상황에 유추 가능."), ("2011가합60365","B","무단 수록과 명예훼손(미네르바)", "타인이 게시한 글을 승낙 없이 복제해 카페에 게시하고 이를 모아 책으로 출판한 행위 및 허위 비방 게시글에 대한 책임을 판단.", "제3자 글의 무단 서적화 + 명예훼손 병합. 자서전에 타인 서술·사생활이 등장하는 경우에 대응."), ("2024나306378","B","표지 일러스트 무단 수정","웹소설 표지 일러스트를 무단 수정하고 제3자를 성명 표시한 것은 동일성유지권·성명표시권 침해.","표지·삽화 등 부속 시각 자산 취급. 요지만 적재."), ("2018고정220","B","저작자 허위 표시 형사 처벌","노래의 저작자를 저작자 아닌 자로 표시해 공표한 행위로 형사 처벌.","2018도144의 하급심형 사례. 매체는 음악."), ("2024누94","B","논문 일부 표절과 행정 제재","논문 일부 표절만으로 전체 표절을 전제한 성과연봉 환수처분은 위법.","표절 범위 인정의 비례성. 저작권 침해가 아닌 행정 사건."), ("2025구합31","B","출처 미표시 인용과 징계","타인 연구보고서를 출처 표시 없이 무단 인용한 표절 행위에 대한 견책처분은 적법.","연구윤리형 표절의 제재 기준. 저작권 침해와 구별해 인용해야 한다."), # ── C: 법리는 유용하나 사안이 어문·출판이 아니어서 인용에 주의 ("2017다212095","C","게임 저작물의 실질적 유사성(대법원)", "게임 저작물의 창작적 개성과 실질적 유사성 판단.", "v1.3이 어문 유사성 근거로 인용하지만 사안은 게임이다. 어문 사건에 그대로 대응시키면 무리."), ("2011도5835","C","공정이용 법리(대법원)", "공정이용 법리는 요건이 명확히 규정되어 있어야 적용되며, 구 저작권법 하에서 논문 무단 복제물 제출의 침해 여부를 판단.", "현행 제35조의5 도입 전 판시라 최신 공정이용 기준으로 쓰기 어렵다."), ("2013카합1287","C","교재 유사 발행과 공정이용", "교육 목적으로 자격시험 표준교재와 유사한 교재를 발행·판매해도 공정이용에 해당하지 않는다.", "가처분 결정이라 본안 판단과 구별 필요."), ("2013나36100","C","내부 이용과 공정이용", "영리 회사가 타인 저작물을 내부적으로만 이용해도 공정이용이나 사적 이용을 위한 복제에 해당하지 않는다.", "사내 이용 국면. 출판 표절과는 거리."), ("2012다41410","C","제호·표지 디자인(대법원)", "요리책의 표지와 제호 디자인이 응용미술저작물이 아니라고 판단.", "제호 보호 부정 계열. 자서전 제목 유사 문의에 대한 답변 근거."), ("76가합25","C","제호의 저작물성(또복이 1심)","만화 제명의 저작물성 부정.","제호 불보호 원칙의 고전. 연혁 참고."), ("77다90","C","제호의 저작물성(또복이 상고심)","만화 제명 '또복이'의 저작물성 부정.","제호 불보호 원칙의 대법원 확인."), ("2012가합88872","C","외국 소설 출판 분쟁","일본 소설 '불모지대' 작가가 국내 출판사를 상대로 제기한 소.","출판권 분쟁이나 표절 판단 기준은 제공하지 않음."), ("2012가합541175","C","교재 기반 동영상 강의", "교재를 이용한 동영상 강의의 저작권 침해를 판단.", "매체 전환 이용. 본문 표절과는 국면이 다르다."), ("2012나33296","C","아이리스 표절 사건", "의거관계를 부정해 저작권 침해를 부정.", "영상 저작물 사안. 의거관계 판단 예시로만 참고."), ] COURT_FIX = {'2018고정220': '대전지방법원 홍성지원', '76가합25': '서울지방법원 영등포지원'} DATE_FIX = { # v1.3 대표판례 표 및 원천 목록에서 확인된 선고일 '2012다73493':'2014. 1. 29.', '2010다79923':'2013. 4. 26.', '2012다204587':'2015. 8. 27.', '2021가합25193':'2024. 7. 11.', '2011가합60365':'2012. 5. 25.', '87도2604':'1989. 1. 17.', } def court_of(cid, hold, title=''): m = re.search(r'([가-힣]{2,10}(?:법원|지원))\s*\d{4}\.', hold or '') if re.match(r'^\d{2,4}(다|도|후|마|그|카)\d', cid) and ('다' in cid[:6] or '도' in cid[:6] or '후' in cid[:6]): # 다/도/후는 대법원 사건부호 if re.search(r'^\d{2,4}(다|도|후)\d', cid): return '대법원' if m: return m.group(1) t = re.match(r'\[([가-힣]{2,10}(?:법원|지법|지원))\]', title or '') if t: return t.group(1).replace('지법','지방법원') return '미확인' def date_of(cid, hold): """사건번호와 같은 구절에 있는 날짜만 신뢰한다. 판시 본문에 인용된 다른 사건의 선고일을 잘못 집어오지 않도록 사건번호 기준 앞뒤 40자 안에서만 찾는다.""" h = re.sub(r'\s+', ' ', hold or '') key = re.sub(r'\s+', '', cid) pat = r'\s*'.join(re.escape(ch) for ch in cid) for m in re.finditer(pat, h): seg = h[max(0, m.start() - 45): m.end() + 15] d = re.search(r'(\d{4})\.\s*(\d{1,2})\.\s*(\d{1,2})\.?(?!\d)', seg) if d: return f"{d.group(1)}. {int(d.group(2))}. {int(d.group(3))}." return DATE_FIX.get(cid, '미확인') out = [] for cid, grade, topic, issue, why in CUR: r = D.get(cid) assert r, cid h = r['holding_summary'] out.append(dict( case_id=cid, grade=grade, court=court_of(cid, h, r['title']), decided=date_of(cid, h), title=r['title'], topic=topic, issue=issue, why=why, work_types='/'.join(r['work_types']), criteria='/'.join(r['criteria']), legal_tags='/'.join(r['legal_tags']), url=r['source_url'])) with open('data/precedents/precedent_listup.csv','w',newline='',encoding='utf-8-sig') as f: w = csv.DictWriter(f, fieldnames=['grade','case_id','court','decided','topic','title','issue','why','work_types','criteria','legal_tags','url']) w.writeheader() for o in out: w.writerow({k:o[k] for k in w.fieldnames}) import collections print(collections.Counter(o['grade'] for o in out), len(out)) for o in out: if o['court']=='미확인' or o['decided']=='미확인': print(' 결측:', o['case_id'], o['court'], o['decided'])