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

[최제원]Sprint1 #13

Conversation

CJewon
Copy link
Collaborator

@CJewon CJewon commented Oct 26, 2024

요구사항

기본

  • “로그인”버튼 클릭 시 로그인 페이지(‘/login’)로 이동합니다
  • “구경하러가기”버튼 클릭 시(’/items’)로 이동합니다.
  • HTML, CSS 파일을 Netlify로 배포해 주세요.
  • 랜딩 페이지의 url path는 루트(‘/’) 입니다.
  • title은 “판다마켓”으로 설정해 주세요.
  • 화면의 너비가 1920px 이상이면 하늘색 배경색은 너비를 꽉 채우도록 채워지고, 내부 요소들의 위치는 고정되고, 여백만 커
    지도록 해주세요.
  • 화면의 너비가 1920px 보다 작아질 때, “판다마켓” 로고의 왼쪽 여백 200px“로그인" 버튼의 오른쪽 여백 200px이 유지되고, 화면의 너비가 작아질수록 두 요소간 거리가 가까워지도록 해주세요.
  • 클릭으로 기능이 동작해야 하는 경우, 사용자가 클릭할 수 있는 요소임을 알 수 있도록 cursor: pointer를 설정해 주세요.
  • “판다마켓” 클릭 시 루트 페이지(‘/’)로 이동시켜주세요.
  • “구경하러 가기" 클릭 시 (“/items”)페이지로 이동시켜주세요.(빈 페이지)
  • 페이스북, 트위터, 유튜브, 인스타그램 아이콘은 클릭 시 각각의 홈페이지로 새로운 창이 열리면서 이동 합니다.
  • “Privacy Policy”, “FAQ”는 클릭 시 각각 아래 페이지로 이동합니다
- Privacy 페이지(‘/privacy’) 
- FAQ 페이지(‘/faq’)

심화

  • 사용자의 브라우저가 크고 작아짐에 따라 페이지의 요소간 간격, 요소의 크기, font-size 등 모든 크기와 관련된 값이 크고 작아지도록 설정해 보세요.(설정값은 자유입니다)

주요 변경사항

스크린샷

멘토에게

  • 현재 사이트의 가로 길이가 1920px을 넘어가는데 어디서 이런 현상이 나타나는지 잘 모르겠습니다.
  • 셀프 코드 리뷰를 통해 질문 이어가겠습니다.

@CJewon CJewon requested review from bootcampCodeit and removed request for bootcampCodeit October 26, 2024 05:30
@CJewon CJewon added help wanted Extra attention is needed question Further information is requested 순한맛🐑 마음이 많이 여립니다.. and removed help wanted Extra attention is needed question Further information is requested labels Oct 26, 2024
@CJewon CJewon requested a review from 1005hoon October 26, 2024 06:46
@1005hoon
Copy link
Collaborator

현재 사이트의 가로 길이가 1920px을 넘어가는데 어디서 이런 현상이 나타나는지 잘 모르겠습니다.

가로길이가 1920px이 넘어가는게 잘못된건 아닌걸로 보여요. 무엇이 문제인지 조금 더 맥락을 포함해서 설명 부탁드립니다

Copy link
Collaborator

@1005hoon 1005hoon left a comment

Choose a reason for hiding this comment

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

제원님! 고생 많으셨습니다.
전반적으로 마크업에 대한 고민이 많이 보이는 PR이였어요.
아무래도 쉽지 않았을텐데 고민한 영역들이 많이 보여서 - 특히 nth child나 section태그를 활용하는 방법 등 - 보기 좋은 프로젝트였습니다.

다만 이번 프로젝트에서 몇가지 개선할 부분이 있어요.
전반적으로 스타일 시스템을 구조화 하는 방법과 적합한 마크업 사용 방법만 개선된다면 훨씬 좋은 프로젝트가 되리라 생각합니다.

이에 대해서는 코드단 리뷰에 남겨두었으니 한번 참고 부탁드려요.

고생 많으셨습니다

Copy link
Collaborator

Choose a reason for hiding this comment

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

css reset을 적용하셨군요! 잘 하셨습니다

Copy link
Collaborator

Choose a reason for hiding this comment

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

파일 이름이는 되도록 영어 소문자와 _ 언더스코어만 활용해주세요.

프로젝트를 호스팅하는 서버 운영체제에 따라 영문자 외의 낱말을 처리하는 방식이 조금씩 다른 경우가 있습니다. 따라서 영문자가 아니거나 띄어쓰기를 포함하는 경우 의도치 않은 오류를 발생시킬 여지가 있어요

