혼자 고민해보기_ 개발/TIL (Today I Learned)

20230605(월)_JavaScript 팀 과제 진행

nuri-story 2023. 6. 5. 23:53

금일 달성 항목

1) JavaScript 과제 진행 (영화 검색 사이트 기능 추가)
    : main화면 css 완성, subpage css구조틀 완성

2) 학습법 특강 참여


문제 해결 과정 1 

[문제]

영화 리스트 화면을 디스플레이 환경에 맞게 알아서 반응형 구조로 변경해야하는 상황이었습니다.

.mainTitle {
  width: 800px;
  color: palegoldenrod;
  background-color: black;
  text-align: center;
  margin: 0px auto 0px auto;
  font-size: 30px;
  font-family: "Lucida Sans", "Lucida Sans Regular", "Lucida Grande", "Lucida Sans Unicode", Geneva,
    Verdana, sans-serif;
}

.search {
  width: 800px;
  margin: 0px auto 0px auto;
  padding: 10px 0px 10px 0px;
  text-align: center;
}

.search > p {
  display: inline;
  font-size: 20px;
  font-weight: bold;
}

.search > input {
  width: 500px;
  height: 30px;
}

.search > button {
  width: 50px;
  height: 35px;
}

.posterCard {
  border: 1px solid black;
  border-radius: 10px;
  width: 350px;
  height: 700px;
  margin: 50px auto 20px 5%;
  display: block;
  float: left;
  text-align: center;
  padding-top: 20px;
}

.posterCard > img {
  width: 300px;
  height: 400px;
}

.overview {
  margin: 0 10px 0 10px;
  text-align: left;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 7; /* 제한 글자의 줄을 7줄로 정해 두었음  */
  -webkit-box-orient: vertical;
}

 

[시도]

이미지와 카드의 width와 height값이 정해져있어서 화면에 맞게 변화하지 않는 것 같았습니다.

.posterCard {
  border: 1px solid black;
  border-radius: 10px;
  width: 350px;
  height: 700px;
  margin: 50px auto 20px 5%;
  display: block;
  float: left;
  text-align: center;
  padding-top: 20px;
}

.posterCard > img {
  width: 300px;
  height: 400px;
}

카드 영역을 추가하고 개인 과제리뷰에서 배운 코드를 사용하였습니다.

#card {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 2fr));
  gap: 1rem;
  padding: 2rem;
}

 

[해결]

처음에는 이미지가 엄청나게 크거나 확장되는 일들이 생겼는데 하나하나 눈으로 보면서 변경하니 금방 수정하였습니다.

 

/* 전체 폰트, 배경화면, 카드 색상 설정 */
:root {
  font-family: "Lucida Sans", "Lucida Sans Regular", "Lucida Grande", "Lucida Sans Unicode", Geneva,
  Verdana, sans-serif;
  --bg-header-color: #ececec;
  --bg-card-color: hsl(0, 0%, 100%);
}

/* 전체 설정 */
body {
  min-height: 100vh;
  background-color: var(--bg-header-color);
}

/* header 설정 */
h1{  
  margin: 0px auto 0px auto;
  height: 100px;
  display: flex;
  font-size: 30px;
  justify-content: center;
  align-items: center;
}

/* 검색 영역 설정 */
.search { 
  margin: 0px auto 0px auto;
  display: flex;
  
  width: 100%;
  max-width: 500px;
  
  overflow: hidden;
  height: 40px;
 
  background-color: #ffffff;
  border-radius: 10px;
  border: 1px solid rgb(0, 0, 0);
  box-shadow: rgba(200, 200, 200, 0.2) 0px 5px 8px;
}

.search > input {
  flex: 1;
  padding: 0 16px;
  outline: none;
  border: none;
}

.search > button {
  width: 60px;
  margin: 2px;

  border: none;
  color: #ffffff;
  
  border-radius: 8px;
  background-color: #000000;
  transition: transform 100ms ease-in;
}

.search > button:hover {
  transform: scale(1.04);
}

/* 카드 영역 설정 */
#card {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(250px, 2fr));
  gap: 1rem;
  padding: 2rem;
}

.posterCard {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 2fr));
  gap: 1rem;
  padding: 2rem;
  
  display: block;
  margin: 10px;
  padding: 10px;
  justify-self: center;

  border-radius: 10px;
  background-color: var(--bg-card-color);
  border: 1px solid rgb(0, 0, 0);
  box-shadow: rgba(0, 0, 0, 0.2) 0px 5px 5px;

  text-align: center;
  transition: transform 100ms ease-in;
}

.posterCard:hover {
  transform: scale(1.02);
}


#movieTitle {
  font-size: large;
  margin: 10px 10px 10px 10px;
}


.overview {
  margin: 0px 5px 0px 5px;
  text-align: left;
  font-size: small;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 7; /* 제한 글자의 줄을 7줄로 정해 두었음  */
  -webkit-box-orient: vertical;
}

.posterCard > img {
  width: 100%;
  border-radius: 10px;
}

 

[알게된 점]

css쪽은 눈으로 바로바로 보이기에 코드 수정이 생각보다 매우 쉬웠습니다... css가 아닌 기능구현을 할 줄 알아야하는데.. 걱정입니다.

 

 


특강

학습법 특강 - 최양임 튜터님

  • 프로젝트 중심으로 학습이 필요
    : 강의만 듣는 방식의 학습은 크게 도움이 되지 않음
    : 안보고 구현하고 구조를 이해하는게 중요
  • 로직과 코드에 대한 의도, 구현하는 기술, 스택에 목적과 근거 가지고 더 좋은 방법이 있는지 공부해야함 (코드리뷰로 학습)
    : 추가로 해당과정 (node.js) 선택한 이유 더 다른 대안이 없었는지 등등 생각해야함
  • 소통할때 예쁘게 말하고 전달하는 바를 명확히 해야함, 데이터 또는 기술적인 근거를 바탕으로 소통
  • 알고리즘 레벨 2 정도 풀수있으면 함
  • 추후 노드, 리액트, 스프링 반에 따라서 과제가 분기될 예쩡
  • 개발자는 학력을 많이 보지 않는 편