Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Writing #21

Merged
merged 60 commits into from
Jul 14, 2024
Merged
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
f71bdc9
Add: 프로젝트 캠프 1주차 리뷰 작성
callmebyneon Jun 2, 2024
2f2af23
Update: last modified 날짜 추가
callmebyneon Jun 2, 2024
474c368
Update: 수업 사진 추가 및 사진 alt text 수정
callmebyneon Jun 2, 2024
546d8ea
Update: FontAwesomeIcon 대체 - 초기 렌더링 문제 방지
callmebyneon Jun 9, 2024
7a33672
Update: ProfileImage 숨기기
callmebyneon Jun 9, 2024
5b6efba
Fix: 이미지 크기에 따른 모바일 화면 overflow 오류 해결
callmebyneon Jun 9, 2024
e8ae8cf
Add: Next.js 프로젝트 캠프 2주차 내용 작성
callmebyneon Jun 9, 2024
0cd9d3c
Merge branch 'develop' into writing
callmebyneon Jun 9, 2024
be112ad
Add: 'nextjs' 태그 추가
callmebyneon Jun 9, 2024
a1c7a68
Merge branch 'writing' of https://github.com/callmebyneon/callmebyneo…
callmebyneon Jun 9, 2024
2e874f6
Update: 커버 이미지 변경
callmebyneon Jun 15, 2024
1209cd1
Change: 폴더 날짜 변경
callmebyneon Jun 15, 2024
4c6bbae
Add: 이미지 추가
callmebyneon Jun 15, 2024
c387a3f
Add: 프로젝트 캠프 3주차 리뷰 작성
callmebyneon Jun 15, 2024
32519ec
Update: 오탈자 수정 및 hydration 참고 링크 추가
callmebyneon Jun 15, 2024
3dbb542
Update: auth 기본 설명 수정
callmebyneon Jun 15, 2024
4826b88
Add: 사용자 인증 내용 추가
callmebyneon Jun 15, 2024
cd0baf0
Update: 사용자 인증 내용 수정
callmebyneon Jun 15, 2024
9d3d979
Change: 프로젝트 카테고리; Course -> Camp
callmebyneon Jun 15, 2024
927c6b4
Update: 앱 라우터 그룹 참고 내용 추가
callmebyneon Jun 15, 2024
6defdd5
Merge branch 'develop' into writing
callmebyneon Jun 15, 2024
3b86f79
Change: 폴더 날짜 변경
callmebyneon Jun 15, 2024
0d857cf
Merge branch 'develop' of https://github.com/callmebyneon/callmebyneo…
callmebyneon Jun 15, 2024
2838d61
Pull (#11)
callmebyneon Jun 15, 2024
4626c1d
Update: post table style
callmebyneon Jun 21, 2024
289e0bb
Add: 4주차 프로젝트 진행 리뷰 작성
callmebyneon Jun 22, 2024
b9bcfd9
Update: 날짜 수정
callmebyneon Jun 22, 2024
7644232
Update: 폴더 날짜 수정
callmebyneon Jun 22, 2024
3c44e42
chore: change emoji
callmebyneon Jun 29, 2024
da80271
chore: add favicon
callmebyneon Jun 29, 2024
c2858c4
chore: change input checkbox
callmebyneon Jun 29, 2024
f305efd
write: 프로젝트 캠프 5주차 리뷰 작성
callmebyneon Jun 29, 2024
aa3cc01
Merge branch 'develop' into writing
callmebyneon Jun 29, 2024
263838c
Merge branch 'develop' into writing
callmebyneon Jul 2, 2024
72672d9
style: 다크 모드 적용 (#15)
callmebyneon Jul 2, 2024
2454d39
Merge branch 'writing' of https://github.com/callmebyneon/callmebyneo…
callmebyneon Jul 2, 2024
07070e2
chore: 수정
callmebyneon Jul 5, 2024
9300ff0
write: 오류 해결 과정 정리글 작성
callmebyneon Jul 5, 2024
85ce7e4
write: 프로젝트 캠프 6주차 진행 과정 리뷰 작성
callmebyneon Jul 5, 2024
d4b1ebf
chore: update tag
callmebyneon Jul 5, 2024
58bf35a
style: update
callmebyneon Jul 5, 2024
7469509
write: dark-mode context
callmebyneon Jul 5, 2024
04f7ba1
Merge branch 'develop' into writing
callmebyneon Jul 5, 2024
d7fe934
Merge
callmebyneon Jul 9, 2024
4a73e6f
Merge
callmebyneon Jul 9, 2024
2638b2b
Merge branch 'develop' into writing
callmebyneon Jul 9, 2024
cc32ef7
Merge
callmebyneon Jul 9, 2024
7c937bc
fix: delete replicate
callmebyneon Jul 10, 2024
214fc2e
fix: bold in table
callmebyneon Jul 10, 2024
d5009ae
chore: change image file format (png -> jpg) & update posts
callmebyneon Jul 14, 2024
81146ec
write: about add dark mode toggle function in blog
callmebyneon Jul 14, 2024
7a5ec4b
refactor: separate icons
callmebyneon Jul 14, 2024
49c1b30
write: 프로젝트 넷째주 진행 리뷰 작성
callmebyneon Jul 14, 2024
7da33b5
.
callmebyneon Jul 14, 2024
c4c61c5
try to fix: build error
callmebyneon Jul 14, 2024
40bb619
Merge branch 'develop' into writing
callmebyneon Jul 14, 2024
1e9a25f
try to fix::
callmebyneon Jul 14, 2024
e1846d8
Merge branch 'writing' of https://github.com/callmebyneon/callmebyneo…
callmebyneon Jul 14, 2024
c62f12f
try to fix::
callmebyneon Jul 14, 2024
72bc3bd
Merge branch 'develop' into writing
callmebyneon Jul 14, 2024
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
115 changes: 48 additions & 67 deletions contents/2024-07-15/thenextjs-week-7.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,78 +54,59 @@ emoji: '💻'

아래 코드에서 현재 프로젝트의 컴포넌트들을 크게 비즈니스 로직/데이터 계층과 표현 계층으로 나눠본다. 예를 들어 메인 페이지에서의 스터디 리뷰 카드 슬라이드를 컴포넌트를 나눌 때, Swiper.js를 사용해 만든 전체 코드를 Swiper(`swiper/react`) 컴포넌트를 이용하여 기본적인 컴포넌트 디자인과 구조를 만드는 컴포넌트, 데이터를 보여줄 각 슬라이드 요소의 디자인 표현 컴포넌트(presentaional), 데이터를 사용하여 실제 페이지 컴포넌트에서 바로 사용하게 될 슬라이드 섹션 컨텐츠 컴포넌트로 각각의 관심사별로 레이어를 구분하여 이해할 수 있다.

```tsx
// Swiper Slide Component
```jsx
// ReviewSwiper.tsx
...
export default function ReviewSwiper({ children }: TProps) {
return (
<>
<div className="flex items-center justify-center w-full mx-auto overflow-hidden relative">
<div className="swiperContainer w-[1900px] mx-auto">
<Swiper
modules={[Navigation, Pagination, A11y]}
navigation={{
prevEl: '.prevNavigation',
nextEl: '.nextNavigation',
}}
spaceBetween={24}
slidesPerView={3.5}
centeredSlides={true}
grabCursor={true}
pagination={{
clickable: true,
renderBullet: ...
}}
>
{children}
<div className="bg-gradient-to-r from-white w-[520px] h-full absolute top-0 left-0 z-10"></div>
<div className="bg-gradient-to-l from-white w-[520px] h-full absolute top-0 right-0 z-10"></div>
</Swiper>
</div>
<div className="navigations">
<div className="prevNavigation">
<SliderNavigationButton direction="prev" />
</div>
<div className="nextNavigation">
<SliderNavigationButton direction="next" />
</div>
</div>
</div>
</>
)
}
<div className="flex items-center justify-center w-full mx-auto overflow-hidden relative">
<div className="swiperContainer w-[1900px] mx-auto">
<Swiper
modules={[Navigation, Pagination, A11y]}
navigation={{
prevEl: '.prevNavigation',
nextEl: '.nextNavigation',
}}
spaceBetween={24}
slidesPerView={3.5}
centeredSlides={true}
grabCursor={true}
pagination={...}
>
{children}
<div className="bg-gradient-to-r from-white w-[520px] h-full absolute top-0 left-0 z-10"></div>
<div className="bg-gradient-to-l from-white w-[520px] h-full absolute top-0 right-0 z-10"></div>
</Swiper>
</div>
<div className="navigations">
<div className="prevNavigation">
<SliderNavigationButton direction="prev" />
</div>
<div className="nextNavigation">
<SliderNavigationButton direction="next" />
</div>
</div>
</div>
```

```tsx
// UserStudyReviewItem
// UserReviewItem.tsx
...
export default function UserReviewItem({
review,
className,
}: {
review: TReview
className?: string
}) {
return (
<div
className={
clsx(
'snap-center rounded-twenty overflow-hidden w-[520px] flex flex-col border border-line-alt select-none mb-12 ',
className
)
}
>
<div className="flex flex-col items-center justify-center py-4 px-16 bg-card h-[200px]">
<p className="text-body-400 w-[380px] text-justify">{review.text}</p>
</div>
<div className="flex flex-col items-center justify-center gap-2 py-2 h-[90px] relative">
<div className="triangle w-0 h-0 border-x-[15px] border-y-[25px] border-t-[#f0f4fa] border-b-transparent border-l-transparent border-r-transparent absolute top-0 left-1/4 -translate-x-full"></div>
<p className="text-label-600">'{review.studyName}' 후기</p>
<p className="text-label-400">{review.writerKeyword}</p>
</div>
</div>
)
}
<div
className={
clsx(
'snap-center rounded-twenty overflow-hidden w-[520px] flex flex-col border border-line-alt select-none mb-12 ',
className
)
}
>
<div className="flex flex-col items-center justify-center py-4 px-16 bg-card h-[200px]">
<p className="text-body-400 w-[380px] text-justify">{review.text}</p>
</div>
<div className="flex flex-col items-center justify-center gap-2 py-2 h-[90px] relative">
<div className="triangle w-0 h-0 border-x-[15px] border-y-[25px] border-t-[#f0f4fa] border-b-transparent border-l-transparent border-r-transparent absolute top-0 left-1/4 -translate-x-full"></div>
<p className="text-label-600">'{review.studyName}' 후기</p>
<p className="text-label-400">{review.writerKeyword}</p>
</div>
</div>
```

```tsx
Expand Down