Skip to content
Merged
Show file tree
Hide file tree
Changes from 35 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
87e3f15
chore: 머지 후 브랜치 삭제 github action 추가
withyj-codeit Sep 3, 2023
1472169
Initial commit from Create Next App
withyj-codeit Nov 23, 2023
671d4d5
reset
hanseulhee Oct 10, 2023
14baca2
fix: 머지 후 브랜치 삭제 github action 수정
hanseulhee Oct 10, 2023
8d163dd
env: workflows 폴더로 이동
hanseulhee Oct 10, 2023
ee44005
reset
hanseulhee Oct 10, 2023
0e691e3
env: workflows 폴더로 이동
hanseulhee Oct 10, 2023
390a068
feat: Header 추가, Boards 페이지 세팅
asksa1256 Jul 13, 2025
1002016
style: 반응형 스타일 테일윈드로 마이그레이션
asksa1256 Aug 12, 2025
4b8cfd6
refactor: pages router로 변경
asksa1256 Aug 12, 2025
8c9c027
chore: auth 페이지 리라이트
asksa1256 Aug 12, 2025
bdfaf46
chore: clsx, react-hook-form 패키지 설치
asksa1256 Aug 12, 2025
87cb587
chore: 로그인 페이지 마이그레이션 (react -> next)
asksa1256 Aug 12, 2025
06fabd3
style: 랜딩 페이지 퍼블리싱
asksa1256 Aug 13, 2025
a6ea937
feat: header - 로그인 버튼 추가
asksa1256 Aug 13, 2025
202ace1
style: 로그인 페이지 퍼블리싱
asksa1256 Aug 13, 2025
b8c10ab
fix: footer sns icon 이미지 import 수정
asksa1256 Aug 14, 2025
e9a2f03
feat: 로그인 폼 유효성 검사 추가
asksa1256 Aug 14, 2025
f294cb3
feat: 로그인 api 연동 + user 전역 상태 저장 + 토큰 쿠키로 저장
asksa1256 Aug 14, 2025
a44fcc3
feat: 로그인 시 로그인, 회원가입 접근 - 메인으로 리디렉션
asksa1256 Aug 14, 2025
802fe16
feat: 헤더 - accessToken 여부에 따라 로그인/프로필 이미지 조건부 렌더링
asksa1256 Aug 14, 2025
269de3c
feat: 헤더 - 아바타 클릭 시 드롭다운 메뉴 토글
asksa1256 Aug 14, 2025
a9b27d5
feat: 로그아웃 시 쿠키 삭제
asksa1256 Aug 14, 2025
fffc7a1
chore: use client 선언 제거
asksa1256 Aug 14, 2025
d771255
chore: 필요없는 파일 삭제
asksa1256 Aug 14, 2025
5d9cdb4
feat: 회원가입 폼 유효성 검사
asksa1256 Aug 14, 2025
2357563
feat: 회원가입 api 연동
asksa1256 Aug 14, 2025
4b82fd0
feat: axios interceptor - 401 권한 에러시 토큰 재발급 설정
asksa1256 Aug 14, 2025
3470635
fix: 회원가입 성공 시 라우팅 수정 및 쿠키 저장 로직 제거
asksa1256 Aug 14, 2025
9ddfc28
chore: vercel 배포 브랜치 변경용 push
asksa1256 Aug 14, 2025
13d67fb
fix: vercel 배포 에러 - eslint dependency 설치
asksa1256 Aug 14, 2025
135f147
fix: vercel 빌드 에러 수정 - eslint-config-next 추가
asksa1256 Aug 14, 2025
1432ce4
fix: next config export 코드 수정
asksa1256 Aug 14, 2025
5c6a50e
chore: 안 쓰는 파일 제거
asksa1256 Aug 14, 2025
1ea0918
Merge branch 'React-이상달' into Next-이상달-sprint11
asksa1256 Aug 18, 2025
6f67a68
refactor: Banner loading prop 수정
asksa1256 Sep 17, 2025
2539798
fix: MainSection imgAlt값 추가
asksa1256 Sep 17, 2025
a1a67a1
refactor: BannerProps에서 BannerImage 타입 분리
asksa1256 Sep 17, 2025
b634a61
refactor: ImageType 분리 및 적용
asksa1256 Sep 17, 2025
c7bf0f1
refactor: SocialLoginButton ImageType 적용
asksa1256 Sep 17, 2025
0459e9e
refactor: Layout 분리 구조 변경
asksa1256 Sep 17, 2025
1cb67f9
refactor: LoginForm 리액트 쿼리 제거 → fetch 요청 + 스토리지 저장 방식만 사용
asksa1256 Sep 17, 2025
8750a61
chore: 환경변수 타입 수정
asksa1256 Sep 17, 2025
cf1c2dc
refactor: 회원가입 폼 - 리액트 쿼리 제거 → fetch
asksa1256 Sep 17, 2025
c4f4f65
refactor: 로그인 처리 로직 커스텀 훅 생성 (useSignIn)
asksa1256 Sep 17, 2025
e8dac58
chore: 중복 헤더 파일 제거
asksa1256 Sep 17, 2025
2000956
fix: 커스텀 훅에서 zustand 훅 사용 에러 수정 (useAuthStore getState로 수정)
asksa1256 Sep 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"extends": "next/core-web-vitals"
}
22 changes: 17 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,29 @@
# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# local env files
.env
.env*.local

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts
78 changes: 24 additions & 54 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,70 +1,40 @@
# Getting Started with Create React App
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).