Comment on lines +11 to +19
<header>
<div class="header-container">
<div class="logo-container">
<img src="/img/판다 얼굴.png" alt="판다얼굴" />
<a href="/">판다마켓</a>
</div>
<a href="/login" class="login-button">로그인</a>
</div>
</header>
Copy link
Collaborator

Choose a reason for hiding this comment

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

구조와 시멘틱성은 기본적으로 잘 잡혀 있습니다.
그러나 클래스 명명 규칙과 BEM에 일관성을 부여하고, HTML 요소의 사용을 조금 개선할 여지가 있습니다.

1. BEM 네이밍

header-container, logo-container와 같은 클래스명은 명확성을 위해 header__containerheader__logo-container처럼 BEM 규칙을 따르는 것이 좋습니다. 또한 login-button 클래스는 header의 하위 요소임을 명확히 하려면 header__login-button과 같은 BEM 방식으로 수정할 수 있습니다.

조금 더 나아가 말씀드리자면 header 영역 안에 로고가 존재하고 로그인 버튼이 존재하죠? 따라서 header header__logo header__login 등으로 분리를 해보면 어떨까 생각합니다.

2. 시멘틱 구조 개선

img와 a 요소가 logo-container에 함께 있는데, 이 경우 img 요소에 alt 텍스트를 통해 logo의 의미를 더 명확히 표현하는 것도 좋습니다.
또한, 이 둘을 태그로 묶어 로고 클릭 시 홈으로 이동하도록 하는 방식이 더 직관적입니다.

Copy link
Collaborator

Choose a reason for hiding this comment

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

위 설명을 토대로 다음을 참고해 코드를 개선해보면 어떨까요?

<header class="header">
    <div class="header__container">
        <a href="/" class="header__logo">
            <img class="header__logo-img" src="/img/판다 얼굴.png" alt="판다마켓 로고" />
            <span class="header__logo-text">판다마켓</span>
        </a>
        <a href="/login" class="header__login-button">로그인</a>
    </div>
</header>

<a href="/login" class="login-button">로그인</a>
</div>
</header>
<section class="main-section">
Copy link
Collaborator

Choose a reason for hiding this comment

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

섹션태그를 적용하셨군요! 잘 하셨습니다.
섹션은 특별하게 이 영역부터 끝나는 부분까지가 하나의 묶음이라는 설명을 하기위해 활용되는 태그에요.

Comment on lines +21 to +30
<div class="margin-container">
<div class="main-banner-container">
<div class="click-container">
<h2>일상의 모든 물건을<br />거래해 보세요</h2>
<a href="/items">구경하러 가기</a>
</div>
<img src="/img/Img_home_top.png" alt="Img-home " />
</div>
</div>
</section>
Copy link
Collaborator

Choose a reason for hiding this comment

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

다만 BEM 관점에서 다음 내용들을 참고해보면 더 좋은 코드로 될 수 있지 않을까 생각해요

일단 배너 영역을 작업한 내용인데 배너임을 나타내는 클래스명이 존재하지 않아 구조와 명확성이 조금 부족합니다.

1. BEM 네이밍 및 배너 역할 명확화
section 태그를 사용했고 main-section이라는 클래스명을 통해 페이지의 주요 섹션임을 최대한 표현해주셨어요. 그럼에도 불구하고 배너에 대한 구체성이 부족합니다. main-banner와 같이 배너를 명확히 가리키는 클래스명을 사용하면 배너 역할이 더 분명해집니다.

또한 margin-containerclick-container도 역할이 명확히 잘 보이지 않습니다.

2. 시멘틱 구조 개선
h2 요소를 통해 우리 제품이 전달하고자 하는 핵심 메시지를 작성해주셨어요.
다만 우려되는 사항으로 홈페이지가 전달하고자 하는 핵심 이야기는 h1태그를 사용해 강력하게 어필하는걸 추천합니다.
보통 h1태그는 브랜드 네임이나 브랜드가 전달하고자 하는 핵심 메시지를 표현할때 사용하는데요.
아무래도 우리 홈페이지를 한 단어로 설명하기 위한 요소에 활용하다보니 제 생각에는 지금 h2로 담긴 콘텐츠가 h1으로 제공되는게 더 좋지 않을까 싶습니다.

