2021.03.02
안녕하세요, 폐사는 장비를 개발하는 기업입니다.
금번 개발하는 장비에 OpenALPR(AGPL 3.0)을 사용하는 프로그램을 개발하고 있습니다.
OpenALPR을 사용하는 프로젝트는 아래와 같은 구조로 되어있습니다.
---------------------------- 아래 ---------------------------------
번호판 인식 프로그램(EXE 파일)
ㄴ 카메라 제어 dll(C#)
ㄴ 이미지 처리 dll(C#)
ㄴ 번호판 인식 dll(C++, OpenALPR, OpenCV 사용) [dll 로드 해서 사용]
ㄴ 장비 제어 dll(C#)
ㄴ 기타 등등 dll(C#)
ㄴ UI dll(C#)
--------------------------------------------------------------------
여기서 질문은 4가지 입니다.
1. 고객이 저희 장비를 구매했을때, AGPL 3.0을 사용한 번호판 인식 dll의 소스코드를 공개해야 함은 인지하고 있습니다. 다만 이와는 별도로 동작하는 카메라 제어 dll 등을 모두다 소스코드를 제공해야 하는지요?
2. 고객에게 제공한 소스코드를 경쟁사와 같은 제3자에게 고객이 제공했을때, 저희가 해당 부분에 대한 법적 책임이나 이에 상응하는 금액을 요구할 수 있나요?
3. 위와 같이 개발한 프로그램과 하나의 PC에서 동작하며 통신하는 별도의 프로그램이 있다고 하면 해당 프로그램도 코드도 공개해야 하나요? 만약 위 프로그램을 DLL로 개발해서 다른 프로그램에서 로드해 사용한다면 그 프로그램 코드도 공개해야 하나요?
4. OpenALPR의 경우 EXE로 컴파일해서 사용할 수 있는데, dll로 로드하는게 아닌 exe로 실행하여 인자로 이미지를 주고, 결과를 받아오는 형태로 사용하면 OpenALPR의 exe 프로그램에 대한 코드만 공개 하는 것인가요?
이상입니다. 감사합니다.
------ 댓글 -------
License 관리자
안녕하세요
OSS 라이선스 관리자입니다.
말씀해주신 아키텍처에 의하면 AGPL-3.0인 OpenALPR이 동적 링킹 형태로 결합되어 있는 것으로 판단됩니다.
1. 이러한 경우 번호판 인식 프로그램(EXE 파일)의 모든 부분이 AGPL-3.0의 영향을 받아 별도로 동작하는 카메라 제어 dll 등의 모든 동적 링킹되는 dll 모두 소스코드 제공해야 하는 의무가 발생합니다.
2. AGPL-3.0에서 명시된 권리와 의무 상으로는 법적 책임이나 이에 상응하는 금액을 요구할 수 없을 것으로 보입니다.
3. 위와 같이 개발한 프로그램과 별도의 프로그램 간의 통신 방식에 따라 AGPL-3.0의 전염을 판단할 수 있습니다.
파이프와 소켓, 명령행 인자 등은 두개의 독립된 프로그램간의 통신일 경우에는 개발한 프로그램의 AGPL-3.0이 별도의 프로그램에 AGPL-3.0이 전염되지 않을 것이라 판단됩니다.
DLL로 개발해서 다른 프로그램에서 로드한다고 해도 동적 링킹 형태이기 때문에 다른 프로그램에도 AGPL-3.0 전염에 따라 코드 공개 의무가 발생할 수 있습니다.
4. 상기 설명에서와 같이 OpenALPR을 명령행 인자 형태로 사용한다면 OpenALPR의 AGPL-3.0이 이외의 프로그램에 전염되지 않을 수 있습니다.
다만, 말씀해주신 것과 같이 OpenALPR 범위에 대한 소스코드 공개의무 등이 발생할 수 있으며, '밀접한 데이터 통신(intimate data communication)'일 경우에는 AGPL-3.0이 전염될 수 있습니다.
여기서 '밀접한 데이터 통신'이란 OpenALPR에 대한 의존도로 이해하시면 됩니다.
(의존도에 대한 최종 법적 판단은 법원에서 결정됩니다.)
고맙습니다
※ 법적 분쟁 발생시 본 답변은 법률적 해석이나 논리로 활용될 수 없습니다.
댓글 0
댓글 작성
댓글을 작성하려면 게시글 작성 시 입력한 이메일과 패스워드를 입력해주세요.