This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
## Getting Started

## Available Scripts
First, run the development server:

In the project directory, you can run:
```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```

### `npm start`
Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

Runs the app in the development mode.\
Open [http://localhost:3000](http://localhost:3000) to view it in your browser.
You can start editing the page by modifying `pages/index.tsx`. The page auto-updates as you edit the file.

The page will reload when you make changes.\
You may also see any lint errors in the console.
[API routes](https://nextjs.org/docs/api-routes/introduction) can be accessed on [http://localhost:3000/api/hello](http://localhost:3000/api/hello). This endpoint can be edited in `pages/api/hello.ts`.

### `npm test`
The `pages/api` directory is mapped to `/api/*`. Files in this directory are treated as [API routes](https://nextjs.org/docs/api-routes/introduction) instead of React pages.

Launches the test runner in the interactive watch mode.\
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.

### `npm run build`

Builds the app for production to the `build` folder.\
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.\
Your app is ready to be deployed!

See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.

### `npm run eject`

**Note: this is a one-way operation. Once you `eject`, you can't go back!**

If you aren't satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.

Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you're on your own.

You don't have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn't feel obligated to use this feature. However we understand that this tool wouldn't be useful if you couldn't customize it when you are ready for it.
This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.

## Learn More

You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).

To learn React, check out the [React documentation](https://reactjs.org/).

### Code Splitting

This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting)

### Analyzing the Bundle Size

This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size)

### Making a Progressive Web App

This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app)

### Advanced Configuration
To learn more about Next.js, take a look at the following resources:

This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration)
- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

### Deployment
You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!

This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment)
## Deploy on Vercel

### `npm run build` fails to minify
The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify)
Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
Binary file added assets/fonts/Pretendard/Pretendard-Bold.woff2
Binary file not shown.
Binary file added assets/fonts/Pretendard/Pretendard-Medium.woff2
Binary file not shown.
Binary file added assets/fonts/Pretendard/Pretendard-Regular.woff2
Binary file not shown.
25 changes: 25 additions & 0 deletions assets/fonts/Pretendard/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
import localFont from "next/font/local";

const pretendard = localFont({
src: [
{
path: "./Pretendard-Regular.woff2",
weight: "400",
style: "normal",
},
{
path: "./Pretendard-Medium.woff2",
weight: "500",
style: "normal",
},
{
path: "./Pretendard-Bold.woff2",
weight: "700",
style: "normal",
},
],
variable: "--font-pretendard",
display: "swap",
});

export default pretendard;
10 changes: 10 additions & 0 deletions assets/images/ic_visibility_off.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions assets/images/ic_visibility_on.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 18 additions & 0 deletions components/Avatar/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { MouseEvent } from "react";
import Image from "next/image";

interface AvatarProps {
imgSrc: string;
className?: string;
onClick?: (e: MouseEvent<HTMLButtonElement>) => void;
}

const Avatar = ({ imgSrc, className, onClick }: AvatarProps) => {
return (
<button className={className} onClick={onClick}>
<Image src={imgSrc} alt="프로필 이미지" width="40" height="40" />
</button>
);
};

export default Avatar;
62 changes: 62 additions & 0 deletions components/Banner/index.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
import { ReactNode } from "react";
import { StaticImageData } from "next/image";
import Button from "@/components/ui/Button";
import { useRouter } from "next/navigation";
import Image from "next/image";

interface BannerProps {
title: string | ReactNode;
imgSrc: string | StaticImageData;
imgAlt: string;
linkTo?: string;
ariaLabel?: string;
lazyLoading?: boolean;
}

const Banner = ({
title,
linkTo,
imgSrc,
imgAlt,
ariaLabel,
lazyLoading,
}: BannerProps) => {
const router = useRouter();

return (
<article
className="min-h-[540px] bg-primary-light text-gray-700 text-center"
aria-label={ariaLabel}
>
<div className="flex flex-col justify-between h-full min-h-[540px]">
<div className="pt-[120px] md:pt-[84px] md:px-0 md:pb-[210px] md:max-w-none lg:items-start lg:pb-24">
<h2 className="text-fluid mb-[18px] md:mb-6 lg:mb-8 break-keep font-bold">
{title}
</h2>
{linkTo && (
<Button
onClick={() => router.push(linkTo)}
aria-label="상품 페이지로 이동"
variant="primary"
size="lg"
shape="round"
className="px-[70px] md:px-[124px]"
>
구경하러 가기
</Button>
)}
</div>
<Image
className="w-full max-w-[744px] my-0 mx-auto"
loading={lazyLoading ? "lazy" : "eager"}
src={imgSrc}
alt={imgAlt}
width={746}
height={340}
/>
</div>
</article>
);
};

export default Banner;
Loading