Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
116 commits
Select commit Hold shift + click to select a range
ac315f7
first commit
sungahChooo Oct 28, 2025
089b3eb
vercel branch 변경
sungahChooo Oct 28, 2025
dee7a58
Update issue templates
sungahChooo Oct 28, 2025
0bfd4b7
styled-components 설치 babel 파일 추가
sungahChooo Oct 28, 2025
e629e8b
favicon 적용
sungahChooo Oct 28, 2025
d0f9329
Merge branch 'main' of https://github.com/sungahChooo/next-netflix-22nd
sungahChooo Oct 28, 2025
165f436
Styled-components 삭제
baekseungsun Oct 29, 2025
f2faef8
Styled-components 삭제
baekseungsun Oct 29, 2025
2c99859
feat: landing 페이지 개발
sungahChooo Oct 29, 2025
94a444a
Add pull request template for better contributions
sungahChooo Oct 29, 2025
81f9589
헤더와 API이용한 배너 개발
baekseungsun Oct 30, 2025
d9bd5d6
feat: continue watching 컴포넌트 개발
sungahChooo Oct 30, 2025
b93f200
Merge pull request #3 from sungahChooo/feat/landing
sungahChooo Oct 30, 2025
5b25f8f
프리뷰 개발
baekseungsun Oct 30, 2025
7215485
Merge pull request #4 from sungahChooo/feat/mainHeader
baekseungsun Oct 30, 2025
86d5f16
Revert "feat: Header, Banner 개발"
baekseungsun Oct 30, 2025
1566285
Merge pull request #6 from sungahChooo/revert-4-feat/mainHeader
baekseungsun Oct 30, 2025
d5083cf
navbar 개발
baekseungsun Oct 30, 2025
5a6fd53
feat: popular on netflix 컴포넌트 개발
sungahChooo Oct 30, 2025
920c260
feat: Trending Now 컴포넌트 개발
sungahChooo Oct 30, 2025
e2db329
style: 홈 section padding 조절
sungahChooo Oct 30, 2025
1aa7bf6
feat: Top 10 컴포넌트 개발
sungahChooo Oct 30, 2025
f424c1d
feat: My List 컴포넌트 개발
sungahChooo Oct 30, 2025
09ca403
feat: Nollywood 컴포넌트 개발
sungahChooo Oct 30, 2025
94b4ba6
feat: Netflix originals 컴포넌트 개발
sungahChooo Oct 30, 2025
6841897
feat: New Releases 컴포넌트 개발
sungahChooo Oct 30, 2025
65b9b1f
feat: Tv Thriller Mysteris 컴포넌트 개발
sungahChooo Oct 30, 2025
22e2c06
fix: Tv Thriller & Mysteries 오타 수정
sungahChooo Oct 30, 2025
e7a90af
feat: US TV shows 컴포넌트 개발
sungahChooo Oct 30, 2025
279c5fc
feat: Watch It Again 컴포넌트 개발
sungahChooo Oct 30, 2025
3394f81
dev 최신화 후 충돌 해결
sungahChooo Oct 31, 2025
8e2c8ca
Update issue templates
sungahChooo Oct 31, 2025
cdd5525
Update PULL_REQUEST_TEMPLATE.md
sungahChooo Oct 31, 2025
d1cc53b
refactor: type과 fetch함수 분리
sungahChooo Oct 31, 2025
6a738f3
reafact: fetch 함수 파일 분리
sungahChooo Oct 31, 2025
404f188
refact: fetch 함수 분리 오류 해결
sungahChooo Oct 31, 2025
2d056f6
feat: indicator bar z-index 조절
sungahChooo Oct 31, 2025
98a97a6
chore: eslint, prettier 설정
sungahChooo Oct 31, 2025
d4ef53b
chore: 폰트 적용
sungahChooo Oct 31, 2025
0fd3b0b
refact: navbar 하단 고정, 눌렀을시 임시 페이지 이동 및 색상 변경
baekseungsun Oct 31, 2025
d53f43c
refact: any대신 실제 타입으로 반환
baekseungsun Oct 31, 2025
fce65e2
Merge branch 'dev' into feat/mainHeader
baekseungsun Oct 31, 2025
b0801bf
Merge branch 'dev' into feat/previews
baekseungsun Oct 31, 2025
64f007c
Merge pull request #12 from sungahChooo/feat/mainHeader
baekseungsun Oct 31, 2025
c5c468f
chore: 폰트 적용 오류 해결
sungahChooo Oct 31, 2025
37dd0f7
Merge branch 'dev' into feat/previews
baekseungsun Oct 31, 2025
856fa93
Merge pull request #5 from sungahChooo/feat/previews
baekseungsun Oct 31, 2025
ccc1cb0
Merge branch 'dev' into feat/navbar
baekseungsun Oct 31, 2025
01637ef
refactor: home/page 수정
baekseungsun Oct 31, 2025
43dd396
refactor: types 관련 문제 해결
baekseungsun Oct 31, 2025
f479e43
refactor: type 관련 문제 해결
baekseungsun Oct 31, 2025
b12dd08
Merge pull request #7 from sungahChooo/feat/navbar
baekseungsun Oct 31, 2025
252ddcb
refactor: navbar 추가
baekseungsun Oct 31, 2025
a272304
conflict 해결
sungahChooo Oct 31, 2025
01a4343
Merge pull request #8 from sungahChooo/feat/home-component
sungahChooo Oct 31, 2025
19864ac
폰트적용
sungahChooo Oct 31, 2025
fb29d93
fix: API 호출 오류 해결
sungahChooo Oct 31, 2025
919cb29
Merge branch 'dev' of https://github.com/sungahChooo/next-netflix-22n…
sungahChooo Oct 31, 2025
0905056
choore: 홈 margin 조절
sungahChooo Oct 31, 2025
5439b6c
fix: 랜딩페이지 navbar숨김처리
sungahChooo Oct 31, 2025
c66d0ac
refactor: 라우팅시 화면 움직임 개선
baekseungsun Nov 1, 2025
b30dd90
refactor: 마진 조정
baekseungsun Nov 1, 2025
9b3cfea
refactor: 레이아웃 수정
baekseungsun Nov 1, 2025
8cef529
폰트 적용
sungahChooo Nov 1, 2025
a6ed4b2
chore 포트번호 지정
sungahChooo Nov 1, 2025
92d0458
chore: 포트 번호 지정 취소
sungahChooo Nov 1, 2025
15f2cd9
Merge pull request #14 from sungahChooo/refactor/style
sungahChooo Nov 1, 2025
6ef9935
refactor: 화면 흔들림 수정
baekseungsun Nov 1, 2025
54e067e
Merge pull request #15 from sungahChooo/refactor/style
baekseungsun Nov 1, 2025
c880035
refactor: 메인 페이지 레이아웃 수정
baekseungsun Nov 1, 2025
6b900c3
Merge dev into main
baekseungsun Nov 1, 2025
d187fe5
refactor: 누락된 아이콘 추가
baekseungsun Nov 1, 2025
6a490c7
fix: 홈페이지 아이콘 경로 오류 해결
sungahChooo Nov 1, 2025
b9d8a4f
fix: 헤더와 navbar UI 초과 해결
sungahChooo Nov 1, 2025
ad92980
style: 홈 헤더 배경 투명화
sungahChooo Nov 1, 2025
62f42fd
Merge pull request #16 from sungahChooo/refactor/style
sungahChooo Nov 1, 2025
319a923
Update README with team member names
sungahChooo Nov 1, 2025
f3890cd
fix: 로컬 main 오류 해결
sungahChooo Nov 1, 2025
465f5af
resolve Banner.tsx merge conflict
sungahChooo Nov 1, 2025
ceb8245
chore: 협업을 위한 prettier 설정
sungahChooo Nov 1, 2025
dfc23a0
[#19] refactor: 파일 이름 변경, 수정, 위치 변경
baekseungsun Nov 2, 2025
f2f6772
chore: 절대경로 일관 적용
sungahChooo Nov 5, 2025
e2f28cf
chore: axios 방식 적용
sungahChooo Nov 5, 2025
760d841
refact: axios 방식 적용
sungahChooo Nov 5, 2025
a9403b0
refactor: tv show를 axios로 불러오도록 수정
sungahChooo Nov 5, 2025
c0ed437
refactor: Navbar SVGR 방식 사용
baekseungsun Nov 5, 2025
bdbcbd1
Merge branch 'dev'
sungahChooo Nov 5, 2025
38b79db
feat: 로딩 스피너 추가
baekseungsun Nov 6, 2025
35b80ee
feat: Preview페이지 구현
baekseungsun Nov 7, 2025
34e19b3
[#22] feat: 검색 영화 목록 조회
sungahChooo Nov 8, 2025
28643d6
[#22] fix: 스타일 오류 수정
sungahChooo Nov 8, 2025
8b1dc42
[#22] feat: 무한 로딩 기능 구현
sungahChooo Nov 8, 2025
3f99516
feat: skeleton 기능 구현
sungahChooo Nov 8, 2025
7e6de3b
Merge pull request #23 from sungahChooo/feat/search
sungahChooo Nov 8, 2025
bf60fbd
Update PULL_REQUEST_TEMPLATE.md
sungahChooo Nov 8, 2025
0b3d6a5
Merge branch 'dev' into feat/previewPage
baekseungsun Nov 8, 2025
854125e
Merge pull request #25 from sungahChooo/feat/previewPage
baekseungsun Nov 8, 2025
6ce175d
Merge branch 'main' into dev
baekseungsun Nov 8, 2025
f548d47
Merge pull request #27 from sungahChooo/dev
baekseungsun Nov 8, 2025
19fbd95
refactor: searchResults.tsx 프리뷰
baekseungsun Nov 8, 2025
f0fc868
[#22] fix: 무한 스크롤 조건 수정
sungahChooo Nov 8, 2025
db84b70
Merge pull request #28 from sungahChooo/feat/search
sungahChooo Nov 8, 2025
ceaf143
fix: 홈, 상세페이지 스타일 수정, skeleton 컴포넌트 스타일 수정
sungahChooo Nov 8, 2025
3e3d835
fix: search 스타일 수정
sungahChooo Nov 8, 2025
1a07467
feat: home 페이지 swipe 기능 구현
sungahChooo Nov 8, 2025
27892d4
fix: search 페이지 movie id 중복 문제 해결
sungahChooo Nov 8, 2025
895c06d
refactor: searchResult 페이지에서 Preview Page 라우팅
baekseungsun Nov 8, 2025
51375d4
Merge pull request #29 from sungahChooo/dev
baekseungsun Nov 8, 2025
0d5ab15
fix: 무한 스크롤 오류 해결
sungahChooo Nov 9, 2025
35d1298
Merge branch 'dev' of https://github.com/sungahChooo/next-netflix-22n…
sungahChooo Nov 9, 2025
e5e3727
fix: 무한 스크롤 오류 해결
sungahChooo Nov 9, 2025
28c71d2
Merge branch 'dev'
sungahChooo Nov 9, 2025
2ef43df
style: navbar 스타일 오류 해결
sungahChooo Nov 12, 2025
1a9cf84
refact: search 페이지 debounce 적용
sungahChooo Nov 12, 2025
62ee875
style: layout, search page 스타일 수정
sungahChooo Nov 12, 2025
b21f8bf
Merge branch 'dev'
sungahChooo Nov 12, 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 .babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"presets": ["next/babel"]
}
23 changes: 23 additions & 0 deletions .github/ISSUE_TEMPLATE/커스텀-이슈-템플릿.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
---
name: 커스텀 이슈 템플릿
about: 해당 이슈 생성 템플릿을 사용하여 이슈를 생성해주세요.
title: "[♻️ refactor /✨ feat /\U0001F41B bug /\U0001F527 fix / \U0001F9F9chore ] 이슈
제목"
labels: ''
assignees: ''

---

📌 이슈 내용
------------
이슈를 설명해주세요.


📝 작업 내용
------------
- [ ] 작업 1
- [ ] 작업 2


✨ 참고 사항
------------
22 changes: 22 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
### 체크리스트!
- [ ] ✅ base가 dev가 맞나요?
- [ ] 🔀 PR 제목의 형식을 잘 작성했나요?
- [ ] 🧹 불필요한 코드는 제거했나요?
- [ ] 💭 이슈는 등록했나요?
- [ ] 🏷️ 라벨은 등록했나요?

## #️⃣연관된 이슈
> ex) #이슈번호, #이슈번호

## 작업 브랜치명
> ex)feat/home

## 📝작업 내용
> 이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능)

### 📷스크린샷 (선택)

## 💬리뷰 요구사항(선택)
> 리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요

#### close: 자신이 개발 전에 올린 이슈번호
41 changes: 41 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions

# testing
/coverage

# next.js
/.next/
/out/

# production
/build

# misc
.DS_Store
*.pem

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

# env files (can opt-in for committing if needed)
.env*

# vercel
.vercel

# typescript
*.tsbuildinfo
next-env.d.ts
11 changes: 11 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"arrowParens": "always",
"bracketSpacing": true,
"endOfLine": "auto",
"printWidth": 120,
"semi": true,
"singleQuote": true,
"tabWidth": 2,
"trailingComma": "all",
"useTabs": false
}
16 changes: 16 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
{
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}
}
99 changes: 40 additions & 59 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,59 +1,40 @@
# 5주차 과제: Next Netflix 🎬🍿

## 서론

안녕하세요, 프론트 운영진 **권동욱**입니다! 🩷🥰

이번 주부터는 새 프로젝트인 **Netflix 클론코딩**을 진행합니다!

이번 과제에서는 **Next.js**를 활용해 **SSR(Server Side Rendering)** 을 직접 경험해보고, 주어진 **Figma 디자인**을 활용해 스타일링 하는 방법을 이해하는 것을 목표로 합니다.

또한 이번 주부터는 프론트 페어와 함께하는 첫 과제인 만큼, 팀별로 미리 **호흡**을 맞춰볼 수 있는 좋은 기회가 될 것 같습니다.

그럼 이번 과제도 모두 파이팅입니다!!!! 🔥🔥

## 과제

### **⭐ 과제 목표**

- Next.js 사용법을 공부해봅니다.
- Figma로 주어지는 디자인으로 스타일링 하는 방식에 익숙해집니다.
- Git을 이용한 협업 방식에 익숙해집니다.
- 프론트엔드와 백엔드 시스템에 대한 흐름을 이해합니다.

### 📅 기한

> 2025년 11월 1일 토요일 (기한 엄수)

### **✅ 필수 요건**

- [결과화면](https://next-netflix-18th-2.vercel.app)의 랜딩 페이지와 메인 페이지를 구현합니다.
- [Figma](https://www.figma.com/file/UqdXDovIczt1Gl0IjknHQf/Netflix?node-id=0%3A1)의 디자인을 그대로 구현합니다.
- Open api를 사용해서 데이터 패칭을 진행합니다. (ex. [themoviedb API](https://developers.themoviedb.org/3/getting-started/introduction))
- `yarn`, `yarn berry`, `npm`, `pnpm`등 패키지 매니저를 직접 선택해 Next.js를 세팅해 봅니다.

### 👍🏻 선택 요건

- SSR(Server Side Rendering)을 적용해서 구현합니다.
- 웹 폰트를 사용합니다.
- 반응형을 고려합니다.

### 🔑 Research Question

- 전반적인 협업 과정에 대해 알려주세요. 👏🏻 (21기 PR 참고하셔도 좋을 것 같아요)

---

### **🔗 링크 및 참고자료**

- [useCallback과 React.Memo를 이용한 렌더링 최적화](https://velog.io/@yejinh/useCallback%EA%B3%BC-React.Memo%EC%9D%84-%ED%86%B5%ED%95%9C-%EB%A0%8C%EB%8D%94%EB%A7%81-%EC%B5%9C%EC%A0%81%ED%99%94)
- [성능 최적화](https://ui.toast.com/fe-guide/ko_PERFORMANCE)
- [React 18의 새로운 기능](https://www.youtube.com/watch?v=7mkQi0TlJQo)
- [react 서버 컴포넌트가 해결하는 문제들 in kakao 기술 블로그](https://tech.kakaopay.com/post/react-server-components/)
- [vercel의 배포 방식](https://www.youtube.com/watch?v=8q-jCvLWwKc&t=11s)
- [랜딩페이지 영상](https://lottiefiles.com/kr/)
- [Next.js Docs](https://beta.nextjs.org/docs)
- [Next.js 13에서 변한 것들](https://velog.io/@hang_kem_0531/Next.js-13%EC%9D%B4-%EB%82%98%EC%99%80%EB%B2%84%EB%A0%B8%EB%8B%A4)
- [Next.js 14에서 변한 것들](https://velog.io/@lee_1124/Next.js-14-%EC%97%85%EB%8D%B0%EC%9D%B4%ED%8A%B8)
- [Git 협업 가이드](https://velog.io/@jinuku/Git-%ED%98%91%EC%97%85-%EA%B0%80%EC%9D%B4%EB%93%9C)
- [디자이너와 개발자가 협업하기 위한 피그마 기본 기능](https://chingguhl.tistory.com/entry/%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%EA%BC%AD-%EC%95%8C%EC%95%84%EC%95%BC-%ED%95%A0-%ED%94%BC%EA%B7%B8%EB%A7%88-10%EA%B0%80%EC%A7%80-%EA%B8%B0%EB%8A%A5-%EB%94%94%EC%9E%90%EC%9D%B4%EB%84%88%EC%99%80-%EA%B0%9C%EB%B0%9C%EC%9E%90%EA%B0%80-%ED%98%91%EC%97%85%ED%95%98%EA%B8%B0-%EC%9C%84%ED%95%9C-%ED%94%BC%EA%B7%B8%EB%A7%88-%EA%B8%B0%EB%B3%B8-%EA%B8%B0%EB%8A%A5)
## 소개

next.js 프레임워크 기반의 넷플릭스 클론 코딩 프로젝트

## 배포링크

https://next-netflix-22nd.vercel.app/

## UX 향상을 위한 노력

- search 페이지 skeleton 적용
- 무한 스크롤, debounce 적용으로 불필요한 API 호출 방지

## Team DiggIndie

- 백승선
- 조성아

## 폴더 구조

```
app
┣ comingSoon
┃ ┗ page.tsx
┣ downloads
┃ ┗ page.tsx
┣ home
┃ ┗ page.tsx
┣ more
┃ ┗ page.tsx
┣ search
┃ ┗ page.tsx
┣ title
┃ ┗ [id]
┃ ┃ ┗ page.tsx
┣ font.css
┣ globals.css
┣ layout.tsx
┗ page.tsx
```
9 changes: 9 additions & 0 deletions app/comingSoon/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import Spinner from '@/components/Spinner';

export default function ComingSoon() {
return (
<div className="flex items-center justify-center min-h-screen ">
<Spinner />
</div>
);
}
9 changes: 9 additions & 0 deletions app/downloads/page.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import Spinner from '@/components/Spinner';

export default function Downloads() {
return (
<div className="flex items-center justify-center min-h-screen ">
<Spinner />
</div>
);
}
39 changes: 39 additions & 0 deletions app/font.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
@font-face {
font-family: 'SF Pro Display';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('/fonts/sf-pro-display-regular.woff2') format('woff2');
}

@font-face {
font-family: 'SF Pro Display';
font-style: normal;
font-weight: 500;
font-display: swap;
src: url('/fonts/sf-pro-display-medium.woff2') format('woff2');
}

@font-face {
font-family: 'SF Pro Display';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('/fonts/sf-pro-display-semibold.woff2') format('woff2');
}

@font-face {
font-family: 'SF Pro Display';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('/fonts/sf-pro-display-bold.woff2') format('woff2');
}

@font-face {
font-family: 'SF Pro Display';
font-style: normal;
font-weight: 800;
font-display: swap;
src: url('/fonts/sf-pro-display-heavy.woff2') format('woff2');
}
79 changes: 79 additions & 0 deletions app/globals.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
@import 'tailwindcss';
@import './font.css';

@font-face {
font-family: 'SF Pro Display';
src: url('/fonts/sf-pro-display-regular.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
}

@font-face {
font-family: 'SF Pro Display';
src: url('/fonts/sf-pro-display-medium.woff2') format('woff2');
font-weight: 500;
font-style: normal;
font-display: swap;
}

@font-face {
font-family: 'SF Pro Display';
src: url('/fonts/sf-pro-display-semibold.woff2') format('woff2');
font-weight: 600;
font-style: normal;
font-display: swap;
}

@font-face {
font-family: 'SF Pro Display';
src: url('/fonts/sf-pro-display-bold.woff2') format('woff2');
font-weight: 700;
font-style: normal;
font-display: swap;
}

@font-face {
font-family: 'SF Pro Display';
src: url('/fonts/sf-pro-display-heavy.woff2') format('woff2');
font-weight: 800;
font-style: normal;
font-display: swap;
}
Comment on lines +4 to +42

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

font.css와 중복되는것 같네요..!


:root {
--background: #ffffff;
--foreground: #171717;
}

@theme inline {
--color-background: var(--background);
--color-foreground: var(--foreground);
--font-sans: var(--font-geist-sans);
--font-mono: var(--font-geist-mono);
}

@layer base {
body {
background: var(--color-grayscale-02-white);
color: var(--color-grayscale-02-white);
font-family: var(--font-sans);
}
}

@media (prefers-color-scheme: dark) {
:root {
--background: #0a0a0a;
--foreground: #ededed;
}
}

body {
background: var(--background);
color: var(--foreground);
font-family: 'SF Pro Display', -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
}

*::-webkit-scrollbar {
display: none;
}
Comment on lines +77 to +79
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@layer base에 같이 둬도 될 것 같습니다 !

Loading