로그
에루라보
블로그 작업노트 28: 버그 수정 및 동적 처리 정적화
거의 한달만의 블로그 작업노트다.
이번 작업은 기존에 작업했던 부분에서 의도치않은 버그가 발생했던 부분을 수정한거라던지 관련된 내용에 대한 기록이다.
기록안해두면 내가 까먹어서 말이다...
목차 인터렉션 버그 수정 및 정적화
기존 블로그 작업노트에서 페이지 로드 시 본문내부에 있는 h2, h3 헤딩 태그를 가져와서 동적으로 목차를 만드는 방식을 만들어서 적용했다는 기록을 했다.
만들었던 당시에는 기존글을 전부 수정할 수 없어서 그냥저냥 뷰 요청시 잘 뜨면 그만이겠거니 했는데, 이게 본문량이 미친듯이 많아지면 연산시간이 생각보다 오래걸린다는 문제를 발견했다.
그리고 나는 그때당시에 내부에서 저 작업을 하는 코드를 구현할때 변환작업을 하고 난 이후에 유니코드로 변환되는지 몰라서 실제 본문데이터가 유니코드 변환분 만큼 커지는 내부적인 문제도 있었다.
그래서 해당 문제를 해결하기위해 이를 글 등록, 수정시 1번 변환작업을 하고 그 값을 DB에 저장해두고, 페이지 요청시 DB에 저장해둔값을 꺼내서 보여주는 방식으로 교체했다.
단 이 방식은 기존 글 전부 다시 수정해야하는 문제가있어서 점진적으로 변경처리를 하려고 뷰단의 코드를 아래와 같이 적용해두었다.
//$headings = $post->getHeadingsWithOrder();
$headings = $post->heading
? json_decode($post->heading, true)
: $post->getHeadingsWithOrder();
Copy

사실 블로그 자체가 이렇게까지 조회수가 나올지 모르고 동적으로 처리해둔부분인데 요청량이 많아지다보니 이런식으로라도 서버 부하를 줄이는게 정답인것 같다.
모바일 상단 메뉴 애니메이션 추가
이 부분은 요즘 내가 모바일용 하단 앵커 광고를 사용하다보니 최대한 컨텐츠 영역을 늘리기위해서 적용해본 애니메이션이다.
모바일 메뉴 테스트
위 영상처럼 모바일 화면에 한해서 아래로 슬라이드하면 메뉴가 올라가고 위로 올리면 메뉴가 다시 나타나는 방식이다.
실제로 광고가 떠있는 화면이라 이렇게라도 컨텐츠영역을 크게하지않으면 모바일에서 많이 불편할거같다.
구현 자바스크립트 코드는 아래와 같다.
function initMobileHeaderScroll() {
const header = document.querySelector("header");
if (!header || window.innerWidth > 727) return; // 모바일만 적용
let lastScrollY = window.scrollY;
let isPeeking = false;
window.addEventListener("scroll", () => {
const currentScrollY = window.scrollY;
if (currentScrollY > lastScrollY && currentScrollY > 80) {
if (!isPeeking) {
header.classList.add("peek");
isPeeking = true;
}
} else if (currentScrollY < lastScrollY) {
if (isPeeking) {
header.classList.remove("peek");
isPeeking = false;
}
}
lastScrollY = currentScrollY;
}, { passive: true });
}
Copy
구글 애드센스 자동광고와의 CLS 씨름
애드센스 자동광고로 앵커 광고를 붙인 이후 구글 페이지스피드 CLS값이 개떡락을 해버렸다.
실제로 0.1~1 까지 나올정도로 큰 문제를 보여서 이문제가지고만 거의 1주일을 씨름을 했는데 결론적으론 답이없다라는 사실이다.
구글광고는 컨텐츠를 가리면 안된다는 정책이 있어 하단 앵커광고가 나오면 body에 padding을 적용하는 코드가 작동되는데, 이때문에 랜더링 속도가 느린 구글 페이지스피드에서는 메인 body의 레이아웃 변경이 크게 나온다는 것 같다.
이상적으로 처리하려면 아예 html구조를 뒤틀어서 앵커광고에 맞게 뒤틀어야하는데, 현실적으로 그게 안되는게 문제다.
다행이 로컬 테스트에서는 문제없이 나오고 실제 유저들 입장에서 겪을 수 있는 CLS문제가 아니라면 그나마 괜찮다고해서 일단은 방치중이다.
자동 앵커광고가 그지같아서 수동으로 앵커광고영역을 잡고 수동 광고단위로도 적용해봤는데, 광고 로딩율이 너무 처참해서...
수동으로 직접 만드는건 포기했다.
이문제는 뭘 어찌해야할지모르겠다.
끝!
#블로그
0
개의 댓글
에루라보 콜렉션의 다른 글
로그 카테고리의 다른 글
04/21
2025 정보처리기사 정기 1회 실기 시험 후기
지난 정기 1회 정처기 필기시험을 합격한 후 바로 1회 실기시험을 신청해 다녀왔다.나는 파주시에 살아서 파주로 검색하니 서영대학교가 시험장소로 떠서 힘들게 신청 한 후 어제(4월 20일) 갔다왔다. 파주에 위치한 서영대학교까지는 자차로 이동했고, 대학교내 운동장 부지에 주차를 편하게 할 수 있었다.주차를 하고 학...

04/21
26주차 그림결산
이번주는 정처기 실기 시험이 있어서, 주초에만 좀 그리고 주중, 주말에는 공부에 시간을 많이 할애했다.그래서 이렇게 정리하는 오늘 입장에서도 주초에 내가 그린 그림이 떠오르지 않을정도이다... 이번주는 뭔가 여성스러운 그림을 그려보고 싶어서 관련 자료를 찾고 그려봤다.실제로 참고한 원본 그림자체는 저렇게까지...

04/14
25주차 그림결산
이번주는 한장만 진득하게 그려봤다.휴대폰이나 패드 배경화면도 바꿔보고 싶었고 무엇보다도 요즘 명암처리든 색칠을 간단하게 퉁치는 식으로 많이해서 반대로 디테일하게 그려보고 싶었다. 특히 그려보고 싶었던거는 겨드랑이 표현, 가끔 겨드랑이 부각 일러를 볼때마다 참 특이한 영역이다라고 생각이 되었는데, 그부분...