또한 헤더 영역을 지나 우리 홈페이지의 메인 콘텐츠가 시작되는데요. main태그로 감싸주어 헤더 이후에 들어오는 콘텐츠들이 메인 콘텐츠임을 보여주면 어떨까요?

Copy link
Collaborator

Choose a reason for hiding this comment

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

다음 코드를 한번 참고해서 개선시켜보면 어떨까 생각합니다

<section class="main-banner">
    <div class="main-banner__container"> /** 여기서 최대넓이, 포지셔닝 등을 설정합니다 */
        <div class="main-banner__text-container">
            <h1 class="main-banner__title">일상의 모든 물건을<br />거래해 보세요</h1>
            <a href="/items" class="main-banner__cta">구경하러 가기</a>
        </div>
        <img src="/img/Img_home_top.png" alt="홈 페이지 상단 배너 이미지" class="main-banner__img" />
    </div>
</section>

Comment on lines +17 to +20
header,
section {
width: 100%;
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

기본적으로 모든 block 요소는 width: 100%설정을 지니고 있습니다. 굳이 명세할 필요는 없어보여요


a {
text-decoration: none;
text-align: center;
Copy link
Collaborator

Choose a reason for hiding this comment

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

링크 요소가 상당히 다양한 상황에서 사용될 수 있을텐데요.
모든 링크에게 중앙정렬을 하기보단, 중앙 정렬이 되어야만 하는 링크에게 text-align을 적용해주세요

Comment on lines +43 to +47
.logo-container a {
font-size: 26px;
font-weight: 700;
color: #3692ff;
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

bem을 적용해서 개선해보시죠!

Comment on lines +87 to +93
h2 {
font-size: 40px;
font-weight: 700;
color: #374151;
line-height: 56px;
white-space: nowrap;
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

html 태그중에는 특별한 목표를 지닌 태그들이 존재합니다.
특히 heading 태그들은 스타일적인 목적보단 정보 위계를 보여주기 위해 사용하곤 합니다.
따라서 h태그에게 직접 스타일을 적용하기보단, h태그가 사용할 클래스를 할당해 스타일을 지정하는게 좋습니다.
이 관점에서 BEM 형식을 활용하는게 아무래도 도움이 많이 되는데, 한번 구조를 고민해볼까요?

Comment on lines +204 to +215
.footer-ul > li:first-child {
color: #9ca3af;
}

.footer-ul > li:nth-child(2) {
display: flex;
gap: 30px;
}

.footer-ul > li:nth-child(2) > a {
color: #e5e7eb;
}
Copy link
Collaborator

Choose a reason for hiding this comment

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

nthchild 사용 좋습니다 👍🏻

@1005hoon 1005hoon merged commit 41c56a8 into codeit-bootcamp-frontend:Basic-최제원 Oct 27, 2024
kich555 pushed a commit that referenced this pull request Nov 17, 2024
* reset

* fix: 머지 후 브랜치 삭제 github action 수정

* env: workflows 폴더로 이동

* codeit sprint mission part1 update (#13)

* BEM 네이밍 및 시멘틱 구조 개선

* BEM에 맞게 HTML의 class 명칭과 CSS 명칭 수정

* codeit-sprint2 mission 로그인 홈페이지와 회원가입 홈페이지 제작 (#68)

* [최제원] Sprint2 (#102)

* div태그 대신 header 태그로 변경 및 logo-img에 대한 a태그 추가

* 이미지 파일구조 수정 및 파일구조 수정에 따른 이미지들의 src 수정

* login.html form태그와 label태그로 변경 및 비밀번호 가림 이미지 추가와 그에 맞는 css 적용

* signup.html form태그와 label태그로 변경 및 비밀번호 가림 이미지 추가와 그에 맞는 css 적용

* [최제원] Sprint3 (#114)

* 메인 홈페이지 반응형 웹으로 변경함으로써 CSS 수정 및 변경

* login 홈페이지와 signup 홈페이지를 반응형 웹으로 변경함으로써 CSS 수정 및 변경

* 불필요한 CSS 삭제 및 BEM에 맞게 클래스 이름  수정

* 로그인 홈페이지와 회원가입 홈페이지의 에러메세지 관련 로직 구현

* input에 aria-label 속성 추가

---------

Co-authored-by: hanseulhee <3021062@gmail.com>
Co-authored-by: withyj-codeit <48437814+withyj-codeit@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
순한맛🐑 마음이 많이 여립니다..
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants