개요
User 도메인은 사용자 계정 관리, 프로필 수정, 직원 관리, 연락처 관리 등의 기능을 제공합니다.Types
UserType (Enum)
사용자 권한 레벨을 정의합니다.CUSTOMER: 일반 고객PARTNER: 파트너PARTNERADMIN: 파트너 관리자ADMIN: 관리자SUPERADMIN: 최고 관리자
DuplicateCheckerType (Enum)
중복 확인 필드 타입을 정의합니다.identity: 아이디email: 이메일phone: 휴대폰 번호nickname: 닉네임
Queries
getUsers
사용자 목록을 페이지네이션으로 조회합니다.GraphQL Signature
파라미터
Int
처음부터 가져올 개수
Int
끝에서부터 가져올 개수
String
검색 키워드 (이름, 이메일, 아이디 등)
응답
[UserEdge!]!
사용자 목록
PageInfo!
페이지 정보
Int!
전체 사용자 수
findUser
특정 사용자의 상세 정보를 조회합니다.GraphQL Signature
파라미터
ID!
required
사용자 ID
예제
myInfo
현재 로그인한 사용자의 정보를 조회합니다.GraphQL Signature
응답
User
현재 사용자 정보
이 API는 인증이 필요하며, JWT 토큰에서 사용자 정보를 추출합니다.
myContacts
현재 로그인한 사용자의 연락처 목록을 조회합니다.GraphQL Signature
파라미터
String
연락처 타입 필터 (예: “email”, “phone”, “kakao”)
getAccommodationContacts
특정 숙박 시설의 직원 연락처 목록을 조회합니다.GraphQL Signature
파라미터
ID!
required
숙박 시설 ID
String
연락처 타입 필터
String
권한 필터
verifyDuplicate
회원가입 시 아이디, 이메일, 닉네임 중복을 확인합니다.GraphQL Signature
파라미터
String
확인할 아이디
String
확인할 이메일
String
확인할 닉네임
응답
ID!
확인 ID
Boolean!
중복 여부 (true: 사용 가능, false: 중복됨)
[DuplicateCheckerType]
중복된 필드 목록
예제
getPermanentToken
키오스크용 영구 토큰을 발급받습니다.GraphQL Signature
파라미터
ID!
required
키오스크 ID
응답
String
영구 토큰
getPermanentTokenForAdmin
숙박 시설 관리자용 영구 토큰을 발급받습니다.GraphQL Signature
파라미터
ID!
required
숙박 시설 ID
getUserLogs
사용자 활동 로그를 조회합니다.GraphQL Signature
파라미터
ID!
required
숙박 시설 ID
ID
특정 사용자의 로그만 조회
관련 엔티티 ID (예: 예약 ID)
Int
처음부터 가져올 개수
String
이 커서 이후의 로그
getMyAgreement
특정 약관에 대한 현재 사용자의 동의 여부를 조회합니다.GraphQL Signature
파라미터
String!
required
약관 타입 (예: “privacy”, “terms”, “marketing”)
응답
Boolean!
동의 여부
Mutations
signUp
새로운 사용자 계정을 생성합니다.GraphQL Signature
파라미터
String!
required
사용자 아이디
String
휴대폰 번호
UserType
사용자 권한 레벨 (기본값: CUSTOMER)
String
SMS 인증 해시 (휴대폰 번호 입력 시 필수)
String!
required
사용자 이름
String!
required
사용자 닉네임
String!
required
이메일 주소
String!
required
비밀번호
응답
User
생성된 사용자 정보
예제
휴대폰 번호를 입력하는 경우, 반드시
requestSMSAuth 및 confirmSMSAuth를 통해 발급받은 smsAuthHash를 제공해야 합니다.signIn
사용자 로그인을 수행하고 인증 토큰을 발급받습니다.GraphQL Signature
파라미터
String!
required
사용자 아이디
String!
required
비밀번호
응답
TokenPayload
인증 토큰 정보
예제
signInByAdmin
관리자가 다른 사용자로 로그인합니다.GraphQL Signature
파라미터
String!
required
로그인할 사용자 아이디
disableUser
사용자 계정을 비활성화하거나 활성화합니다.GraphQL Signature
파라미터
String!
required
대상 사용자 아이디
Boolean
비활성화 여부 (true: 비활성화, false: 활성화)
addUserContact
사용자 연락처를 추가합니다.GraphQL Signature
파라미터
ID!
required
사용자 ID
String!
required
연락처 타입 (예: “email”, “phone”, “kakao”)
String!
required
연락처 정보
modifyUserContact
사용자 연락처를 수정합니다.GraphQL Signature
파라미터
ID!
required
수정할 연락처 ID
String
새로운 연락처 타입
String
새로운 연락처 정보
deleteUserContact
사용자 연락처를 삭제합니다.GraphQL Signature
파라미터
ID!
required
삭제할 연락처 ID
updateInfo
현재 로그인한 사용자의 정보를 수정합니다.GraphQL Signature
파라미터
ID
사용자 ID (관리자가 다른 사용자 수정 시 사용)
String
새로운 휴대폰 번호
String
SMS 인증 해시 (휴대폰 번호 변경 시 필수)
String
새로운 이름
String
새로운 닉네임
UserType
새로운 권한 레벨 (관리자만 가능)
updateEmployee
직원 정보를 수정합니다.GraphQL Signature
파라미터
ID!
required
직원 ID
ID!
required
숙박 시설 ID
String
새로운 휴대폰 번호
String
새로운 이메일
String
새로운 이름
String
새로운 닉네임
String
새로운 비밀번호
String
새로운 권한
deleteEmployee
직원 계정을 삭제합니다.GraphQL Signature
파라미터
ID!
required
삭제할 직원 ID
changePassword
비밀번호를 변경합니다.GraphQL Signature
파라미터
ID
사용자 ID (관리자가 다른 사용자의 비밀번호 변경 시 사용)
String!
required
새로운 비밀번호
String
현재 비밀번호 (본인의 비밀번호 변경 시 필수)
changePasswordBySMSAuth
SMS 인증을 통해 비밀번호를 재설정합니다.GraphQL Signature
파라미터
String!
required
사용자 아이디
String!
required
등록된 휴대폰 번호
String!
required
새로운 비밀번호
String!
required
SMS 인증 해시
예제
changePasswordByEmailAuth
이메일 인증을 통해 비밀번호를 재설정합니다.GraphQL Signature
파라미터
String!
required
등록된 이메일 주소
String!
required
새로운 비밀번호
String!
required
이메일 인증 해시
sendPasswordResetEmail
비밀번호 재설정 이메일을 발송합니다.GraphQL Signature
파라미터
String!
required
비밀번호를 재설정할 이메일 주소
응답
Boolean
이메일 발송 성공 여부
uploadThumbnail
사용자 프로필 이미지를 업로드합니다.GraphQL Signature
파라미터
Upload!
required
업로드할 이미지 파일
응답
String
업로드된 이미지 URL
agreeTerms
약관에 동의합니다.GraphQL Signature
파라미터
String!
required
약관 타입 (예: “privacy”, “terms”, “marketing”)
Boolean!
required
동의 여부
응답
Boolean!
동의 처리 성공 여부
사용 흐름
회원가입 흐름
- 중복 확인:
verifyDuplicate로 아이디, 이메일, 닉네임 중복 확인 - SMS 인증 (선택):
requestSMSAuth→confirmSMSAuth로 휴대폰 인증 - 회원가입:
signUp으로 계정 생성 - 이메일 인증 (선택):
requestEmailVerification→verifyEmail
비밀번호 재설정 흐름
방법 1: SMS 인증requestSMSAuth로 SMS 발송confirmSMSAuth로 인증 해시 발급changePasswordBySMSAuth로 비밀번호 변경
sendPasswordResetEmail로 이메일 발송- 이메일에서 인증 링크 클릭
changePasswordByEmailAuth로 비밀번호 변경