window.open과 transient activation
·
Findings
브라우저와의 상호작용과 윈도우 팝업 호출간의 상관 관계를 다룬다.데이터 페치 후 팝업을 띄워보려 했다버튼을 누르면 서버로부터 필요한 데이터를 받아오고, 그 데이터를 토대로 팝업을 띄우는 화면이었다. 받아와야 할 데이터가 여러 개였기에 Promise.all을 통해 한 번에 묶었다.window.addEventListener('click', async (e) => { // ✅ open-detail 버튼을 누르면 const target = e.target.closest('[data-action="open-detail"]'); if (!target) return; const id = target.dataset.id; // ✅ 팝업에 보여줄 데이터와 권한 정보를 받아오고 const [detail, m..
ISTQB CTFL 합격 후기 - 2026.06.11 시험
·
etc.
5월 13일 영어 시험으로 신청했다가 시간이 다소 촉박해 취소하고, 6월 11일 시험으로 재접수해 합격했습니다.기간도 촉박했고 야근이 잦은 시기라 할애할 수 있는 시간도 많지 않았지만, 두 번 응시하기에는 비싼 시험이였어서,, 할 수 있을 때 최대한 집중해서 공부했습니다.준비 기간동안에는 퇴근 후 밤 11시부터 새벽 2시까지는 꾸준히 공부하는데 집중했고, 2주정도 준비했습니다.시험 준비크게 아래 두 줄기를 따라 공부했습니다.실러버스 전문 통독 (지난 시험 준비 때 1회독을 끝낸 부분)클로드를 활용한 개념 설명 및 문제 풀이이번 6월 시험을 보기 전에, 5월 13일자 영어 시험을 잠깐 준비했었습니다. 이때 실러버스 전체를 영문으로 1회독했고, 시간 관계상 접수를 취소하고 다음을 도모했습니다.이후 6월 11..
프론트엔드 성능 개선, 측정과 고찰
·
Project/melog
Melog 프로젝트의 프론트엔드단 성능 개선을 진행했다.캐릭터 조회 페이지의 LCP는 약 26% 줄였지만, 같은 변경사항으로 메인 페이지는 18% 늘어났다.같은 수정 사항으로 다른 양상을 보이는 사례를 경험했다. 🦍 성능에 대한 막연한 관점Melog 프로젝트를 진행하면서 새로운 기능들을 작성해 왔지만, 성능에 대해서는 막연히 "이러이러한 것들을 따로 처리해주지 않았기에 좀 느릴 수밖에 없지 않을까" 하는 정도로만 생각해 왔었다. 다만 어디가 어떻게 느린지를 숫자로 이야기할 수 없었고, 직관에 의지해 이런 부분들이 문제일 것이다 하는 추측만 존재했다. 이번 작업의 출발점은 단순했다. 이 추측을 확신으로 만들기 위한 정량적 데이터를 산출하고, 이를 통해 의사결정을 진행하자. 🐕 측정 환경성능 측정을 어떻..
AI Agent의 기억력을 파일로 보완하기 - Obsidian + ClaudeCode 적용기
·
etc.
바이브코딩은 왜 실패하는가 -AI 협업 가이드북AI가 코드를 만들어주는 시대, 왜 내 프로젝트는 3일 만에 멈출까? 바이브코딩의 진짜 병목은 코드가 아니라 **기억**이었다. 이 책은 Obsidian + Claud…wikidocs.net본 게시글은 위 도서에서 소개된 클로드 코드와 옵시디언을 활용한 바이브 코딩 방식을 실제 프로젝트에 적용해 본 경험을 정리한 글입니다.커서AI를 활용해 진행하던 프로젝트가 있었는데, 어느 순간 소스 코드를 확인할 때마다 낯설어지는 경험을 했다.'use client'가 왜 여기 붙어있지? IndexedDB 캐싱 코드는 사용하는 곳도 없어 보이는데 존재하고, page.tsx 파일 안에는 뭐 이리 많은 로직들이 들어있는 거지 싶었다.의도한 기능은 당연히 동작했지만, 해당 기능이..
함수형 컴포넌트의 Hook은 왜 연결리스트로 관리될까?
·
Develop/React
공식적인 어떤 결론이 담긴 게시글은 아니고 저의 주관적인 생각을 풀어본 게시글입니다. 함수형 컴포넌트와 Hookfunction Component(){ const [state, setState] = useState(''); useEffect(() => { console.log(`${state} was changed!`); }, [state]) return {state}} 위와 같은 간단한 함수형 컴포넌트가 하나 있다고 생각해 보자. 내부에는 useState와 useEffect가 순차적으로 호출되고 있다. 이러한 훅들은 컴포넌트가 마운트 되는 시점에 대략 [Fiber - useState - useEffect ] 요런 형태의 연결 리스트로 만들어져 컴포넌트가 호출될 때마다 Fiber -> ..
눈 감았다 뜨니까 지나간 1월 기록
·
Daily/Daily
눈 깜빡할 새 지나간 1월 일 집 일 집 일 집 하다 보니까 1월이 금세 지나갔다. 서른 살의 일월이 이렇게 빨리 지나가다니, 곧 있으면 서른한 살이 될라 시간이 흐르는 게 무서워지긴 하다. 올해는 매월 어떤 일들을 했었는지,, 자그마하게나마 돌아보고 기록하는 삶을 살아보기로 결심했고, 그 시작이 이 게시글이다. 일정 관리를 어떻게 해볼까? 기록하지 않고 지나간 삶들을 돌이켜보기란 쉽지 않다. 특히나 기억력이 안좋은 나는 더더욱 그렇다. 그래서 작년 말부터는 내가 이것저것 해온 일들을 어떻게 기록하는 게 가장 효율적일까에 대한 고민을 해봤다. 기존에는 노션에 캘린더를 만들어서 사용도 해보고, 수기로 일기장에 기록도 해보고 그랬었는데 꾸준하지 못하고, 여기저기 기록하는 곳들이 파편화되다 보니 기록하고 관리..