NestPay 산출물 · 백엔드 · Flutter 앱 · 프론트엔드 · 인프라 런타임의 제3자 구성요소 라이선스 원장
문서 목적 — NestPay 시스템에 포함·사용된 오픈소스 및 제3자 라이브러리와 그 라이선스를 원장 형태로 정리한 산출물입니다. 라이선스 준수 여부 점검과 배포 시 고지 의무 확인의 근거 자료로 사용합니다.
원천(실측 근거) — 백엔드 apps/api/build.gradle·apps/api/Dockerfile·docker-compose*.yml, Flutter user_app/pubspec.yaml·store_app/pubspec.yaml·packages/nestpay_shared/pubspec.yaml, 프론트엔드 apps/admin/js/vendor/*·apps/www/js/renewal/script/* 를 직접 읽어 목록화했습니다. Flutter 패키지 라이선스는 로컬 pub-cache 의 실제 LICENSE 파일로 확인했습니다.
표기 규칙 — 버전은 선언 기준(설정 파일에 적힌 값)입니다. Flutter 는 ^ 범위 지정이라 실제 해석 버전과 다를 수 있습니다. Spring Boot BOM 이 버전을 관리해 파일에 버전이 없는 항목은 BOM 관리 로 표기합니다. 라이선스가 문서·헤더로 확정되지 않은 항목은 확인필요 로 남깁니다(추정 금지).
build.gradle)프로젝트: kr.nestpay · 버전 0.1.0 · Java 17(toolchain) · Spring Boot 3.3.5 · 저장소 Maven Central. 아래는 build.gradle 에 직접 선언된 의존성입니다(전이 의존성 제외, 일부는 아래 별도 표기).
| 라이브러리 (group:artifact) | 버전 | 라이선스 | 용도 |
|---|---|---|---|
org.springframework.boot:spring-boot-starter-web | 3.3.5 (BOM) | Apache-2.0 | HTTP 웹서버(Controller·내장 Tomcat) |
org.springframework.boot:spring-boot-starter-validation | 3.3.5 (BOM) | Apache-2.0 | 입력값 검증(내부 Hibernate Validator=Apache-2.0, Jakarta Validation API=EPL-2.0/GPL-2.0-CE 이중, 아래 참고) |
org.springframework.boot:spring-boot-starter-actuator | 3.3.5 (BOM) | Apache-2.0 | 서버 상태 점검(/actuator/health) |
org.mybatis.spring.boot:mybatis-spring-boot-starter | 3.0.3 | Apache-2.0 | SQL 매핑(MyBatis) |
org.springframework.security:spring-security-crypto | 6.3.4 | Apache-2.0 | 간편 PIN Argon2id 해시 |
org.bouncycastle:bcprov-jdk18on | 1.78.1 | MIT 계열(Bouncy Castle License, MIT/X11 변형) | Argon2 실제 암호 연산 |
org.springdoc:springdoc-openapi-starter-webmvc-ui | 2.6.0 | Apache-2.0 | Swagger/OpenAPI 문서 화면(내부 swagger-ui=Apache-2.0) |
io.minio:minio (클라이언트) | 8.5.12 | Apache-2.0 | S3 호환 오브젝트 스토리지 접속 클라이언트 |
org.flywaydb:flyway-core | BOM 관리(선언 시 버전 미지정) | Apache-2.0 | DB 스키마 마이그레이션 |
org.flywaydb:flyway-mysql | BOM 관리(선언 시 버전 미지정) | Apache-2.0 | Flyway 의 MySQL/MariaDB 지원 |
org.mariadb.jdbc:mariadb-java-client (runtimeOnly) | 3.4.1 | LGPL-2.1 | MariaDB 접속 JDBC 드라이버 · 카피레프트(§5 참고) |
| 라이브러리 | 버전 | 라이선스 | 용도 |
|---|---|---|---|
org.springframework.boot:spring-boot-starter-test | 3.3.5 (BOM) | Apache-2.0 | 자동 테스트(JUnit5·Mockito 등 번들). 최종 산출물(배포 jar)에 미포함 |
org.mybatis.spring.boot:mybatis-spring-boot-starter-test | 3.0.3 | Apache-2.0 | MyBatis 테스트 지원. 배포 jar 미포함 |
| 구성요소 | 버전 | 라이선스 | 용도 / 근거 |
|---|---|---|---|
Spring Boot Gradle Plugin org.springframework.boot | 3.3.5 | Apache-2.0 | 실행 jar 패키징 (plugins 블록) |
io.spring.dependency-management | 1.1.6 | Apache-2.0 | 의존성 버전 자동 정렬 (plugins 블록) |
| Gradle (빌드 도구) | 확인필요(래퍼 gradle-wrapper.properties 기준) | Apache-2.0 | 빌드 실행기 — 산출물에 미포함 |
| Eclipse Temurin (OpenJDK / Adoptium) | 17-jdk(빌드) · 17-jre(실행) — Dockerfile | GPL-2.0 + Classpath Exception | Java 컴파일·실행 런타임. Classpath 예외로 앱은 GPL 영향 없음 |
전이 의존성 참고 — 위 스타터들이 내부적으로 끌어오는 하위 라이브러리(Jackson=Apache-2.0, SLF4J=MIT, Logback=EPL-1.0/LGPL-2.1 이중, Tomcat=Apache-2.0, Jakarta EE API 다수=EPL-2.0 등)는 선언 의존성이 아니어서 이 표에 개별 나열하지 않았습니다. 전체 전이 목록이 필요하면 ./gradlew dependencies 산출물로 별도 생성 가능합니다(현재 미실행 — 확인필요).
pubspec.yaml)회원앱 nestpay_user(v1.0.0+1) · 매장앱 nestpay_store(v1.0.0+1) · 공통 패키지 nestpay_shared(v0.0.1). Dart SDK 제약 ^3.12.2. 아래 라이선스는 로컬 pub-cache 의 실제 LICENSE 파일에서 직접 확인했습니다.
| 패키지 | 버전(선언) | 라이선스 | 용도 | 사용 앱 |
|---|---|---|---|---|
flutter (SDK) | SDK | BSD-3-Clause | Flutter 프레임워크 본체 | 회원·매장·공통 |
cupertino_icons | ^1.0.8 | MIT | iOS 스타일 아이콘 세트 | 회원·매장 |
mobile_scanner | ^7.4.0 | BSD-3-Clause | QR·바코드 카메라 스캔 | 회원 |
qr_flutter | ^4.1.0 | BSD-3-Clause | QR 코드 화면 표시 | 회원·매장 |
file_picker | ^3.0.4 | MIT | 파일 선택(업로드) | 회원·매장·공통 |
cryptography | ^2.7.0 | Apache-2.0 | 클라이언트측 암호화 | 회원 |
flutter_secure_storage | ^10.3.1 | BSD-3-Clause | 토큰 등 보안 저장(Keychain/Keystore) | 회원·공통 |
url_launcher | ^6.3.0 | BSD-3-Clause | 외부 링크·전화·메일 열기 | 회원·공통 |
http | ^1.6.0 | BSD-3-Clause | REST API 통신 | 공통(nestpay_shared) |
nestpay_shared | path(로컬) | 자체 개발(제3자 아님) | 회원·매장 공통 디자인·위젯·도우미 | 회원·매장 |
| 패키지 | 버전(선언) | 라이선스 | 용도 |
|---|---|---|---|
flutter_test (SDK) | SDK | BSD-3-Clause | 단위·위젯 테스트. 배포 앱 미포함 |
integration_test (SDK) | SDK | BSD-3-Clause | 실기기 통합(E2E) 테스트. 회원앱만. 배포 앱 미포함 |
flutter_lints | ^6.0.0 | BSD-3-Clause | 정적 분석 규칙 세트. 배포 앱 미포함 |
flutter_launcher_icons | ^0.14.4 | MIT | 앱 아이콘 자동 생성(빌드 도구). 배포 앱 미포함 |
flutter_native_splash | ^2.4.6 | MIT | 스플래시 화면 자동 생성(빌드 도구). 배포 앱 미포함 |
번들 폰트 — 회원·매장앱은 Pretendard 글꼴을 동봉합니다. Pretendard 는 SIL Open Font License 1.1(OFL-1.1)로 배포되는 서체이나, 프로젝트 파일에는 라이선스 원문이 동봉되어 있지 않습니다 → 확인필요(OFL-1.1 원문·고지 파일 동봉 권장). cupertino_icons 등 아이콘 폰트는 각 패키지 라이선스에 포함됩니다.
관리자(apps/admin)·소개 사이트(apps/www)는 프레임워크 없는 Vanilla JS 기반이며, 아래 소수의 제3자 스크립트만 파일로 동봉(vendoring)합니다. 각 파일 헤더의 라이선스 표기를 직접 확인했습니다.
| 라이브러리 | 버전 | 라이선스 | 용도 | 파일 경로 |
|---|---|---|---|---|
| qrcode-generator | 1.4.4 | MIT | 관리자 OTP 등록 QR 생성 | apps/admin/js/vendor/qrcode.js |
| Swiper | 11.0.5 | MIT | 소개 사이트 슬라이더 | apps/www/js/renewal/script/swiper-bundle.min.js |
| Tailwind CSS (브라우저 번들) | 확인필요(번들 내장·버전 미표기) | MIT | 소개 사이트 유틸리티 CSS | apps/www/js/renewal/script/line-clamp.js |
주의 — apps/www 소개 사이트의 renewal/ 스크립트는 발주사 기존 사이트를 참고한 정리·제작 중 상태입니다(요구사항: www 소개 페이지 신규 제작 필요). 따라서 위 Swiper·Tailwind 는 최종 산출물 확정 목록이 아니라 현재 리포지토리 실재 파일 기준입니다.
특히 Tailwind 번들 파일에는 cdn.tailwindcss.com should not be used in production 경고가 포함되어 있습니다. 정식 배포 전 PostCSS/Tailwind CLI 방식의 빌드 산출물로 전환할 것을 권장합니다.
docker-compose*.yml·Dockerfile 에 선언된 이미지 기준입니다. 이들은 수정 없이(unmodified) 공식 이미지를 그대로 사용합니다.
| 구성요소 | 버전 / 태그 | 라이선스 | 용도 | 비고 |
|---|---|---|---|---|
| nginx | 1.27-alpine | BSD-2-Clause | HTTPS 입구·정적 서빙·리버스 프록시(api/admin/pg/www) | — |
| MariaDB (서버) | 10.3 | GPL-2.0 | 데이터베이스 서버 | 미수정 사용·네트워크 접속. §5 참고 |
| MinIO (서버) | RELEASE.2024-10-13T13-34-11Z | AGPL-3.0 | 오브젝트 스토리지 서버(로컬 개발용) | 운영은 외부 오브젝트 스토리지 사용 예정. 강한 카피레프트, §5 참고 |
| Eclipse Temurin (OpenJDK) | 17 (jdk/jre) | GPL-2.0 + Classpath Exception | Java 런타임 베이스 이미지 | Classpath 예외로 애플리케이션 GPL 영향 없음 |
| Alpine Linux (nginx 베이스 OS) | nginx:1.27-alpine 내장 | 대부분 MIT/BSD, 일부 GPL 패키지 포함 | 컨테이너 베이스 OS | 구성 패키지별 상이 — 확인필요 |
MinIO 이중성 주의 — 백엔드가 쓰는 Java io.minio:minio 클라이언트(§1, Apache-2.0)와 위 MinIO 서버(AGPL-3.0)는 별개입니다. 클라이언트는 카피레프트 대상이 아닙니다.
요약 NestPay 구성요소의 대다수는 관대(permissive) 라이선스(Apache-2.0 · MIT · BSD-2/3)로, 저작권·라이선스 고지 유지 의무만 있습니다. 카피레프트(copyleft)에 해당하는 아래 3개 항목만 별도 관리가 필요합니다.
| 구성요소 | 라이선스 | 의무의 강도 | NestPay 적용 판단(사실 기반) |
|---|---|---|---|
| MariaDB Connector/J ( mariadb-java-client) | LGPL-2.1 | 약한 카피레프트 | 드라이버를 수정 없이 동적 링크(runtimeOnly)해 사용. LGPL 은 비-GPL 앱에서의 이용을 허용하며, 라이브러리 자체를 교체 가능하게 유지하면 소스공개 의무가 애플리케이션까지 확산되지 않음. 라이선스 고지 유지 필요. |
| MariaDB 서버 | GPL-2.0 | 강한 카피레프트 | 공식 이미지를 수정 없이 별도 프로세스로 실행하고 네트워크(JDBC)로만 접속. 단순 사용은 배포에 해당하지 않아 애플리케이션 소스공개 의무 없음. 서버 자체 재배포 시에만 GPL 고지·소스 제공 의무 발생. |
| MinIO 서버 | AGPL-3.0 | 매우 강한 카피레프트 (네트워크 사용 포함) | AGPL 은 네트워크로 서비스 제공 시에도 소스공개 의무가 발생. 현재 로컬 개발 전용이며 운영은 외부 오브젝트 스토리지로 대체 예정. MinIO 서버를 우리가 직접 운영·수정할 경우 의무가 발생하므로, 운영 스토리지 방식 확정 필요(확인필요). |
showLicensePage 등 표준 방식) — 현재 구현 여부 확인필요../gradlew dependencies·Flutter flutter pub deps 산출물로 확장 생성 가능(현재 이 문서는 직접 선언 의존성 기준).NestPay 산출물 · (주)페이네스트 · 작성일 2026-07-27 · 실제 코드/DB 기준 · 외부연동(펌뱅킹·본인인증·은행 실명조회)은 계약 전 스텁 상태임을 명시