본문 바로가기

JavaScript3

[JavaScript] BFcache란 ? 들어가며오랜만에 글을 쓰게 되었다. 최근 여러 이슈들이 겹치고 바쁜 일상 속에서 자연스럽게 게을러졌고, 공부에도 소홀해지면서 결국 몇 달간 글을 쓰지 못했다. 하지만 이제 회사 프로젝트가 마무리되었고, 그 과정에서 여러 문제들과 마주치게 되었는데, 오늘은 그중 하나인 BFcache 이슈에 대해 포스팅 하려고 하는데 들어가기전 짧게 설명해 보자면.. 간단하게 배경을 설명하자면, 우리 회사는 AOS와 iOS를 지원하며, Mobile Web과 App 플랫폼을 함께 제공하고 있다.이번 이슈는 ios safari 에서 일어난 이슈인데 (QA에서 ios 붙으면 숨이 턱턱막히는..)간단하게 플로우를 설명하자면 페이지A > 페이지 B로 이동> 페이지B submit confirm 노출 후 취소한뒤 뒤로가기 > 페이지A .. 2024. 9. 9.
[JavaScript] 호이스팅(Hoisting)이란? 호이스팅(hoisting) 호이스팅은 자바스크립트에서 특별한 동작 원리를 지칭한다. 많이 오해하는 바와 달리, 호이스팅은 변수나 함수의 선언을 물리적으로 코드의 최상단으로 이동시키는 것이 아니라, 선언을 스코프의 최상단에 위치한 것처럼 자바스크립트 엔진이 해석하는 현상을 말한다. 호이스팅 정의: 자바스크립트에서 선언(변수, 함수 등)을 코드 상단에 위치한 것처럼 엔진이 처리하는 현상. 물리적 이동 없음: 실제로 코드의 위치가 변경되는 것이 아니라, 자바스크립트 엔진이 선언을 코드 실행 전에 먼저 인식함. 실행 컨텍스트 생성: 코드 실행 전, 스코프 내의 모든 선언을 스코프 최상위에 있는 것처럼 처리하는 과정의 일부. var와 함수 선언의 호이스팅: var로 선언된 변수와 함수 선언문은 선언 전 참조/호출.. 2024. 2. 12.
[JavaScript] 메모이제이션 (Memoization) 메모이제이션(Memoization)이란? "메모이제이션이란 프로그래밍을 할 때 반복되는 결과(복잡한 연산의 함수)를 메모리에 저장해서 다음 호출에도 같은 결과가 나올 때 캐시된 값을 가져오는 코딩 기법을 말합니다." 아래 내용에서는 전역변수와 클로저 그리고 재귀함수를 통하여 메모이제이션이 JavaScript에서 어떻게 활용되는지 알아보자. 재귀함수란? 함수 안에 자신의 함수를 다시 호출하는 함수를 의미한다. 이러한 재귀함수는 자신의 로직을 내부적으로 반복하다가, 일정한 조건이 만족되면 함수를 이탈하여 결과를 도출한다. 클로저란? 클로저는 반환된 내부함수가 자신이 선언됐을 때의 환경(Lexical environment)인 스코프를 기억하여 자신이 선언됐을 때의 환경(스코프) 밖에서 호출되어도 그 환경(스코.. 2024. 1. 1.