Skip to content
Open
Show file tree
Hide file tree
Changes from 7 commits
Commits
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
Binary file added .DS_Store

Choose a reason for hiding this comment

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

DS_Store와 node_modules 을 gitignore에 넣으면 좋은 점에 대해서 공부해보세요!

Copy link
Author

@lilviolie lilviolie Aug 7, 2023

Choose a reason for hiding this comment

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

버전 관리가 불필요한 파일들을 제외하기 위해 .gitignore을 사용해야 하는데.. 급하게 마무리하느라 신경을 못썼던 부분이네요ㅜㅜ
수정했습니다 다음부터 주의하겠습니다!
1de6e22
d0e3f54

Binary file not shown.
6 changes: 6 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"trailingComma": "es5",
"tabWidth": 2,
"semi": true,
"singleQuote": true
}
70 changes: 37 additions & 33 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,49 @@
[참고 내용]
# ⚡️패스트캠퍼스 클론코딩 프로젝트⚡️

👀 자신이 원하는 사이트 레이아웃 클론
원하는 사이트(페이지)를 자유롭게 선택하고 레이아웃을 클론 코딩하세요.
평소에 도전해 보고 싶었거나 혹은 자신의 수준에 맞는 사이트(페이지)를 선택하세요.
과제 수행 및 리뷰 기간은 별도 공지를 참고하세요!
## ✨ 프로젝트 소개

과제 수행 및 제출 방법
메종 프란시스 커정 공식 홈페이지를 클론코딩한 프로젝트입니다.

1. 현재 저장소를 로컬에 클론(Clone)합니다.
2. 자신의 본명으로 브랜치를 생성합니다.(구분 가능하도록 본명을 꼭 파스칼케이스로 표시하세요, git branch KDT0_이름)
3. 자신의 본명 브랜치에서 과제를 수행합니다.
4. 과제 수행이 완료되면, 자신의 본명 브랜치를 원격 저장소에 푸시(Push)합니다.(main 브랜치에 푸시하지 않도록 꼭 주의하세요, git push origin KDT0_이름)
5. 저장소에서 main 브랜치를 대상으로 Pull Request 생성하면, 과제 제출이 완료됩니다!(E.g, main <== KDT0_이름)
- 원본 홈페이지 : https://www.franciskurkdjian.com/eu-en
- 구현한 홈페이지 : https://lilviolie.github.io/kurkdjian/

## ✨ 필수 요구사항

- main 혹은 다른 사람의 브랜치로 절대 병합하지 않도록 주의하세요!
- Pull Request에서 보이는 설명을 다른 사람들이 이해하기 쉽도록 꼼꼼하게 작성하세요!
- Pull Request에서 과제 제출 후 절대 병합(Merge)하지 않도록 주의하세요!
- 과제 수행 및 제출 과정에서 문제가 발생한 경우, 바로 담당 멘토나 강사에서 얘기하세요!
- 과제에 대한 설명을 포함한 `README.md` 파일 제공
- 과제 결과와 비교할 수 있는 실제 사이트(페이지)의 주소 명시
- 과정에서 사용한 프로젝트 폴더/파일 모두 제출
- 실제 서비스로 배포하고 접근 가능한 배포 링크 추가

필수 요구사항
## ✨ 기술 스택

- 과제에 대한 설명을 포함한 README.md 파일을 제공하세요!
- 과제 결과와 비교할 수 있는 실제 사이트(페이지)의 주소를 명시하세요!
- 과정에서 사용한 프로젝트 폴더/파일이 모두 포함돼야 합니다, 일부 파일만 제출하지 마세요!
- 실제 서비스로 배포하고 접근 가능한 링크를 추가해야 합니다.
<div style="display:flex;">
<img src="https://img.shields.io/badge/html5-E34F26?style=for-the-badge&logo=html5&logoColor=white">
<img src="https://img.shields.io/badge/css-1572B6?style=for-the-badge&logo=css3&logoColor=white">
<img src="https://img.shields.io/badge/javascript-F7DF1E?style=for-the-badge&logo=javascript&logoColor=black">
</div>

선택 요구사항
## ✨ 주요 개발 기능

- < header >, < section > 등 시멘틱 태그를 최대한 활용해보세요.
- 실제 사이트의 레거시 코드 활용보단 최신의 CSS Flex 혹은 Grid 등을 활용해보세요.
- 부분적으로 BEM 방법론을 도입해보세요.
- JS가 필요한 부분은 되도록 생략하되 이유를 명시해보세요.(CSS로 대체 가능한지 피드백이 있을 수 있겠죠?!)
- JS가 필요한 부분 중 구현할 부분이 있다면 자유롭게 구현해보세요.(JS 과제가 아니니까 가볍게 구현하시길 추천해요)
- 각각의 상품 이미지에 트랜지션 적용
<img width="100%" src="https://github.com/lilviolie/git-practice/assets/95364951/8c4f5edc-92cb-47b0-b493-7970397eff5c"/>
- Intersection Observer API를 이용해 스크롤 애니메이션 적용
<img width="100%" src="https://github.com/lilviolie/git-practice/assets/95364951/47dd2311-0e72-40a6-8c68-e8a14e6e7aa8"/>
- swiper.js를 이용해 슬라이드 구현
<img width="100%" src="https://github.com/lilviolie/git-practice/assets/95364951/0c280227-62c7-4286-bbff-9a07cf360106"/>
Comment on lines +28 to +32

