UNPKG

@frank-auth/react

Version:

Flexible and customizable React UI components for Frank Authentication

770 lines (769 loc) 33.8 kB
import type {LocaleMessages} from './types'; export const ko: LocaleMessages = { common: { actions: { save: '저장', cancel: '취소', delete: '삭제', edit: '편집', update: '업데이트', create: '생성', submit: '제출', reset: '재설정', clear: '지우기', search: '검색', filter: '필터', sort: '정렬', refresh: '새로 고침', reload: '다시 로드', back: '뒤로', next: '다음', previous: '이전', continue: '계속', finish: '완료', close: '닫기', open: '열기', show: '표시', hide: '숨기기', copy: '복사', paste: '붙여넣기', cut: '잘라내기', select: '선택', selectAll: '모두 선택', deselect: '선택 해제', confirm: '확인', deny: '거부', approve: '승인', reject: '거절', retry: '재시도', undo: '실행 취소', redo: '다시 실행' }, status: { loading: '로딩 중...', success: '성공', error: '오류', warning: '경고', info: '정보', pending: '대기 중', completed: '완료됨', failed: '실패', cancelled: '취소됨', active: '활성', inactive: '비활성', enabled: '사용', disabled: '사용 안 함', online: '온라인', offline: '오프라인', connected: '연결됨', disconnected: '연결 끊김' }, timeAgo: { justNow: '방금 전', minutesAgo: '{count}분 전', hoursAgo: '{count}시간 전', daysAgo: '{count}일 전', weeksAgo: '{count}주 전', monthsAgo: '{count}개월 전', yearsAgo: '{count}년 전' }, navigation: { home: '홈', dashboard: '대시보드', profile: '프로필', settings: '설정', help: '도움말', support: '지원', documentation: '문서', feedback: '피드백', about: '정보', privacy: '개인정보', terms: '약관', contact: '연락처' }, general: { yes: '예', no: '아니요', ok: '확인', maybe: '아마도', none: '없음', all: '모두', other: '기타', unknown: '알 수 없음', optional: '선택사항', required: '필수', recommended: '권장', advanced: '고급', basic: '기본', custom: '사용자 정의', default: '기본값', example: '예시', placeholder: '자리 표시자', noData: '데이터 없음', noResults: '결과 없음', empty: '비어 있음', total: '총계', subtotal: '소계', count: '개수', limit: '제한', unlimited: '무제한' } }, auth: { signIn: { title: '로그인', subtitle: '계정에 로그인하세요', emailLabel: '이메일', emailPlaceholder: '이메일을 입력하세요', usernameLabel: '사용자명', usernamePlaceholder: '사용자명을 입력하세요', passwordLabel: '비밀번호', passwordPlaceholder: '비밀번호를 입력하세요', rememberMe: '로그인 상태 유지', forgotPassword: '비밀번호를 잊으셨나요?', signInButton: '로그인', signInWithProvider: '{provider}로 로그인', orDivider: '또는', noAccount: '계정이 없으신가요?', createAccount: '계정 만들기', success: '로그인되었습니다', welcomeBack: '다시 오신 것을 환영합니다!' }, signUp: { title: '회원가입', subtitle: '계정을 만드세요', firstNameLabel: '이름', firstNamePlaceholder: '이름을 입력하세요', lastNameLabel: '성', lastNamePlaceholder: '성을 입력하세요', emailLabel: '이메일', emailPlaceholder: '이메일을 입력하세요', usernameLabel: '사용자명', usernamePlaceholder: '사용자명을 선택하세요', passwordLabel: '비밀번호', passwordPlaceholder: '비밀번호를 만드세요', confirmPasswordLabel: '비밀번호 확인', confirmPasswordPlaceholder: '비밀번호를 다시 입력하세요', phoneLabel: '전화번호', phonePlaceholder: '전화번호를 입력하세요', signUpButton: '회원가입', signUpWithProvider: '{provider}로 회원가입', orDivider: '또는', hasAccount: '이미 계정이 있으신가요?', signInLink: '로그인', termsAcceptance: '{terms} 및 {privacy}에 동의합니다', termsOfService: '서비스 약관', privacyPolicy: '개인정보 처리방침', success: '회원가입이 완료되었습니다', welcomeMessage: '환영합니다!' }, passwordReset: { title: '비밀번호 재설정', subtitle: '비밀번호 재설정 링크를 보내드립니다', emailLabel: '이메일', emailPlaceholder: '이메일을 입력하세요', sendResetButton: '재설정 링크 보내기', backToSignIn: '로그인으로 돌아가기', success: '링크를 보냈습니다!', checkEmail: '이메일에서 재설정 링크를 확인하세요', resetPassword: '새 비밀번호 설정', newPasswordLabel: '새 비밀번호', newPasswordPlaceholder: '새 비밀번호를 입력하세요', confirmNewPasswordLabel: '새 비밀번호 확인', confirmNewPasswordPlaceholder: '새 비밀번호를 다시 입력하세요', resetButton: '비밀번호 재설정', passwordUpdated: '비밀번호가 업데이트되었습니다' }, mfa: { title: '2단계 인증', subtitle: '인증 앱에서 코드를 입력하세요', codeLabel: '인증 코드', codePlaceholder: '6자리 코드를 입력하세요', verifyButton: '인증', resendCode: '코드 다시 보내기', useBackupCode: '백업 코드 사용', backupCodeLabel: '백업 코드', backupCodePlaceholder: '백업 코드를 입력하세요', useAuthenticator: '인증 앱 사용', success: '인증에 성공했습니다', setup: { title: '2단계 인증 설정', subtitle: '계정에 보안 계층을 추가하세요', step1: '인증 앱 다운로드', step2: 'QR 코드 스캔', step3: '인증 코드 입력', downloadApp: 'Google Authenticator 또는 Authy 다운로드', scanQR: '앱으로 이 QR 코드를 스캔하세요', enterCode: '앱에서 6자리 코드를 입력하세요', manualEntry: '수동 입력', secretKey: '비밀 키', verificationCode: '인증 코드', enableButton: '2FA 활성화', backupCodes: '백업 코드', saveBackupCodes: '이 코드들을 안전한 곳에 저장하세요', backupCodesWarning: '이 코드들은 한 번만 사용할 수 있습니다' } }, passkeys: { title: '패스키', subtitle: '비밀번호 없이 안전하게 로그인하세요', setup: '패스키 설정', use: '패스키 사용', notSupported: '이 브라우저에서는 패스키가 지원되지 않습니다', setupButton: '패스키 설정', useButton: '패스키 사용', success: '패스키가 성공적으로 설정되었습니다', registered: '패스키가 등록되었습니다', manage: { title: '패스키 관리', noPasskeys: '설정된 패스키가 없습니다', addPasskey: '패스키 추가', deviceName: '장치 이름', createdAt: '생성일', lastUsed: '마지막 사용', remove: '제거', removeConfirm: '이 패스키를 제거하시겠습니까?' } }, oauth: { signInWith: '{provider}로 로그인', signUpWith: '{provider}로 회원가입', continueWith: '{provider}로 계속', connecting: '연결 중...', success: '성공적으로 연결되었습니다', error: '연결 오류', cancelled: '연결이 취소되었습니다', providers: { google: 'Google', github: 'GitHub', microsoft: 'Microsoft', facebook: 'Facebook', apple: 'Apple', twitter: 'Twitter', linkedin: 'LinkedIn', discord: 'Discord', slack: 'Slack', spotify: 'Spotify' } }, verification: { email: { title: '이메일 인증', subtitle: '이메일로 인증 링크를 보냈습니다', checkEmail: '이메일을 확인하세요', resendEmail: '이메일 다시 보내기', changeEmail: '이메일 변경', success: '이메일이 인증되었습니다', verified: '이메일 인증이 완료되었습니다' }, phone: { title: '전화번호 인증', subtitle: '전화번호로 보낸 코드를 입력하세요', codeLabel: '인증 코드', codePlaceholder: '6자리 코드를 입력하세요', resendCode: '코드 다시 보내기', verifyButton: '인증', success: '전화번호가 인증되었습니다', verified: '전화번호 인증이 완료되었습니다' } }, magicLink: { title: '매직 링크', subtitle: '로그인을 위한 안전한 링크를 보내드립니다', emailLabel: '이메일', emailPlaceholder: '이메일을 입력하세요', sendLinkButton: '매직 링크 보내기', checkEmail: '이메일에서 매직 링크를 확인하세요', success: '매직 링크를 보냈습니다', expired: '매직 링크가 만료되었습니다', invalid: '매직 링크가 유효하지 않습니다' }, logout: { title: '로그아웃', subtitle: '로그아웃하시겠습니까?', button: '로그아웃', confirm: '네, 로그아웃', success: '로그아웃되었습니다', goodbye: '안녕히 가세요!' }, session: { expired: '세션이 만료되었습니다', invalid: '유효하지 않은 세션입니다', refresh: '세션 새로 고침', refreshing: '세션 새로 고침 중...', multipleWarning: '여러 세션이 감지되었습니다', deviceLimit: '장치 제한에 도달했습니다' } }, user: { profile: { title: '프로필', personalInfo: '개인 정보', accountInfo: '계정 정보', security: '보안', preferences: '환경설정', firstName: '이름', lastName: '성', email: '이메일', username: '사용자명', phone: '전화번호', bio: '자기소개', website: '웹사이트', location: '위치', timezone: '시간대', language: '언어', avatar: '아바타', changeAvatar: '아바타 변경', removeAvatar: '아바타 제거', updateProfile: '프로필 업데이트', profileUpdated: '프로필이 업데이트되었습니다' }, security: { title: '보안', changePassword: '비밀번호 변경', currentPassword: '현재 비밀번호', newPassword: '새 비밀번호', confirmPassword: '비밀번호 확인', passwordStrength: '비밀번호 강도', passwordRequirements: '비밀번호 요구사항', twoFactor: '2단계 인증', enableTwoFactor: '2FA 활성화', disableTwoFactor: '2FA 비활성화', twoFactorEnabled: '2FA가 활성화되었습니다', twoFactorDisabled: '2FA가 비활성화되었습니다', backupCodes: '백업 코드', viewBackupCodes: '백업 코드 보기', regenerateBackupCodes: '백업 코드 재생성', devices: '장치', trustedDevices: '신뢰할 수 있는 장치', removeDevice: '장치 제거', deviceRemoved: '장치가 제거되었습니다', sessions: '세션', activeSessions: '활성 세션', terminateSession: '세션 종료', terminateAllSessions: '모든 세션 종료', sessionTerminated: '세션이 종료되었습니다', connectedAccounts: '연결된 계정', disconnect: '연결 해제', accountDisconnected: '계정 연결이 해제되었습니다', deleteAccount: '계정 삭제', deleteAccountWarning: '이 작업은 되돌릴 수 없습니다', deleteAccountConfirm: '내 계정 삭제', accountDeleted: '계정이 삭제되었습니다' }, preferences: { title: '환경설정', theme: '테마', lightMode: '라이트 모드', darkMode: '다크 모드', systemMode: '시스템', notifications: '알림', emailNotifications: '이메일 알림', pushNotifications: '푸시 알림', smsNotifications: 'SMS 알림', marketingEmails: '마케팅 이메일', securityAlerts: '보안 알림', accountActivity: '계정 활동', productUpdates: '제품 업데이트', preferences: '환경설정', preferencesUpdated: '환경설정이 업데이트되었습니다' } }, organization: { general: { title: '조직', name: '이름', description: '설명', website: '웹사이트', logo: '로고', settings: '설정', members: '구성원', billing: '결제', usage: '사용량', security: '보안', integrations: '통합', audit: '감사', support: '지원' }, profile: { title: '조직 프로필', updateOrganization: '조직 업데이트', organizationUpdated: '조직이 업데이트되었습니다', logo: '로고', changeLogo: '로고 변경', removeLogo: '로고 제거', brandColors: '브랜드 색상', primaryColor: '기본 색상', secondaryColor: '보조 색상', customBranding: '사용자 정의 브랜딩', domain: '도메인', customDomain: '사용자 정의 도메인', verifyDomain: '도메인 인증', domainVerified: '도메인이 인증되었습니다', domainPending: '도메인 인증 대기 중', contact: '연락처', contactEmail: '연락처 이메일', supportUrl: '지원 URL', address: '주소', country: '국가', timezone: '시간대' }, members: { title: '구성원', totalMembers: '총 구성원', activeMembers: '활성 구성원', pendingInvitations: '대기 중인 초대', roles: '역할', permissions: '권한', inviteMember: '구성원 초대', inviteMembers: '구성원 초대', emailAddress: '이메일 주소', role: '역할', customMessage: '사용자 정의 메시지', sendInvitation: '초대 보내기', invitationSent: '초대를 보냈습니다', resendInvitation: '초대 다시 보내기', cancelInvitation: '초대 취소', invitationCancelled: '초대가 취소되었습니다', memberName: '구성원 이름', memberEmail: '구성원 이메일', memberRole: '구성원 역할', memberStatus: '구성원 상태', memberJoined: '가입일', lastActive: '마지막 활동', changeRole: '역할 변경', removeMember: '구성원 제거', removeMemberConfirm: '이 구성원을 제거하시겠습니까?', memberRemoved: '구성원이 제거되었습니다', transferOwnership: '소유권 이전', transferOwnershipConfirm: '소유권을 이전하시겠습니까?', ownershipTransferred: '소유권이 이전되었습니다', bulkActions: '일괄 작업', selectAll: '모두 선택', selectedMembers: '선택된 구성원', bulkRemove: '선택한 구성원 제거', bulkChangeRole: '선택한 구성원 역할 변경', export: '내보내기', exportMembers: '구성원 내보내기' }, roles: { title: '역할', createRole: '역할 생성', editRole: '역할 편집', deleteRole: '역할 삭제', roleName: '역할 이름', roleDescription: '역할 설명', permissions: '권한', systemPermissions: '시스템 권한', organizationPermissions: '조직 권한', memberPermissions: '구성원 권한', billingPermissions: '결제 권한', defaultRole: '기본 역할', customRole: '사용자 정의 역할', roleCreated: '역할이 생성되었습니다', roleUpdated: '역할이 업데이트되었습니다', roleDeleted: '역할이 삭제되었습니다', assignRole: '역할 할당', unassignRole: '역할 해제', roleAssigned: '역할이 할당되었습니다', roleUnassigned: '역할이 해제되었습니다', owner: '소유자', admin: '관리자', member: '구성원', guest: '게스트', viewer: '뷰어', editor: '편집자', manager: '매니저' }, settings: { title: '설정', general: '일반', authentication: '인증', security: '보안', integrations: '통합', advanced: '고급', allowPublicSignup: '공개 회원가입 허용', requireEmailVerification: '이메일 인증 필요', allowUsernameSignup: '사용자명 회원가입 허용', passwordPolicy: '비밀번호 정책', minPasswordLength: '최소 비밀번호 길이', requireUppercase: '대문자 필요', requireLowercase: '소문자 필요', requireNumbers: '숫자 필요', requireSymbols: '기호 필요', sessionDuration: '세션 지속 시간', mfaRequired: 'MFA 필수', allowedDomains: '허용된 도메인', blockedDomains: '차단된 도메인', ipWhitelist: 'IP 화이트리스트', ssoEnabled: 'SSO 활성화', ssoProvider: 'SSO 제공자', auditLogRetention: '감사 로그 보존 기간', dataExport: '데이터 내보내기', deleteOrganization: '조직 삭제', deleteOrganizationWarning: '이 작업으로 조직이 영구적으로 삭제됩니다', deleteOrganizationConfirm: '조직 삭제', organizationDeleted: '조직이 삭제되었습니다', settingsUpdated: '설정이 업데이트되었습니다' }, billing: { title: '결제', plan: '플랜', currentPlan: '현재 플랜', usage: '사용량', billing: '결제', invoices: '송장', paymentMethod: '결제 방법', subscription: '구독', seats: '시트', usedSeats: '사용된 시트', availableSeats: '사용 가능한 시트', addSeats: '시트 추가', removeSeats: '시트 제거', monthlyBilling: '월간 결제', yearlyBilling: '연간 결제', upgrade: '업그레이드', downgrade: '다운그레이드', cancel: '취소', pauseSubscription: '구독 일시 정지', resumeSubscription: '구독 재개', billingHistory: '결제 내역', downloadInvoice: '송장 다운로드', updatePaymentMethod: '결제 방법 업데이트', paymentMethodUpdated: '결제 방법이 업데이트되었습니다', subscriptionUpdated: '구독이 업데이트되었습니다', subscriptionCancelled: '구독이 취소되었습니다', subscriptionPaused: '구독이 일시 정지되었습니다', subscriptionResumed: '구독이 재개되었습니다', trialExpired: '평가판이 만료되었습니다', trialDaysLeft: '평가판 남은 일수', upgradeNow: '지금 업그레이드' }, invitations: { title: '초대', youreInvited: '초대받았습니다', invitedBy: '초대한 사람', invitedTo: '초대받은 곳', roleOffered: '제공된 역할', acceptInvitation: '초대 수락', declineInvitation: '초대 거절', invitationAccepted: '초대를 수락했습니다', invitationDeclined: '초대를 거절했습니다', invitationExpired: '초대가 만료되었습니다', invitationInvalid: '초대가 유효하지 않습니다', alreadyMember: '이미 구성원입니다', pendingInvitations: '대기 중인 초대', sentInvitations: '보낸 초대', receivedInvitations: '받은 초대', invitationDetails: '초대 세부사항', expiresAt: '만료일', customMessage: '사용자 정의 메시지' } }, validation: { required: '이 필드는 필수입니다', email: '유효한 이메일 주소를 입력하세요', phone: '유효한 전화번호를 입력하세요', url: '유효한 URL을 입력하세요', minLength: '최소 {min}자 이상이어야 합니다', maxLength: '{max}자를 초과할 수 없습니다', min: '최솟값은 {min}입니다', max: '최댓값은 {max}입니다', pattern: '잘못된 형식입니다', passwordMismatch: '비밀번호가 일치하지 않습니다', invalidFormat: '잘못된 형식입니다', invalid: '유효하지 않습니다', tooShort: '너무 짧습니다', tooLong: '너무 깁니다', tooSmall: '너무 작습니다', tooLarge: '너무 큽니다', notFound: '찾을 수 없습니다', alreadyExists: '이미 존재합니다', expired: '만료되었습니다', weak: '약함', strong: '강함', medium: '보통', passwordStrength: { veryWeak: '매우 약함', weak: '약함', fair: '보통', good: '좋음', strong: '강함' }, passwordRequirements: { minLength: '최소 {min}자', uppercase: '대문자 1개 이상', lowercase: '소문자 1개 이상', number: '숫자 1개 이상', symbol: '기호 1개 이상' } }, errors: { generic: { unknown: '알 수 없는 오류가 발생했습니다', network: '네트워크 오류', timeout: '요청 시간 초과', serverError: '서버 오류', notFound: '찾을 수 없음', unauthorized: '인증되지 않음', forbidden: '접근이 거부됨', badRequest: '잘못된 요청', conflict: '충돌', tooManyRequests: '요청이 너무 많음', maintenance: '시스템 유지보수 중', offline: '인터넷 연결 없음' }, auth: { invalidCredentials: '잘못된 인증 정보', accountLocked: '계정이 잠겨 있음', accountDisabled: '계정이 비활성화됨', accountNotVerified: '계정이 인증되지 않음', sessionExpired: '세션이 만료됨', invalidToken: '유효하지 않은 토큰', mfaRequired: '2단계 인증 필요', invalidMfaCode: '유효하지 않은 MFA 코드', passkeyNotSupported: '패스키가 지원되지 않음', passkeyFailed: '패스키 인증 실패', oauthFailed: 'OAuth 인증 실패', oauthCancelled: 'OAuth 인증 취소됨', magicLinkExpired: '매직 링크가 만료됨', magicLinkInvalid: '매직 링크가 유효하지 않음', passwordTooWeak: '비밀번호가 너무 약함', passwordReused: '비밀번호가 재사용됨', emailNotVerified: '이메일이 인증되지 않음', phoneNotVerified: '전화번호가 인증되지 않음', invitationExpired: '초대가 만료됨', invitationInvalid: '초대가 유효하지 않음', invitationAlreadyAccepted: '초대가 이미 수락됨' }, organization: { notFound: '조직을 찾을 수 없음', accessDenied: '조직 접근이 거부됨', memberLimitReached: '구성원 제한에 도달함', ownerRequired: '소유자가 필요함', cannotRemoveOwner: '소유자를 제거할 수 없음', cannotRemoveSelf: '자신을 제거할 수 없음', alreadyMember: '이미 구성원임', notMember: '구성원이 아님', invalidRole: '유효하지 않은 역할', roleNotFound: '역할을 찾을 수 없음', domainTaken: '도메인이 이미 사용됨', domainInvalid: '유효하지 않은 도메인', seatLimitReached: '시트 제한에 도달함', subscriptionRequired: '구독이 필요함', paymentFailed: '결제 실패' }, validation: { invalidEmail: '유효하지 않은 이메일', invalidPhone: '유효하지 않은 전화번호', invalidUrl: '유효하지 않은 URL', fieldRequired: '필수 필드', fieldTooShort: '필드가 너무 짧음', fieldTooLong: '필드가 너무 김', fieldInvalid: '유효하지 않은 필드', passwordsDoNotMatch: '비밀번호가 일치하지 않음', emailTaken: '이메일이 이미 사용됨', usernameTaken: '사용자명이 이미 사용됨', phoneNumberTaken: '전화번호가 이미 사용됨', domainTaken: '도메인이 이미 사용됨' } }, success: { generic: { saved: '저장되었습니다', updated: '업데이트되었습니다', created: '생성되었습니다', deleted: '삭제되었습니다', sent: '전송되었습니다', completed: '완료되었습니다', copied: '클립보드에 복사됨', uploaded: '업로드되었습니다', downloaded: '다운로드되었습니다', imported: '가져오기 완료', exported: '내보내기 완료' }, auth: { signedIn: '로그인되었습니다', signedUp: '회원가입이 완료되었습니다', signedOut: '로그아웃되었습니다', passwordChanged: '비밀번호가 변경되었습니다', passwordReset: '비밀번호가 재설정되었습니다', emailVerified: '이메일이 인증되었습니다', phoneVerified: '전화번호가 인증되었습니다', mfaEnabled: '2단계 인증이 활성화되었습니다', mfaDisabled: '2단계 인증이 비활성화되었습니다', passkeyAdded: '패스키가 추가되었습니다', passkeyRemoved: '패스키가 제거되었습니다', accountConnected: '계정이 연결되었습니다', accountDisconnected: '계정 연결이 해제되었습니다' }, organization: { created: '조직이 생성되었습니다', updated: '조직이 업데이트되었습니다', deleted: '조직이 삭제되었습니다', memberInvited: '구성원이 초대되었습니다', memberRemoved: '구성원이 제거되었습니다', roleChanged: '역할이 변경되었습니다', ownershipTransferred: '소유권이 이전되었습니다', settingsUpdated: '설정이 업데이트되었습니다', domainVerified: '도메인이 인증되었습니다', subscriptionUpdated: '구독이 업데이트되었습니다', paymentMethodUpdated: '결제 방법이 업데이트되었습니다' } }, components: { loading: { generic: '로딩 중...', signIn: '로그인 중...', signUp: '회원가입 중...', profile: '프로필 로딩 중...', organization: '조직 로딩 중...', members: '구성원 로딩 중...', settings: '설정 로딩 중...', verification: '인증 중...', mfa: 'MFA 인증 중...', passkey: '패스키 설정 중...', oauth: 'OAuth 연결 중...' }, empty: { generic: '사용 가능한 데이터가 없습니다', members: '구성원을 찾을 수 없습니다', invitations: '초대가 없습니다', sessions: '활성 세션이 없습니다', devices: '등록된 장치가 없습니다', notifications: '알림이 없습니다', history: '기록이 없습니다', logs: '로그가 없습니다', search: '검색 결과를 찾을 수 없습니다', filter: '필터와 일치하는 항목이 없습니다' }, confirm: { delete: '이 항목을 삭제하시겠습니까?', remove: '이 항목을 제거하시겠습니까?', cancel: '취소하시겠습니까?', logout: '로그아웃하시겠습니까?', transfer: '이전하시겠습니까?', disable: '비활성화하시겠습니까?', enable: '활성화하시겠습니까?', reset: '재설정하시겠습니까?', clear: '지우시겠습니까?', proceed: '계속하시겠습니까?', areYouSure: '정말 확실하십니까?', cannotUndo: '이 작업은 되돌릴 수 없습니다', permanentAction: '이것은 영구적인 작업입니다' }, help: { password: '문자, 숫자, 기호를 포함하여 8자 이상 사용하세요', mfa: '2단계 인증은 추가 보안을 제공합니다', passkey: '패스키는 비밀번호보다 안전합니다', backup: '백업 코드를 안전한 곳에 저장하세요', domain: '도메인은 사용하기 전에 인증이 필요합니다', webhook: '웹훅은 실시간 알림을 보냅니다', apiKey: 'API 키는 프로그래밍 방식 접근에 사용됩니다', role: '역할은 사용자 권한을 결정합니다', permission: '권한은 기능 접근을 제어합니다', billing: '결제는 매월 처리됩니다', usage: '사용량은 현재 플랜에서 모니터링됩니다' } } };