VISO TRUST MCP Server
공식AI 어시스턴트를 통해 VISO TRUST 서드파티 리스크 프로그램에 직접 접근하고 관리하세요.
문서
VISO TRUST MCP 서버
AI 어시스턴트와 VISO TRUST API 기능을 통합하기 위한 모델 컨텍스트 프로토콜(MCP) 서버입니다.
요구 사항
- Java 21+
- Gradle
- Docker (컨테이너화된 배포를 위한 선택 사항)
- MCP Inspector (테스트를 위한 선택 사항)
구성
VISO TRUST API 구성
VISO TRUST API에 대해 다음 속성을 구성할 수 있습니다:
visotrust.api.base-url: VISO TRUST API의 기본 URL (기본값: http://localhost:8080)visotrust.api.token: VISO TRUST 플랫폼의 API 토큰 (필수)visotrust.api.timeout: API 요청 시간 초과(밀리초) (기본값: 30000)visotrust.api.connect-timeout: API 연결 시간 초과(밀리초) (기본값: 5000)
visotrust.api.token 환경 변수에 대한 API 토큰 생성 방법에 대한 자세한 내용은 VISO TRUST 지원 문서를 참조하세요.
애플리케이션 프로필
이 애플리케이션은 다양한 배포 시나리오에 맞게 다른 구성을 활성화하기 위해 Spring Boot 프로필을 지원합니다.
원격 프로필
remote 프로필은 서버 전송 이벤트(SSE)를 사용한 원격 MCP 지원을 위해 특별히 설계되었습니다. 이 프로필은 MCP 서버가 HTTP/SSE 연결을 통해 원격 클라이언트와 통신해야 하는 분산 환경에서 최적으로 작동하도록 애플리케이션을 구성합니다.
원격 프로필의 주요 차이점:
- 표준 I/O 대신 SSE 기반 통신으로 구성됨
- 원격 클라이언트 연결을 위한 최적화된 서버 설정
- 분산 디버깅을 위한 향상된 로깅
원격 프로필 활성화 방법:
Java로 직접 실행하는 경우:
java -jar viso-mcp-server-<version>.jar --spring.profiles.active=remote
Gradle로 실행하는 경우:
./gradlew bootRun --args="--spring.profiles.active=remote"
Docker를 사용하는 경우:
docker run -i --rm \
-e VISOTRUST_API_TOKEN=<your-api-token> \
-e SPRING_PROFILES_ACTIVE=remote \
viso-mcp-server
원격 프로필을 사용해야 하는 경우:
- MCP 서버를 원격 서버 또는 클라우드 환경에 배포할 때
- 클라이언트가 직접 stdio 대신 HTTP/SSE를 통해 연결할 때
- 분산 배포를 위한 향상된 로깅 및 모니터링이 필요할 때
- SSE 통신이 필요한 웹 기반 AI 어시스턴트와 통합할 때
로컬 개발 및 직접 stdio 통신의 경우 기본 프로필을 사용하세요(프로필 지정 불필요).
설치
빠른 설치
아래 버튼 중 하나를 클릭하여 VS Code에 VISO MCP 서버를 설치하세요:
VS Code를 사용한 수동 설정
VS Code의 사용자 설정(JSON) 파일에 다음 JSON 블록을 추가하세요. Ctrl + Shift + P를 누르고 Preferences: Open User Settings (JSON)을 입력하여 이 작업을 수행할 수 있습니다.
{
"mcp": {
"inputs": [
{
"type": "promptString",
"id": "viso_baseurl",
"description": "VISO TRUST API Base URL",
"default": "https://app.visotrust.com"
},
{
"type": "promptString",
"id": "viso_token",
"description": "VISO TRUST API Token",
"password": true
}
],
"servers": {
"viso-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"VISOTRUST_API_TOKEN",
"-e",
"VISOTRUST_API_BASEURL",
"visotrustai/viso-mcp-server:latest"
],
"env": {
"VISOTRUST_API_BASEURL": "${input:viso_baseurl}",
"VISOTRUST_API_TOKEN": "${input:viso_token}"
}
}
}
}
}
선택적으로, 작업 영역의 .vscode/mcp.json 파일에 유사한 예제(mcp 키 없이)를 추가할 수 있습니다. 이렇게 하면 다른 사람과 구성을 공유할 수 있습니다.
{
"inputs": [
{
"type": "promptString",
"id": "viso_baseurl",
"description": "VISO TRUST API Base URL",
"default": "https://app.visotrust.com"
},
{
"type": "promptString",
"id": "viso_token",
"description": "VISO TRUST API Token",
"password": true
}
],
"servers": {
"viso-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e",
"VISOTRUST_API_TOKEN",
"-e",
"VISOTRUST_API_BASEURL",
"visotrustai/viso-mcp-server:latest"
],
"env": {
"VISOTRUST_API_BASEURL": "${input:viso_baseurl}",
"VISOTRUST_API_TOKEN": "${input:viso_token}"
}
}
}
}
Claude Desktop 및 기타 MCP 클라이언트와 함께 사용
Docker 구성
{
"mcpServers": {
"viso-mcp": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"-e", "VISOTRUST_API_TOKEN",
"-e", "VISOTRUST_API_BASEURL",
"visotrustai/viso-mcp-server:latest"
],
"env": {
"VISOTRUST_API_TOKEN": "<your-api-token>",
"VISOTRUST_API_BASEURL": "https://app.visotrust.com"
}
}
}
}
Java 구성
{
"mcpServers": {
"viso-mcp": {
"command": "java",
"args": [
"-jar",
"viso-mcp-server-<version>.jar",
"--port",
"8080",
"--host",
"localhost"
],
"env": {
"JAVA_TOOL_OPTIONS": "-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005",
"VISOTRUST_API_TOKEN": "<your-api-token>",
"VISOTRUST_API_BASEURL": "https://app.visotrust.com"
}
}
}
}
참고: JAVA_TOOL_OPTIONS 환경 변수는 원격 디버깅을 위한 JVM 옵션을 설정하는 데 사용됩니다. 주소와 포트는 필요에 따라 변경할 수 있습니다.
💻 개발
Docker 설정
Docker 이미지 빌드
docker build -t viso-mcp-server .
Docker 컨테이너 실행
docker run -i --rm -e VISOTRUST_API_TOKEN=<your-api-token> viso-mcp-server
디버깅
MCP Inspector 설치
npm -g install @modelcontextprotocol/inspector
테스트를 위한 MCP Inspector 실행
- MCP 서버 Jar 파일 빌드
./gradlew bootJar
- MCP Inspector 실행
npx @modelcontextprotocol/inspector \
-e JAVA_TOOL_OPTIONS=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=\*:5005 \
-e VISOTRUST_API_TOKEN=<your-api-token> \
java -jar build/libs/viso-mcp-server-<version>.jar \
--port 8080 --host localhost
<version>를 프로젝트의 현재 버전(예: 1.0.0 또는 최신 릴리스의 버전)으로 바꾸세요.
CI/CD 파이프라인
이 프로젝트는 지속적 통합 및 배포를 위해 GitHub Actions를 사용합니다. 워크플로에는 다음 작업이 포함됩니다:
Lint
Spotless를 사용하여 코드 형식을 확인합니다:
./gradlew spotlessCheck
Build
애플리케이션을 빌드하고 JAR 파일을 생성합니다:
./gradlew build
Publish
새 릴리스가 생성되면:
- build.gradle의 프로젝트 버전을 릴리스 태그와 일치하도록 업데이트합니다.
- 릴리스 태그의 버전으로 JAR 파일을 GitHub 릴리스에 업로드합니다.
- 다음 태그를 사용하여 Docker 이미지를 빌드하고 Docker Hub에 푸시합니다:
latest- 릴리스 태그(예:
v1.0.0)
게시에 필요한 비밀
Docker Hub 게시를 활성화하려면 GitHub 리포지토리에 다음 비밀을 추가하세요:
DOCKERHUB_USERNAME: Docker Hub 사용자 이름DOCKERHUB_TOKEN: Docker Hub 액세스 토큰
🛠️ 도구
이 섹션에서는 VISO MCP 서버에서 노출하는 도구에 대한 문서를 제공합니다. 각 도구에는 특정 목적, 입력 매개변수 및 출력 형식이 있습니다.
평가
get_assessment - ID로 평가 가져오기
- id: 평가 ID (숫자, 필수)
특정 평가에 대한 자세한 정보를 반환합니다.
get_assessment_summary - ID로 평가 요약 가져오기
- id: 평가 ID (숫자, 필수)
특정 평가에 대한 요약 세부 정보를 반환합니다.
create_assessment - 기존 관계에 대한 평가 시작
- relationshipId: 평가를 생성할 관계의 ID (숫자, 필수)
- recipientEmail: 평가 수신자의 이메일 주소 (문자열, 선택 사항)
- recipientFirstName: 평가 수신자의 이름 (문자열, 선택 사항)
- recipientLastName: 평가 수신자의 성 (문자열, 선택 사항)
- publicDocumentUrls: 평가에 포함할 공개 문서의 URL (문자열[], 선택 사항)
- followupType: 후속 조치 유형 (문자열 열거형, 선택 사항)
- followupRiskThreshold: 후속 조치를 트리거하는 위험 수준 임계값 (문자열 열거형, 선택 사항)
- followupTimeline: 후속 조치 일정 (문자열 열거형, 선택 사항)
- collectionTimeline: 공급업체가 평가 제출을 완료해야 하는 일정 (문자열 열거형, 선택 사항)
- noVendorResponseAction: 공급업체가 응답하지 않을 때 수행할 작업 (문자열 열거형, 선택 사항)
- aiProcessingOnly: 사람 검토 없이 AI만 사용하여 처리할지 여부 (부울, 선택 사항)
- requestedAuditTypes: 이 평가에 요청된 감사 유형 (문자열[], 선택 사항)
생성된 평가 세부 정보를 반환합니다.
update_assessment_expiration_date - 공급업체가 평가 응답을 제출해야 하는 마감일 업데이트
- id: 평가 ID (숫자, 필수)
- expirationDate: 새 만료 날짜/시간, 오프셋이 있는 ISO-8601; 미래여야 함 (문자열, 필수)
확인 메시지를 반환합니다.
update_assessment_followup - 평가에 대한 후속 조치 구성 업데이트
- id: 평가 ID (숫자, 필수)
- followupType: 후속 조치 유형 (문자열 열거형, 필수)
- followupRiskThreshold: 후속 평가가 트리거되어야 하는 위험 임계값 이상 (문자열 열거형, 선택 사항)
- followupTimeline: 후속 조치 일정 (문자열 열거형, 선택 사항)
확인 메시지를 반환합니다.
감사 로그
get_user_audit_log_events - 조직의 사용자 범위 감사 로그 이벤트 가져오기
- start: 쿼리의 시작 날짜/시간, 오프셋이 있는 ISO-8601 (문자열, 필수)
- end: 쿼리의 종료 날짜/시간, 오프셋이 있는 ISO-8601 (문자열, 필수)
- eventTypes: 필터링할 이벤트 유형의 선택적 집합 (예:
USER_LOGGED_IN); 모두 보려면 비워 둠 (문자열[], 선택 사항)
최대 500개의 레코드로 제한된 사용자 감사 로그 이벤트 목록을 반환합니다.
get_audit_log_events - 필터링된 감사 로그 이벤트 가져오기 (사용자, 조직, 평가 및 관계 이벤트)
- start: 쿼리의 시작 날짜/시간, 오프셋이 있는 ISO-8601 (문자열, 필수)
- end: 쿼리의 종료 날짜/시간, 오프셋이 있는 ISO-8601 (문자열, 필수)
- eventTypes: 필터링할 이벤트 유형의 선택적 집합 (예:
ASSESSMENT_COMPLETED,RELATIONSHIP_CREATED); 모두 보려면 비워 둠 (문자열[], 선택 사항)
다형성 감사 로그 이벤트 레코드를 반환합니다. 각 항목에는 최소한 auditEventType 및 dateTime이(가) 있습니다.
비즈니스 사례
get_all_business_cases - 조직에 사용 가능한 모든 비즈니스 사례 가져오기
매개변수가 필요하지 않습니다.
조직에 사용 가능한 모든 비즈니스 사례 목록을 반환합니다.
데이터 유형
get_all_datatypes - 조직에 사용 가능한 모든 데이터 유형 가져오기
매개변수가 필요하지 않습니다.
조직에 사용 가능한 모든 데이터 유형 목록을 반환합니다.
공급업체 디렉터리
search_vendor_directory - URL 또는 도메인으로 VISO TRUST 공급업체 디렉터리에서 공급업체 조회
- urlOrDomain: 검색할 URL 또는 도메인 이름, 예:
example.com(문자열, 필수)
기본 공급업체 메타데이터(이름, 홈페이지, 설명, 파비콘, 알려진 도메인)를 반환합니다.
관계
get_all_relationships - 모든 관계 및 평가 세부 정보 목록 가져오기
매개변수가 필요하지 않습니다.
평가 상태, 위험 수준 및 연락처 세부 정보를 포함한 타사 공급업체에 대한 정보를 반환합니다.
get_relationship_by_id - ID로 특정 관계 및 평가 세부 정보 가져오기
- id: 관계 ID (숫자, 필수)
평가 상태, 위험 수준 및 연락처 세부 정보를 포함한 타사 공급업체에 대한 자세한 정보를 반환합니다.
get_relationship_assessment_history - 관계에 대한 평가 기록 가져오기
- id: 관계 ID (숫자, 필수)
지정된 관계와 연결된 평가 목록을 반환합니다.
create_relationship - 타사 공급업체와의 새 관계 생성
- name: 관계/공급업체 이름 (문자열, 필수)
- homepage: 공급업체의 홈페이지 URL (문자열, 필수)
- businessOwnerEmail: 비즈니스 소유자의 이메일 주소 (문자열, 필수)
- businessOwnerFirstName: 비즈니스 소유자의 이름 (문자열, 선택 사항)
- businessOwnerLastName: 비즈니스 소유자의 성 (문자열, 선택 사항)
- description: 관계/공급업체에 대한 설명 (문자열, 선택 사항)
- contextTypes: 이 관계에 대한 비즈니스 컨텍스트 유형 목록 (객체[], 선택 사항)
- dataTypes: 이 관계에서 처리되는 데이터 유형 목록 (객체[], 선택 사항)
- tags: 이 관계를 분류하기 위한 태그 목록 (문자열[], 선택 사항)
- thirdPartyContact: 타사 공급업체 담당자의 연락처 세부 정보 (객체, 선택 사항)
생성된 관계 세부 정보를 반환합니다.
create_relationship_by_domain - 공급업체 도메인만 사용하여 새 관계 생성
- domain: 공급업체의 도메인, 예:
visotrust.com(문자열, 필수) - vendorName: 공급업체 이름 (문자열, 필수)
- product: 공급업체가 제공하는 제품 (문자열, 선택 사항)
- description: 공급업체 관계에 대한 설명 (문자열, 선택 사항)
생성된 관계 세부 정보를 반환합니다.
update_relationship - 타사 공급업체와의 기존 관계 업데이트
- id: 관계 ID (숫자, 필수)
- name: 관계/공급업체 이름 (문자열, 필수)
- homepage: 공급업체의 홈페이지 URL (문자열, 선택 사항)
- description: 관계/공급업체에 대한 설명 (문자열, 선택 사항)
- contextTypes: 비즈니스 컨텍스트 유형 목록 (객체[], 선택 사항)
- dataTypes: 이 관계에서 처리되는 데이터 유형 목록 (객체[], 선택 사항)
- businessOwnerEmail: 비즈니스 소유자의 이메일 주소 (문자열, 선택 사항)
- businessOwnerFirstName: 비즈니스 소유자의 이름 (문자열, 선택 사항)
- businessOwnerLastName: 비즈니스 소유자의 성 (문자열, 선택 사항)
- tags: 태그 목록 (문자열[], 선택 사항)
업데이트된 관계 세부 정보를 반환합니다.
partially_update_relationship - 기존 관계 부분 업데이트
update_relationship와(과) 동일한 필드를 허용합니다. 요청에 제공된 필드만 변경되고 다른 필드는 그대로 유지됩니다.
업데이트된 관계 세부 정보를 반환합니다.
search_relationships - 도메인 이름 또는 공급업체 이름으로 관계 검색
- domains: 검색할 도메인 이름 목록 (문자열[], 필수)
- name: 검색할 공급업체/관계 이름 (문자열, 필수)
평가 세부 정보와 함께 일치하는 관계 목록을 반환합니다.
create_tags - 관계 분류를 위한 새 태그 생성
- tags: 생성할 태그 이름 목록 (문자열[], 필수)
새로 생성된 태그를 포함한 모든 태그 목록을 반환합니다.
update_third_party_contact - 타사 공급업체의 연락처 세부 정보 업데이트
- relationshipId: 관계 ID (숫자, 필수)
- email: 연락처 이메일 (문자열, 필수)
- firstName: 연락처 이름 (문자열, 필수)
- lastName: 연락처 성 (문자열, 필수)
업데이트된 관계 세부 정보를 반환합니다.
onboard_relationship - 승인 요약 및 수명 주기 관리 설정을 선택적으로 포함하여 관계 온보딩
- id: 관계 ID (숫자, 필수)
- approvalSummary: 온보딩 시 기록되는 선택적 승인 요약 (문자열, 선택 사항)
- lifecycleManagementUpdateRequest: 선택적 수명 주기 관리 설정 (객체, 선택 사항)
- artifactUpdateSettings.artifactUpdateType: 아티팩트 업데이트 유형 (문자열 열거형)
- recertificationSettings.recertificationType: 재인증 유형 (문자열 열거형)
- recertificationSettings.recertificationDate: 다음 재인증 날짜/시간, 오프셋 포함 ISO-8601 (문자열)
- recertificationSettings.reviewFrequency:
THREE_YEARS,TWO_YEARS,ANNUAL,SEMIANNUAL, 또는QUARTERLY(문자열 열거형)
온보딩된 관계 세부 정보를 반환합니다.
offboard_relationship - 관계 오프보딩
- id: 관계 ID (숫자, 필수)
오프보딩된 관계 세부 정보를 반환합니다.
archive_relationship - 관계 아카이브
- id: 관계 ID (숫자, 필수)
아카이브된 관계 세부 정보를 반환합니다.
웹훅
get_all_webhooks - 모든 웹훅 가져오기
매개변수가 필요하지 않습니다.
모든 웹훅 구성 목록을 반환합니다.
get_webhook - ID로 웹훅 구성 가져오기
- id: 웹훅 ID (숫자, 필수)
특정 웹훅 구성의 세부 정보를 반환합니다.
create_webhook_configuration - 웹훅 구성 생성
- request: 웹훅 생성 매개변수 (객체, 필수)
- url: 웹훅 URL (문자열, 필수)
- secret: 웹훅 시크릿 (문자열, 필수)
- eventTypes: 웹훅을 트리거할 이벤트 유형 (문자열 배열, 필수)
- serviceType: 웹훅의 서비스 유형 (문자열, 필수)
생성된 웹훅 구성을 반환합니다.
update_webhook_configuration - 웹훅 구성 업데이트
- request: 웹훅 업데이트 매개변수 (객체, 필수)
- id: 웹훅 ID (숫자, 필수)
- url: 웹훅 URL (문자열, 선택 사항)
- secret: 웹훅 시크릿 (문자열, 선택 사항)
- eventTypes: 웹훅을 트리거할 이벤트 유형 (문자열 배열, 선택 사항)
- serviceType: 웹훅의 서비스 유형 (문자열, 선택 사항)
업데이트된 웹훅 구성을 반환합니다.
delete_webhook_configuration - 웹훅 구성 삭제
- id: 웹훅 ID (숫자, 필수)
지정된 웹훅 구성을 삭제합니다.
인텔리전스 보고서
create_bitsight_intelligence_report - 새 BitSight 인텔리전스 보고서 생성
- request: BitSight 보고서 매개변수 (객체, 필수)
- vendorDomain: 공급업체의 기본 도메인 이름 (문자열, 필수)
- reportDate: 보고서가 생성된 날짜/시간 (ISO 8601 문자열, 필수)
- link: 제공업체 UI로의 선택적 링크 (문자열, 선택 사항)
- guid: 엔터티에 대한 BitSight GUID (문자열, 필수)
- customId: BitSight의 사용자 지정 식별자 (문자열, 선택 사항)
- name: BitSight 엔터티의 표시 이름 (문자열, 선택 사항)
- description: BitSight 엔터티에 대한 설명 (문자열, 선택 사항)
- primaryDomain: BitSight 엔터티의 기본 도메인 (문자열, 선택 사항)
- ratingRange: BitSight 등급 범위 (문자열, 선택 사항)
- ratingColor: BitSight 등급 색상 (문자열, 선택 사항)
- confidence: BitSight 등급의 신뢰 수준 (문자열, 선택 사항)
생성된 인텔리전스 보고서를 반환합니다.
create_security_scorecard_intelligence_report - 새 SecurityScorecard 인텔리전스 보고서 생성
- request: SecurityScorecard 보고서 매개변수 (객체, 필수)
- vendorDomain: 공급업체의 기본 도메인 이름 (문자열, 필수)
- reportDate: 보고서가 생성된 날짜/시간 (ISO 8601 문자열, 필수)
- link: 제공업체 UI로의 선택적 링크 (문자열, 선택 사항)
- grade: SecurityScorecard 문자 등급 (문자열, 필수)
- domain: 스코어카드 엔터티와 연결된 도메인 (문자열, 선택 사항)
- score: SecurityScorecard의 숫자 점수 (숫자, 선택 사항)
생성된 인텔리전스 보고서를 반환합니다.
create_recorded_future_intelligence_report - 새 Recorded Future 인텔리전스 보고서 생성
- request: Recorded Future 보고서 매개변수 (객체, 필수)
- vendorDomain: 공급업체의 기본 도메인 이름 (문자열, 필수)
- reportDate: 보고서가 생성된 날짜/시간 (ISO 8601 문자열, 필수)
- entityType: Recorded Future 엔터티 유형, 예:
Company(문자열, 필수) - entity: Recorded Future 엔터티 식별자 (문자열, 필수)
- riskScore: 숫자 위험 점수 (숫자, 필수)
- riskLevel: 위험 수준 레이블, 예:
Critical/High/Medium/Low(문자열, 필수) - link: 제공업체 UI의 보고서로의 선택적 링크 (문자열, 선택 사항)
- firstSeen: 엔터티에 대해 가장 먼저 관찰된 날짜, ISO 8601 (문자열, 선택 사항)
- lastSeen: 엔터티에 대해 가장 최근에 관찰된 날짜, ISO 8601 (문자열, 선택 사항)
- triggeredRuleCount: 트리거된 Recorded Future 규칙 수 (숫자, 선택 사항)
- maxRuleCount: 평가된 최대 Recorded Future 규칙 수 (숫자, 선택 사항)
- summary: Recorded Future의 선택적 요약 텍스트 (문자열, 선택 사항)
- criticalityLabel: 엔터티에 대한 Recorded Future 중요도 레이블 (문자열, 선택 사항)
생성된 인텔리전스 보고서를 반환합니다.
get_intelligence_reports_by_vendor - 공급업체의 모든 인텔리전스 보고서 가져오기
- vendorDomain: 공급업체의 기본 도메인 이름 (문자열, 필수)
지정된 공급업체에 대한 인텔리전스 보고서 목록을 반환합니다.
get_latest_intelligence_report - 특정 소스에서 공급업체의 최신 인텔리전스 보고서 가져오기
- vendorDomain: 공급업체의 기본 도메인 이름 (문자열, 필수)
- source: 인텔리전스 제공업체 (문자열 열거형:
BITSIGHT,SECURITY_SCORECARD, 또는RECORDED_FUTURE, 필수)
지정된 공급업체 및 소스에 대한 최신 인텔리전스 보고서를 반환합니다.
사용자
get_all_users - 조직의 모든 사용자 가져오기
- page: 검색할 결과 페이지 (숫자, 선택 사항; 기본값 0)
- size: 페이지당 레코드 수 (숫자, 선택 사항; 기본값 20)
- sort: property(,asc|desc) 형식의 정렬 기준 (문자열, 선택 사항)
페이지네이션된 사용자 목록을 반환합니다.
get_user_by_email - 이메일로 사용자 가져오기
- email: 사용자의 이메일 주소 (문자열, 필수)
사용자 세부 정보를 반환합니다.
create_user - 새 사용자 생성
- request: 사용자 생성 매개변수 (객체, 필수)
- email: 새 사용자의 이메일 주소 (문자열, 필수)
- firstName: 새 사용자의 이름 (문자열, 필수)
- lastName: 새 사용자의 성 (문자열, 필수)
생성된 사용자를 반환합니다.
코드 포맷팅
이 프로젝트는 코드 포맷팅을 위해 Google Java Format과 함께 Spotless를 사용합니다. 일관된 코드 스타일을 보장하기 위해 사전 커밋 훅이 자동으로 설정됩니다.
설정
리포지토리를 클론한 후, Gradle 명령을 실행하면 사전 커밋 훅이 자동으로 설정됩니다.
수동 포맷팅
모든 파일을 수동으로 포맷하려면:
./gradlew spotlessApply
파일이 올바르게 포맷되었는지 확인하려면:
./gradlew spotlessCheck
포맷팅 문제로 사전 커밋 훅이 커밋을 거부하는 경우, ./gradlew spotlessApply을 실행하여 포맷팅을 수정한 후 다시 커밋을 시도하십시오.
라이선스
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하십시오.