Choose a reason for hiding this comment

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

요 친구들 img src가 동영상이던데, 이미지 태그는 동영상을 담을 수 없습니다. gif로 변환해보세요!


손쉬운 이미지 추출 방법
## ✨ 구현하지 못한 기능

사이트 클론에 필요한 이미지를 좀 더 쉽게 추출하기 위해서 Chrome 확장 프로그램인 Image Downloader를 사용하세요.
- 상단 메뉴에 마우스 호버 시 드롭다운 메뉴가 나타나는 기능
- 장바구니 기능

1. 원하는 사이트 접속
2. Image Downloader 확장 프로그램 실행
3. 다운로드 원하는 이미지 선택
4. 서브 폴더 이름(Save to subfolder) 명시
5. 다운로드!
## ✨ 배운점

- 정말 많은 요소에 트랜지션을 적용하면서 트랜지션에 좀 더 익숙해 질 수 있었습니다. 다음에는 애니메이션 속성을 이용해 더 다양한 디자인을 구현해보고 싶습니다.
- 자바스크립트에서 제공하는 `IntersectionObserver` API를 사용해 보았습니다. 요소가 뷰포트에 포함되는지의 여부에 따라 더욱 풍부한 트랜지션을 적용할 수 있었습니다.
- 바닐라 자바스크립트 대신 swiper 라이브러리를 이용하여 더욱 빠르고 간단하게 슬라이드를 구현하는 방법을 알게 되었습니다.

## ✨ 아쉬운점

- 한정된 시간에 비해 구현할 요소가 굉장히 많았던 웹사이트를 선택해서 기간 내에 구현을 마치기 힘들었습니다. 웹사이트를 구성하는 것이 생각보다 훨씬 신경써야 할 게 많았기 때문에 주제 선정에 좀 더 신경써야겠다는 생각이 들었습니다.
- 헤더 메뉴에 마우스 호버 시 드롭다운 메뉴가 나타나는 기능을 구현하지 못했습니다. 아직 제 수준으로 구현하기에는 어려운 기능이라고 느꼈기에 트랜지션, z-index, 자바스크립트 등에 대해 훨씬 더 많은 공부가 필요하다는 것을 느꼈습니다.

Choose a reason for hiding this comment

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

호버시 드롭다운이 나타나는 건 요구사항에 따라 구현 방법이 천차 만별이지만, 간단한 CSS로도 구현이 가능합니다! 배우고자 느끼신 점이 정말 좋은 자세라고 생각합니다 👍

Copy link
Author

Choose a reason for hiding this comment

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

감사합니다😭 나중에 다시 한 번 도전해보겠습니다!

- 반복되는 코드가 굉장히 많았는데 시간이 부족하다보니 깔끔하게 코드를 작성하는 데 어려움을 겪었습니다. 적절한 시간 분배와 클린코드의 작성에 대한 중요성을 많이 느꼈고, 다음에는 css 전처리기를 사용해서 더 효율적으로 코드를 작성해보고 싶습니다.
Binary file added assets/.DS_Store
Binary file not shown.
Binary file added assets/fonts/.DS_Store
Binary file not shown.
Binary file added assets/fonts/BauerBodoni-Italic.woff
Binary file not shown.
Binary file added assets/fonts/BauerBodoni-Italic.woff2
Binary file not shown.
Binary file added assets/fonts/BauerBodoni.woff
Binary file not shown.
Binary file added assets/fonts/BauerBodoni.woff2
Binary file not shown.
Binary file added assets/fonts/PostGrotesk-Book.woff
Binary file not shown.
Binary file added assets/fonts/PostGrotesk-Book.woff2

Choose a reason for hiding this comment

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

woff 와 woff2 의 차이는 무엇이 있는지도 같이 공부해보시고, 내가 어떤 폰트 확장자를 사용해야 하는지에 대한 이유도 분명히 알고 사용하는 것이 좋습니다.
추가로, CDN 웹 폰트를 가져와서 사용하는 것과 폰트를 직접 임베딩하는 것에 어떤 차이가 있는지도 같이 공부해보세요!

Copy link
Author

Choose a reason for hiding this comment

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

간단히 말하면 woff는 압축된 폰트 형식이고, woff2는 woff보다 30~50% 더 압축된 형식이라는 것까지만 알고 있었습니다. 더 찾아보니 Internet Explorer에서는 woff 형식을, 나머지 브라우저에서는 woff2 형식을 사용하도록 해서 폰트의 용량을 줄이는 것이 좋고, woff2 형식과 woff 형식을 모두 사용할 수 없을 때를 대비해 ttf 형식을 같이 사용하는 것도 좋다는 것을 알게 되었습니다. 이 외에도 최적화 부분 또한 생각해보지 못했었는데 생각보다 신경써야 할 부분이 많다는 것을 이제야 깨달았네요ㅜㅜ 앞으로 더 자세히 공부해보겠습니다!

