드디어 대망의 CSS 만지는날...!
그래도 JS 했을때보다 익숙하고... 재밌고..(?) 나름 볼만 하지만...
??? : 응 부술게 ^-^! (와르르..)
... 아오 🤦🏻♂️
하지만 그래도 완성은 시켰죠?
북마크 안해도 되지만 달리기반이라고 기능을 넣으라고 하셨지만?
안했습니다. 힘들어요. (절대 코드가 꼬여서인건 안비..밀)
여튼 한거를 보여줄..수는 있는데... 코드가 쪼개진 것도 있고~
GitHub에 조각조각나있어서 귀찮기도 해서...
그냥 크게 깨달은 부분 위주로 적어보도록 하겠습니다. 라쯔고.
개인 프로젝트 변경사항 정리 - 이봐 f12, 늘 먹던거로. s(^-^_)
변경사항 in HTML - autocomplete 활용 및 <body> 정렬
매번 과제를 만들때마다 입력창에 무언가를 뚱땅뚱땅치면
어디선가 적었던 캐시들이 나와서... 오잉 이건 뭐지했던 순간이 많았는데
그걸 아예 없애주는 기능을 배웠다. 바로 autocomplete 라는 친구.
// 나오지 않게 하려면 off로, <input> 에 심어주면 끝!
<input placeholder= "영화를 입력해 주세요." class="search" id="query" autocomplete="off" />
그리고 CSS를 적용하기가 까다롭게 자꾸 조각조각난 애들을 붙여주기위해... <body> 를 조금 붙이고 고쳐봤다.
- header
<!-- header는 div class 안줘도 됨 ^-^! -->
<header>
<div class = "title">
<h1>영화 검색</h1>
</div>
<div class="search">
<!-- autocomplete ="off" 는 캐시를 지우는 아아주 고오오급진 기능 -->
<input placeholder= "영화를 입력해 주세요." class="search" id="query" autocomplete="off" />
<button type="button" class="search_btn"> 검색하기 </button>
<!-- 왠지 돌아가기도 넣어주고 싶어서 넣어줌 ㅇㅇ -->
<button type="button" class="reset_btn"> 돌아가기 </button>
</div>
</header>
- 모달
<div class="modal">
<div class="popup">
<!-- 이미지 및 정보, modal_img_box로 통합 (CSS 편의성 증대를 위해) -->
<div class="modal_img_box">
<img class="modal_img_item" src="" alt="" />
<div class="modal_info">
<p class="modal_title"></p>
<p class="modal_comment"></p>
<p class="modal_p"> <span class="modal_date"></span>
</p>
<p class="modal_p"> <span class="modal_rating"></span>
</p>
</div>
</div>
</div>
<!-- 모달 닫기 버튼, 괜히 아래로 내려보고 싶어서 내려버림. 히히 -->
<div class="modal_close_btn">
<button type="button" class="close_btn"> 닫기 </button>
</div>
</div>
변경사항 in JS - 더 많은 데이터는 다른 API를 가져오고... 그리고 q....query?
CSS까지 완료를 하였건만... 다들 다른 영화가 뜬다는데 나는 뜨지 않았다..!
이유를 찾아보니 (찌리릿!) 다른 api를 가져오지 않아서라고...🥲
그래서 냅다 똑같이 가져와서, 검색하기로 가져오기를 눌렀건만...
계에에에에속 나오지 않고 콘솔도 텅텅 비고.. 않이 이게뭐람 하던 시간만 벌써 3시간째...
그렇게 계속 헤딩하던 림졍은.. 결국 원인을 찾게 되는데...💁🏻♂️ (더 이상의 말은 생략한다.)
// 입력창에 값 입력 시, 나오게 하기 위해서는 말이죠..
// 입력된 값을 API 링크 ?query= 뒤에 ${}를 활용하여 넣어주면 된다..
// 단, 절대 백틱 써야 하고, searchUrl은 무조건 searchMovie 내부에 있어야함!
const searchInput = document.querySelector("#query"); // 참고
const authorCode = '이거슨 비밀의 시크리또';
...
async function searchMovie () {
const searchUrl=`https://api.themoviedb.org/3/search/movie?query=${searchInput.value}&include_adult=false&language=ko-KR&page=1`
try {
const response = await fetch (searchUrl,{
method: "GET",
headers : {
accept : "application/json",
Authorization: authorCode
},
});
const data = await response.json();
movies = data.results;
displayMovie(movies);
} catch (error) {
console.error ("오류! 오류! : ", error);
}
}
아, 버튼 부분도 추가해서 보여주도록 하겠다. (까먹을 뻔.)
const searchBtn = document.querySelector(".search_btn");
const resetBtn = document.querySelector(".reset_btn")
...
// 검색 버튼 클릭 시 searchMovie 함수 실행
searchBtn.addEventListener("click", () => {
searchMovie(); // 항상 첫 번째 페이지를 불러옴
});
// 초기화 버튼 클릭 시 전체 영화 다시 불러오기
resetBtn.addEventListener("click", () => {
searchInput.value = ""; // 검색어 초기화
fetchMovies(); // 전체 영화 다시 불러오기
});
CSS - 기억해. 개발자도구는 최고, 아니 그냥 신이야.
이번엔 f12랑 cmd + shift + c (윈도우는 ctrl + shift + c) 눌러서 안해야징~ 하고
자체적 하드코어로 냅다 덤볐다가 눈물 주우우울줄 흘린사람? ... 저요.
진짜 웃긴게 구현은 또 완벽하게 했는데 왜 안될까 하면서
깡통이랑 의논했는데 역시 얘는 JS 전문이라 그런지 고장남.
니가 그러면 그렇지; 그러니까 내 블로그 썸네일을 그렇게 말아먹...읍읍
아 안되겠다 냅다 켜보고 내가 봐보겠음; 하고 보고 확인해보니
스페이스바, 스펠링철자, 내부의 내부로 들어간 친구 등등...
생각보다 저엉말 어이없는 부분에서 오류가 많이났... 아 그만할게요. 🤦🏻♂️
그래서 이번에는 이것저것 눌러보면서 새롭게 알게된 CSS만 써보도록 하겠다.
(절대 귀찮아서가 아님. 진짜 CSS 줄만 200줄 가까이됩니다요..)
/* 새롭게 알게된 CSS 요소들 (와!) */
.til {
flex-direction: column; /* 요소 수직으로 배치 */
align-items: center; /* 아이템도 가운데 정렬이 가능하다.. */
gap: xpx; /* 사이사이의 간격, 이거 예전에 써먹긴 했는데 까먹어서 다시 적어보기 */
flex-wrap: wrap; /* 요소들이 한 줄에 넘치면 다음 줄로 자동 배치 */
transform: translate(-50%, -50%); /* 요소를 정중앙 배치, 각각 50%만큼 이동(X,Y축) */
z-index: 1000; /* 위쪽에 배치되도록 */
z-index: 999; /* 아래에 배치되도록 */
}
마무리 - 하나 구현하면 생기는 오류... 오류... 오류들...
아니 필요한 기능을 완성했더니... 뭔가 부족한거 같아서 하나를 추가한단말이죠?
(실은 TIL 쓰다가 오류 또 나서 디버깅하다가 못쓸뻔 ^^;;)
약간 그런거 보면 생각나는게... 모래성이고... 두더지게임이고... 도미노고...
다 하나같이 삐끗하면 와르르 무너지는.. (그리고 같이 무너지는 내 억장..)
수많은 Error 속에서.. 그래도 무너지지 않고 해결하고 완성시켜서 다행이다..
이제 진짜 남은건 디버깅..들 뿐이니 조금만 수정하고 제출해야징...
??? : 안녕하세요, 갑자기 냅다 프로젝트가 날ㄹ라가버린.... tkfㄹㅕㅈㅝ...
오늘의 KPT 회고
- Keep : 프로젝트 끝! 내일은 특강정리하면서 마무리!
- Problem : 깡통은 CSS에 취약하다. 아니 그냥 쉽지않다;
- Try : CSS는 진짜 그냥 f12키고 혼자하자... 너 생각보다 잘함 ㅇㅇ...
끝.
'React TIL' 카테고리의 다른 글
[React] Day_26 데일리 정리 (1) | 2024.10.25 |
---|---|
[React] Day_25 데일리 정리 (1) | 2024.10.24 |
[React] Day_23 개인 프로젝트 중간점검 (2) | 2024.10.22 |
[React] Day_22 데일리 정리 (2) | 2024.10.21 |
[React] Day_21 데일리 정리 (1) | 2024.10.18 |