+ );
+};
+
+export default TermsTitle;
diff --git a/src/constant/jobPosition.ts b/src/constant/jobPosition.ts
new file mode 100644
index 0000000..d5c2ded
--- /dev/null
+++ b/src/constant/jobPosition.ts
@@ -0,0 +1,66 @@
+export const jobPosition = [
+ {
+ title: '대표',
+ description: 'OWNER'
+ },
+ {
+ title: '경영/기획/사무',
+ description: 'OFFICE'
+ },
+ {
+ title: '회계/재무/IR',
+ description: 'FINANCE'
+ },
+ {
+ title: '인사/총무/HR',
+ description: 'HRD'
+ },
+ {
+ title: '마케팅/광고/홍보',
+ description: 'PROMOTION'
+ },
+ {
+ title: 'IT 개발',
+ description: 'ITDEV'
+ },
+ {
+ title: 'IT 서비스 기획',
+ description: 'ITPLAN'
+ },
+ {
+ title: '영업/판매',
+ description: 'SALE'
+ },
+ {
+ title: '디자인',
+ description: 'DESIGN'
+ },
+ {
+ title: '고객서비스/운영/고객지원/상담',
+ description: 'SERVICE'
+ },
+ {
+ title: '언론/미디어/콘텐츠',
+ description: 'CONTENTS'
+ },
+ {
+ title: '연구개발',
+ description: 'RND'
+ },
+ {
+ title: '전문/특수직',
+ description: 'PROFESSIONAL'
+ },
+ {
+ title: '유통/MD',
+ description: 'MD'
+ },
+ {
+ title: '금융/증권/보험',
+ description: 'INSURANCE'
+ },
+ {
+ title: '기타',
+ description: 'ETC'
+ }
+];
diff --git a/src/constant/temrs.ts b/src/constant/temrs.ts
new file mode 100644
index 0000000..c6db19e
--- /dev/null
+++ b/src/constant/temrs.ts
@@ -0,0 +1,83 @@
+export const 약관목록 = [
+ {
+ id: 1,
+ title: '(필수) 서비스 이용약관 동의',
+ subTitle: '서비스 이용약관 동의서',
+ description: `## 서비스 이용약관 동의서
+
+### 제 1장 총칙
+#### 제 1조 (목적)
+이 약관은 Offispace가 운영하는 Offispace 멤버용 웹사이트, Offispace 멤버용 앱, "Offispace"와 계약을 체결한 제휴지점 운영자 전용 웹사이트(이하 "웹사이트" 및 "앱"을 통칭하 여 "웹사이트 등"이라 한다)에서 제공하는 인터넷 관련 서비스(이하 “서비스")를 이용함에 있어 "Offispace"와 이용자의 권리, 의무 및 책임 사항을 규정함을 목적으로 합니다.
+
+#### 제 2조 (정의)
+1) "웹사이트 등"이라 함은 "Offispace"가 재화 또는 용역(이하 "재화 등"이라 함)을 멤버(아래에서 정의됨)에게 제공하기 위하여 컴퓨터 등 정보통신설비를 이용한 가상의 영업장을 말합니다.
+2) "멤버"란 그룹에 소속되어 "웹사이트 등"에 접속하여 본 약관에 따라 "Offispace"가 제공하는 서비스를 "웹사이트 등"에서 이용할 수 있는 자로서 "웹사이트 등"에 멤버로 등록을 한 자를 말합니다.
+3) "그룹"이란 "Offispace"와 멤버십 등록계약 또는 제휴 계약을 체결한 법인, 단체로서, 멤버가 소속된 법인, 단체, 개인을 의미합니다.
+
+#### 제 3조 (약관 등의 명시와 설명 및 개정)
+1) "Offispace"는 이 약관의 내용과 개인정보관리책임자 등을 "멤버"가 쉽게 알 수 있도록 "서비스”에 게시합니다. 다만, 약관의 내용은 이용자가 연결 화면을 통하여 볼 수 있도록 할 수 있습니다.
+2) "Offispace"는 이용자가 약관에 동의하기에 앞서 내용을 이용자가 이해할 수 있도록 별도의 연결 화면 또는 팝업 화면 등을 제공하여 이용자의 확인을 구하여야 합니다.
+3) "Offispace"는 「전자상거래 등에서의 소비자보호에 관한 법률」, 「약관의 규제에 관한 법률」, 「전자문서 및 전자거래 기본법」, 「전자금융거래법」, 「전자서명법」, 「정보통신망 이용촉진 및 정보보호 등에 관한 법률」, 「방문판매 등에 관한 법률」, 「소비자기본법」 등 관련 법을 위배하지 않는 범위에서 이 약관을 개정할 수 있습니다.
+
+#### 제 4조 (서비스 가입)
+1) "멤버"는 "Offispace"가 정한 가입 양식에 따라 정보를 기입한 후 이 약관에 동의한다는 의사 표시를 함으로서 멤버 가입을 신청합니다.
+2) "Offispace"는 제 1항에 따라 제공된 정보를 확인 또는 인정한 후 가입을 승낙함으로써 "웹사이트 등"의 이용계약은 체결됩니다.
+3) 제1항, 제2항에도 불구하고, "Offispace"와 제휴 계약을 체결한 그룹에 속한 "멤버"에 한하여, 별도의 가입절차 없이, 서비스이용권한을 부여할 수 있으며, "Offispace”가 권한을 부여한 때로부터 "Offispace"와 이러한 "멤버" 사이에 "웹사이트 등"의 이용계약이 체결된 것으로 봅니다.
+4) "멤버"는 "Offispace"에서 제공하는 "웹사이트 등" 에 게시된 이 약관에 따라 가입한 하나의 계정으로 모든 "웹사이트 등"에 로그인하여 이용할 수 있습니다.
+
+##### 상기 본인은 위와 같은 서비스 이용약관에 동의함.`,
+ required: true
+ },
+ {
+ id: 2,
+ title: '(필수) 개인정보 수집 및 이용 동의',
+ subTitle: '개인정보 수집 및 이용 동의서',
+ description: `## 개인정보 수집 및 활용 동의서
+
+Offispace는 「개인정보보호법」 및 관계 법령에 의거하여 고객님의 개인정보 수집 및 활용에 대한 활용 동의서를 받고 있습니다.
+
+개인정보 제공자가 동의한 내용 외의 다른 목적으로 개인정보를 활용하지 않으며, 제공된 개인정보의 이용을 거부하고자 할 때에는 개인정보 관리 책임자를 통해 열람, 정정 혹은 삭제를 요구할 수 있습니다.
+
+### 개인정보의 수집·이용 목적
+- 멤버 전용서비스에 따른 이용자 식별 본인 확인 및 멤버관리, 공지, 불만처리, 고객상담, 부가서비스 제공
+- 서비스 정보 및 알림 제공 (서비스 내 Push 등)
+
+### 개인정보 수집 항목
+- 이름
+- 이메일
+- 직무 정보
+
+#### 상기 본인은 위와 같이 개인정보 수집 및 활용에 동의함.`,
+ required: true
+ },
+ {
+ id: 3,
+ title: '(선택) 마케팅 정보 수집 및 이용 동의',
+ subTitle: '마케팅 정보 수신 동의서',
+ description: `## 마케팅 정보 수신 동의서
+
+Offispace는 개인정보보호법 및 정보통신망이용촉진 및 정보보호 등에 관한 법률 등 관계법령에 따라 광고성 정보를 전송하기 위해 이용자의 사전 수신 동의를 받고 있습니다. 본 내용은 Offispace 회원 서비스가 적용되는 개별서비스의 마케팅 수신동의를 포함하고 있으며, 마케팅 정보 수신 동의 시 개별서비스의 마케팅 수신에 일괄 동의한 것으로 처리됩니다.
+
+### 전송방법
+마케팅 정보 전송 방법은 Offispace의 각 개별서비스에서 정한 방식에 따라 전송됩니다.
+
+#### 전송내용
+발송되는 마케팅 정보는 수신자에게 Offispace 및 개별서비스에서 제공하는 혜택(포인트, 쿠폰 등) 정보, 각종 이벤트, 신규 상품 관련 소식 등 광고성 정보로 관련 법의 규정을 준수하여 발송됩니다. 단, 광고성 정보 이외에 의무적으로 안내 되어야 하는 정보성 내용은 수신동의 여부와 무관하게 제공됩니다.
+
+#### 수집항목
+- 이름, 이메일, 직무 정보
+
+#### 이용목적
+- 소식지 서비스 제공, 신제품 및 이벤트 안내, 이벤트 경품/사은품 제공, 할인행사, 고객 맞춤 마케팅/판촉 등 관련 이메일 및 SMS 등 발송
+
+#### 철회안내
+- 수신동의 이후에라도 언제든지 동의를 철회할 수 있으며, 수신을 동의하지 않아도 회사가 제공하는 기본적인 서비스를 이용하실 수 있습니다. 다만 수신 거부할 경우 신규 서비스나 상품 관련 소식 등의 마케팅 정보를 제공받지 못할 수 있습니다.
+
+#### 수신동의 변경 및 보유기간
+- 보유 기간 : 마케팅 정보 수신 동의로부터 2년, 기간 초과 시 동의 절차 재진행 (미동의 시, 즉시 파기)
+Offispace 정보수정 페이지에서 개별서비스의 마케팅 수신동의를 변경(동의/철회)할 수 있으며, 동의일로부터 회원 탈퇴 혹은 마케팅 수신 동의 해제 시까지 광고성 정보 전달을 위하여 보유ㆍ이용됩니다.
+
+#### 상기 본인은 위와 같이 마케팅 정보 수신에 동의함.`,
+ required: false
+ }
+];
diff --git a/src/models/response.ts b/src/models/response.ts
new file mode 100644
index 0000000..41420d7
--- /dev/null
+++ b/src/models/response.ts
@@ -0,0 +1,6 @@
+export interface basicResponse {
+ status?: string;
+ errorCode?: string | null;
+ data?: string | null;
+ message?: string | null;
+}
diff --git a/src/models/signupBtnStatus.ts b/src/models/signupBtnStatus.ts
new file mode 100644
index 0000000..a9ee894
--- /dev/null
+++ b/src/models/signupBtnStatus.ts
@@ -0,0 +1,9 @@
+// 처음 진입 했을 때 first, 번호가 정상적으로 입력됐을때 second, 인증요청을 눌렀을 때 third
+
+const status = {
+ FIRST: 'FIRST',
+ SECOND: 'SECOND',
+ THIRD: 'THIRD'
+};
+
+export type SignupBtnStatus = keyof typeof status;
diff --git a/src/models/terms.ts b/src/models/terms.ts
new file mode 100644
index 0000000..c8af24c
--- /dev/null
+++ b/src/models/terms.ts
@@ -0,0 +1,7 @@
+export interface TermsType {
+ id: number;
+ title: string;
+ description: string;
+ required: boolean;
+ subTitle: string;
+}
diff --git a/src/pages/_app.tsx b/src/pages/_app.tsx
index c14313e..0b28f2b 100644
--- a/src/pages/_app.tsx
+++ b/src/pages/_app.tsx
@@ -1,6 +1,13 @@
import '@/styles/globals.css';
import type { AppProps } from 'next/app';
+import { QueryClient, QueryClientProvider } from 'react-query';
+
+const queryClient = new QueryClient();
export default function App({ Component, pageProps }: AppProps) {
- return ;
+ return (
+
+
+
+ );
}
diff --git a/src/pages/_document.tsx b/src/pages/_document.tsx
index fc6c518..0b4c64b 100644
--- a/src/pages/_document.tsx
+++ b/src/pages/_document.tsx
@@ -1,6 +1,4 @@
-import {
- Html, Head, Main, NextScript,
-} from 'next/document';
+import { Html, Head, Main, NextScript } from 'next/document';
export default function Document() {
return (
@@ -9,6 +7,7 @@ export default function Document() {
+