diff --git a/pages/test/auth.tsx b/pages/test/auth.tsx
new file mode 100644
index 0000000..6430993
--- /dev/null
+++ b/pages/test/auth.tsx
@@ -0,0 +1,45 @@
+import { AuthAPI } from '@/services/api/auth';
+
+function authtest() {
+ const handleSignUp = async () => {
+ try {
+ await AuthAPI.signup({
+ email: 'apple3@example.com',
+ name: 'apple3',
+ password: 'password',
+ passwordConfirmation: 'password',
+ });
+ alert('회원가입 성공');
+ } catch (error) {
+ if (error instanceof Error) {
+ alert(error.message);
+ } else {
+ alert('회원가입 중 오류가 발생했습니다.');
+ }
+ }
+ };
+ const handleSignIn = async () => {
+ try {
+ await AuthAPI.signin({
+ email: 'apple3@example.com',
+ password: 'password',
+ });
+ alert('로그인 성공');
+ } catch (error) {
+ if (error instanceof Error) {
+ alert(error.message);
+ } else {
+ alert('로그인 중 오류가 발생했습니다.');
+ }
+ }
+ };
+
+ return (
+
+
+
+
+ );
+}
+
+export default authtest;
diff --git a/services/api/auth.ts b/services/api/auth.ts
new file mode 100644
index 0000000..420dc9f
--- /dev/null
+++ b/services/api/auth.ts
@@ -0,0 +1,63 @@
+import instance from '../../lib/axios-client';
+
+import { AxiosError } from 'axios';
+
+interface ErrorResponse {
+ message: string;
+ details?: {
+ [key: string]: {
+ message: string;
+ };
+ };
+}
+
+export const AuthAPI = {
+ signup: async (data: {
+ email: string;
+ name: string;
+ password: string;
+ passwordConfirmation: string;
+ }) => {
+ try {
+ const res = await instance.post('/auth/signUp', data);
+ return res.data;
+ } catch (error) {
+ if (error instanceof AxiosError) {
+ // 400 에러 (이미 존재하는 이메일)
+ if (error.response?.status === 400) {
+ throw new Error(error.response.data.message);
+ }
+ // 500 에러 (서버 내부 오류)
+ if (error.response?.status === 500) {
+ throw new Error(
+ '서버 오류가 발생했습니다. 잠시 후 다시 시도해주세요.'
+ );
+ }
+ }
+ // 기타 예상치 못한 에러
+ throw new Error('회원가입 중 오류가 발생했습니다.');
+ }
+ },
+
+ signin: async (data: { email: string; password: string }) => {
+ try {
+ const res = await instance.post('/auth/signIn', data);
+ return res.data;
+ } catch (error) {
+ if (error instanceof AxiosError) {
+ // 400 에러 (이메일 또는 비밀번호 불일치)
+ if (error.response?.status === 400) {
+ throw new Error('이메일 또는 비밀번호가 일치하지 않습니다.');
+ }
+ // 500 에러 (서버 내부 오류)
+ if (error.response?.status === 500) {
+ throw new Error(
+ '서버 오류가 발생했습니다. 잠시 후 다시 시도해주세요.'
+ );
+ }
+ }
+ // 기타 예상치 못한 에러
+ throw new Error('로그인 중 오류가 발생했습니다.');
+ }
+ },
+};