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

패스트캠퍼스 부트캠프 5기 김필진 카카오 메인페이지 클론코딩 #61

Open
wants to merge 20 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all 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
56 changes: 21 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,45 +1,31 @@
# 👀 자신이 원하는 사이트 레이아웃 클론
# Kakao 웹페이지 클론코딩

원하는 사이트(페이지)를 자유롭게 선택하고 레이아웃을 클론 코딩하세요.
평소에 도전해 보고 싶었거나 혹은 자신의 수준에 맞는 사이트(페이지)를 선택하세요.
과제 수행 및 리뷰 기간은 별도 공지를 참고하세요!
### 제작기간 - 3월 27일 ~ 4월 6일
### 사용 기술
1. HTML
2. SCSS(Node-SASS)
3. Vanila-JS (라이브러리 사용 X)

## 과제 수행 및 제출 방법
### 주의사항
1. git에 node_modules 파일이 없음 (혹시 원본 프로젝트를 SCSS로 작업 시 npm install 혹은 yarn install 명령어 입력해야 함.)

1. 현재 저장소를 로컬에 클론(Clone)합니다.
1. 자신의 본명으로 브랜치를 생성합니다.(구분 가능하도록 본명을 꼭 파스칼케이스로 표시하세요, `git branch KDT0_ParkYoungWoong`)
1. 자신의 본명 브랜치에서 과제를 수행합니다.
1. 과제 수행이 완료되면, 자신의 본명 브랜치를 원격 저장소에 푸시(Push)합니다.(`main` 브랜치에 푸시하지 않도록 꼭 주의하세요, `git push origin KDT0_ParkYoungWoong`)
1. 저장소에서 `main` 브랜치를 대상으로 Pull Request 생성하면, 과제 제출이 완료됩니다!(E.g, `main` <== `KDT0_ParkYoungWoong`)
### 개발 사항
1. PC 레이아웃 적용(반응형이 아니라서 뷰포트 줄어들 시 레이아웃 깨질 수 있음 -> 추후 개선 예정)

- `main` 혹은 다른 사람의 브랜치로 절대 병합하지 않도록 주의하세요!
- Pull Request에서 보이는 설명을 다른 사람들이 이해하기 쉽도록 꼼꼼하게 작성하세요!
- Pull Request에서 과제 제출 후 절대 병합(Merge)하지 않도록 주의하세요!
- 과제 수행 및 제출 과정에서 문제가 발생한 경우, 바로 담당 멘토나 강사에서 얘기하세요!
2. 스크롤 시 상단 메뉴가 자연스럽게 올라가며 없어지는 기능 구현

## 필수 요구사항
3. 컨텐츠 영역 왼쪽 카드도 스크롤 시 자연스럽게 따라와서 특정 구간에서 붙음

- [ ] 과제에 대한 설명을 포함한 `README.md` 파일을 제공하세요!
- [ ] 과제 결과와 비교할 수 있는 실제 사이트(페이지)의 주소를 명시하세요!
- [ ] 과정에서 사용한 프로젝트 폴더/파일이 모두 포함돼야 합니다, 일부 파일만 제출하지 마세요!
- [ ] 실제 서비스로 배포하고 접근 가능한 링크를 추가해야 합니다.
4. 상단 메뉴 클릭시 서브메뉴 나타나는 기능 구현

## 선택 요구사항
5. 실제 홈페이지로 갈 수 있게 모달창에 링크 구현

- [ ] `<header>`, `<section>` 등 시멘틱 태그를 최대한 활용해보세요.
- [ ] 실제 사이트의 레거시 코드 활용보단 최신의 CSS Flex 혹은 Grid 등을 활용해보세요.
- [ ] 부분적으로 BEM 방법론을 도입해보세요.
- [ ] JS가 필요한 부분은 되도록 생략하되 이유를 명시해보세요.(CSS로 대체 가능한지 피드백이 있을 수 있겠죠?!)
- [ ] JS가 필요한 부분 중 구현할 부분이 있다면 자유롭게 구현해보세요.(JS 과제가 아니니까 가볍게 구현하시길 추천해요)
- [ ] SCSS 등의 CSS 전처리도구를 도입해보세요.
- [ ] SCSS 컴파일에 Webpack이나 Parcel 같은 번들러를 활용해보세요.
6. 실제 홈페이지와 최대한 유사하게 만드려고 스타일링은 원본 코드 참조

## 손쉬운 이미지 추출 방법
7. 자바스크립트의 경우에는 모두 직접 구현

사이트 클론에 필요한 이미지를 좀 더 쉽게 추출하기 위해서 Chrome 확장 프로그램인 [Image Downloader](https://chrome.google.com/webstore/detail/image-downloader/cnpniohnfphhjihaiiggeabnkjhpaldj?hl=ko)를 사용하세요.

1. 원하는 사이트 접속
1. Image Downloader 확장 프로그램 실행
1. 다운로드 원하는 이미지 선택
1. 서브 폴더 이름(Save to subfolder) 명시
1. 다운로드!
### 개선 사항
1. 반응형 레이아웃 적용
2. 자바스크립트에서 로직이 겹치는 함수 리팩토링 필요 (header.js 참고)
3. SCSS 코드가 지저분해서 겹치는 속성 리팩토링 필요
4. 기타 실제 홈페이지와 똑같은 기능 추가 필요
Loading