그리고 폰트를 직접 임베딩하는 방식은 폰트 파일이 무겁기도 하고 브라우저마다 지원하는 폰트 파일 형식이 다 다르기 때문에 일일이 파일을 지정해줘야 한다는 것이 단점이라고 알고 있습니다.(혹시 틀렸다면 말씀해주세요..!) 다만 이번 프로젝트에서는 필요한 폰트의 CDN 링크를 찾을 수가 없어서,, 서버 폰트 로딩 방식을 사용했습니다.

Choose a reason for hiding this comment

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

오 네 말씀해주신 내용들이 거의 맞습니다.
폰트 확장자별로 압축용량이 달라서 불러오는 시간이 다르다는 점과, 브라우저별로 호환하는 폰트가 다르다는 점도 인지하고 사용하셨으면 좋겠다는 마음에 리뷰 남겼습니다.

또한 성능적인 차이에서 장단점이 있는데요, 아래 내용을 확인해보시면 좋을 것 같습니다.

# 폴더에 저장해서 상대 경로로 불러오는 방식:

장점:
폰트 파일을 직접 저장하기 때문에 서버에 의존하지 않고 독립적으로 폰트를 제어할 수 있습니다.
사용자가 인터넷에 연결되어 있지 않아도 폰트가 로드되는 경우에도 정상적으로 작동합니다.

단점:
폰트 파일을 웹 서버에 저장하고 있어 서버 용량을 차지할 수 있습니다.
웹 페이지에 방문하는 사용자가 다른 지역에 위치해 있을 경우, 폰트 파일을 다운로드하는데 시간이 걸릴 수 있습니다.

# CDN으로 링크 거는 방식:

장점:
CDN은 여러 지역에 위치한 서버들을 통해 콘텐츠를 제공하므로, 폰트 파일을 더 빠르게 다운로드할 수 있습니다. 이는 사용자 경험을 향상시킵니다.
폰트 파일의 캐싱을 효과적으로 처리하여, 웹 페이지 방문자가 같은 폰트를 사용하는 다른 웹 페이지를 방문할 때 성능 향상에 도움을 줍니다.

단점:
CDN 서비스를 사용하려면 추가 비용이 발생할 수 있습니다. 또는 무료 CDN도 있지만 트래픽 한도나 속도 제한 등이 있을 수 있습니다.
CDN 서버에 의존하므로, CDN 서비스가 다운되거나 느려지는 경우에 웹 페이지에 접근하는 사용자에게 영향을 미칠 수 있습니다.

Binary file not shown.
Binary file added assets/fonts/PostGrotesk-Light.woff
Binary file not shown.
Binary file added assets/fonts/PostGrotesk-Light.woff2
Binary file not shown.
Binary file added assets/fonts/PostGrotesk-Medium.woff
Binary file not shown.
Binary file added assets/fonts/PostGrotesk-Medium.woff2
Binary file not shown.
Binary file added assets/images/.DS_Store
Binary file not shown.
Binary file added assets/images/724-travel.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/724.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/a-la-rose1.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/a-la-rose2.webp

Choose a reason for hiding this comment

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

webp 확장자와 png 확장자의 차이가 무엇인지 알고 계신가요?!

Copy link
Author

Choose a reason for hiding this comment

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

webp는 jpg, png 등 기존의 이미지 포맷보다 파일 크기를 더 줄일 수 있고 로딩 시간을 단축할 수 있는 새로운 포맷이라고 알고 있습니다!

Choose a reason for hiding this comment

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

맞습니다! 다만 한 가지 알아두셔야 하는게, webp는 모든 브라우저 및 버전에서 지원하지 않아요
https://caniuse.com/?search=webp

따라서 크로스 브라우징이나, 레거시 환경과 같은 곳에서는 사용할 때 고려해야하는 사항입니다!

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
24 changes: 24 additions & 0 deletions assets/images/adviser.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/amyris-femme1.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/amyris-femme2.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/amyris-homme1.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/amyris-homme2.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/aqua-celestia1.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/aqua-celestia2.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/aqua-media-cologne-forte.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/aqua-media-cologne-forte1.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/aqua-media-cologne-forte2.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/aqua-universalis1.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/aqua-universalis2.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/aqua-vitae1.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/aqua-vitae2.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/baccarat-rouge-travel.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/baccarat-rouge1.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/baccarat-rouge2.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/background-modal.jpeg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/bath-and-body.webp
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
55 changes: 55 additions & 0 deletions assets/images/delivery.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
7 changes: 7 additions & 0 deletions assets/images/flag-france.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/fragrance-finder.webp
Binary file added assets/images/gentle-fluidity-silver1.webp
Binary file added assets/images/gentle-fluidity-silver2.webp
Binary file added assets/images/gentle-fluidity1.webp
Binary file added assets/images/gentle-fluidity2.webp
Loading