유사성평가

프로그램은 여러 가지 형태의 표현이 결합된 것으로 소스코드(source code), 목적코드(object code), 마이크로코드(micro code), 알고리즘(algorithm), 흐름도(flow chart), 스크립트(script) 등의 복합적인 형태로 구성되어 있습니다. 유사성 검토는 두 소프트웨어의 문언적 표현요소인 소스코드 간 유사한 정도를 산술적으로 나타낸 정량적 유사도를 중요한 근거 중 하나로서 실질적인 유사성 평가에 활용하고 있습니다.

유사성 평가를 통하여 컴퓨터프로그램의 소스코드 레벨에서의 유사도, 자료구조의 유사도, 데이터베이스 유사도, 디렉토리 및 주요파일 이름의 유사도 등 다양하게 선정된 항목의 유사도가 각각 백분율로 산출되며, 일반적으로 원본기준 방식을 적용합니다. 산출된 각각의 유사도에 전체 컴퓨터프로그램에서 해당 부분이 차지하는 중요도를 가중치로 반영하여 종합 유사도를 산출하고, 그 결과를 컴퓨터프로그램의 복제여부 판단의 근거로 제시하게 됩니다.


비교 방법론 세부 항목 설명
소스 코드 비교 코드 라인별 비교 프로그램 A와 B의 소스 코드 라인을 직접 비교하여 일치하는 부분을 식별
코드 구조 비교 함수, 클래스, 모듈 등의 구조적 유사성을 평가
코드 주석 비교 주석 내용과 스타일의 유사성을 검토
코드 중복 검사 중복된 코드 블록을 찾고, 복제된 코드가 있는지 확인
코드 유사성 도구 사용 코드 비교 도구를 사용하여 유사성을 분석
알고리즘 분석 알고리즘 일치 여부 두 프로그램이 동일한 알고리즘을 사용하는지 확인
알고리즘 효율성 비교 시간 복잡도와 공간 복잡도를 비교하여 알고리즘의 효율성을 평가
알고리즘 흐름도 비교 알고리즘의 흐름도나 의사코드를 비교하여 유사성을 평가
기능 비교 기능 목록 비교 두 프로그램이 제공하는 기능 목록을 비교하여 공통 기능을 식별
기능 구현 비교 각 기능이 어떻게 구현되었는지 비교하여 유사성을 평가
기능 테스트 동일한 입력에 대해 두 프로그램이 동일한 출력을 생성하는지 테스트
인터페이스 및
사용자 경험 비교
UI/UX 디자인 비교 사용자 인터페이스 디자인, 레이아웃, 색상, 아이콘 등의 유사성을 평가
사용자 흐름 비교 사용자가 프로그램을 사용하는 과정에서의 흐름과 인터랙션의 유사성을 분석
디자인 패턴 비교 공통 디자인 패턴의 사용 여부를 확인
데이터 구조 및
데이터베이스 비교
데이터 모델 비교 데이터베이스의 스키마와 데이터 모델의 유사성을 평가
데이터 저장 방식 비교 데이터 저장 방식과 파일 형식의 유사성을 검토
데이터 무결성 검사 두 프로그램의 데이터 무결성 유지 방법을 비교
라이브러리 및
프레임워크 사용 비교
사용된 라이브러리 비교 두 프로그램에서 사용된 외부 라이브러리와 프레임워크를 비교
라이브러리 호출 패턴 비교 동일한 라이브러리를 사용하는 방식의 유사성을 평가
문서 및 주석 비교 기술 문서 비교 두 프로그램의 기술 문서, API 문서 등의 유사성을 평가
코드 주석 비교 코드 주석의 내용과 스타일을 비교하여 유사성을 확인
특허 및 저작권
문서 비교
등록된 특허 비교 프로그램과 관련된 특허 문서의 내용을 비교
저작권 등록 비교 두 프로그램의 저작권 등록 문서와 내용을 검토
실행 및 성능 비교 실행 시간 비교 동일한 작업에 대한 실행 시간을 비교
자원 사용 비교 메모리, CPU 사용량 등의 자원 사용을 비교
결과 정확도 비교 동일한 입력에 대한 결과의 정확도를 비교


초기 상담 의뢰 접수 예비 분석
문의 접수, 초기 상담, 기본 정보 제공 의뢰서 작성, 필요 자료 제출, 계약 체결 자료 검토, 분석 계획 수립
본 분석 보고서 작성 및 제출 결과 설명 및 후속 조치
소스 코드 비교, 알고리즘 분석, 기능 비교, UI/UX 비교, 법적 검토, 결과 도출 보고서 작성, 보고서 검토, 보고서 제출 결과 설명 회의, 후속 조치 지원