전체 글

전체 글

    실행 컨텍스트(Execution Context) 완벽 이해

    자바스크립트를 조금 깊게 공부하다 보면“실행 컨텍스트(Execution Context)” 라는 용어가 꼭 등장합니다.이 개념은 스코프(Scope), 클로저(Closure), this 바인딩 같은자바스크립트의 핵심 원리를 이해하기 위한 기초 중의 기초예요.💡 실행 컨텍스트란?“자바스크립트 코드가 실행되는 환경”조금 더 구체적으로 말하자면,자바스크립트 엔진이 코드를 실행할 때변수, 함수, this, 스코프 정보 등을 관리하기 위한 객체입니다.즉, 어떤 코드가 “어디서, 어떤 환경에서, 어떤 변수들을 가지고 실행되는가”를 결정하는 일종의 실행 박스라고 보면 됩니다.⚙️ 실행 컨텍스트의 종류종류설명전역 컨텍스트 (Global Context)코드가 처음 실행될 때 단 한 번 생성. 전역 변수, 함수 선언이 등록..

    브라우저 렌더링 최적화: Reflow와 Repaint 완벽 이해

    웹 성능을 이야기할 때 꼭 등장하는 단어가 있습니다.바로 Reflow(리플로우) 와 Repaint(리페인트) 입니다.이 두 개념은 브라우저가 화면을 그리는 과정의 핵심이며,렌더링 성능 최적화의 출발점이기도 합니다.🧱 Reflow란? (Layout 단계)Reflow는 브라우저가 요소의 크기나 위치를 다시 계산하는 과정이에요.즉, DOM 구조나 CSS 속성 중 레이아웃에 영향을 주는 변화가 있을 때 발생합니다.예를 들어, 다음과 같은 상황이 Reflow를 유발합니다:요소의 width, height, margin, padding 변경새로운 DOM 요소 추가 / 제거display 속성 변경폰트 크기 변경창 크기 조절(리사이즈)Reflow는 화면의 구조를 완전히 다시 계산해야 하므로비용이 크고, 성능 저하의 주..

    클로저(Closure) 완벽 정리 — 자바스크립트 개발자라면 반드시 알아야 할 핵심 개념

    클로저(Closure)는 자바스크립트의 핵심 개념 중 하나로, 함수가 선언될 때의 환경(스코프)을 기억하는 함수를 말합니다.🧩 1. 기본 개념자바스크립트에서는 함수가 선언될 때의 스코프(lexical scope) 를 기억합니다.이때, 내부 함수(inner function) 가 자신을 둘러싼 외부 함수(outer function) 의 변수에 접근할 수 있을 때,그 관계를 유지한 채로 외부 함수가 종료된 이후에도 접근 가능한 구조 — 이것이 바로 클로저입니다.📘 2. 예시 코드로 이해하기function makeCounter() { let count = 0; // 외부 함수의 지역 변수 return function() { // 내부 함수 (클로저) count++; return count; ..

    [RN] 🚫에러일지 - iOS17에서 App Crash 생기는 이유

    iOS 17 이상에서 UIGraphicsBeginImageContext()를 시도할 때, 이미지 사이즈가 (0, 0)인 경우 강제종료될 수 있으므로 UIGraphicsImageRenderer를 쓰는 것이 권장된다.문제 패키지: react-native-fast-image, react-native-linear-gradientreact-native-linear-gradient v2.6.2 → v.2.8.3 upgradereact-native-fast-image 는 현재 문제 메서드가 deprecated 되서는 안되는 환경 문제 이슈로 patch-package 사용해서 수정.iOS 내부에서 UIGraphicsBeginImageContext() 사용된 함수 수정

    [RN] 🚫에러일지 - exception while building Json A problem occurred starting process 'command ...

    m1 혹은 m2 칩 맥에서 빌드 시 발생하는 에러 빌드 충돌을 방지하기 위해 rosseta 설치하기 // 1. 라이센스 동의 필요 softwareupdate --install-rosetta // 2. 라이선스 자동 동의 /usr/sbin/softwareupdate --install-rosetta --agree-to-license

    [RN] 🚫에러 일지 - SDK location not found. Define a valid SDK location with an ANDROID_HOME environment variable or by setting the sdk.

    말 그대로 SDK 경로를 찾을 수 없어서 발생하며, 주로 맥 -> 윈도, 윈도 -> 맥으로 프로젝트를 옮길 때 자주 발생하는 에러입니다. 안드로이드 스튜디오에 내 프로젝트 디렉터리로 가셔서 local.properties 파일을 한번 찾아보세요! 존재하지 않거나 경로가 잘못되어있을 가능성이 큽니다. 경로가 잘못되어 있다면 내 PC에 맞게 변경해주시면 됩니다 보통 윈도의 경우 c:\Users\'사용자 이름'\AppData\Local\android\adk 그리고 맥의 경우 /Users/'사용자 이름'/Library/Android/sdk sdk.dir=/Users/luna/Library/Android/sdk 이런 식으로 변경해주시면 됩니다.

    [자료구조] 그래프

    개념 및 용어 그래프 G는 하나 이상의 정점(혹은 노드)을 포함하는 집합 V와 두 정점의 쌍으로 구성되는 간선을 포함하는 집합 E의 순서쌍으로 정의함 (G = (V, E)) 간선(인접한다) 두 정점을 연결하는 선 두 정점 쌍으로 나타냄 무방향 그래프 간선의 방향성이 없음 정점 쌍이 순서를 나타낼 필요가 없으므로 {v1, v2}로 나타냄 n개의 정점을 갖을 때 최대 간선 개수: n(n-1)/2 차수: 정점에 연결된 간선들의 개수 방향 그래프 간선의 방향성이 있음 순서쌍 (v1, v2) n개의 정점을 갖을 때 최대 간선 개수: n(n-1) 진입 차수: 주어진 정점으로 향한 간선의 개수 진출 차수: 주어진 정점에서 시작하는 간선의 개수 정점의 차수: 진출 차수와 진입 차수의 합 다중 그래프: 두 정점을 잇는 ..

    [자료구조] 멀티웨이 탐색 트리

    [자료구조] 멀티웨이 탐색 트리

    m원 탐색 트리 트리의 노드가 m개 이하의 가지를 가질 수 있는 탐색 트리 → 같은 수의 노드를 갖는 이진 탐색 트리보다 낮은 높이의 m원 트리 이진 탐색 트리의 확장된 형태임 탐색 트리의 제한을 따르면서, 2개 이상 ~ m개 이하의 자식 노드를 가질 수 있음 노드의 구조 struct Mnode { int n; struct Rectype { struct Mnode * ptr, int key; struct Rectype *addr, } keyptrs[n-1]; struct Mnode *keyptrn; } 탐색 연산 일반적으로 노드의 가지 개수가 많을수록(서브 트리가 많을수록) 최대 탐색 시간이 짧아짐(트리의 깊이가 얕으므로 더 빨리 찾을 수 있음) struct Mnode *nodeptr; struct Re..

    [프로그래밍 언어론] 객체지향과 다형성

    추상 자료형 프로그래밍 언어의 추상화 추상화(abstraction) 복잡한 대상을 간략하게 나타내는 것 추상화 방법 추리기: 대상의 관심 있는 부분만 추려서 나타냄 삭제하기: 특별히 관심 없는 부분은 삭제하여 나타냄 프로그래밍 언어의 추상화 종료 제어 추상화(control abstraction): 복잡한 제어 과정을 단순하게 제공 자료 추상화(data abstraction): 복잡한 자료 구조를 단순하게 제공 프로그래밍 언어의 추상화 프로그래밍 언어의 추상화 지원 제어 추상화: 제어 구조, 서브프로그램으로 지원 → 어떻게 수행되는지는 숨기고 무엇이 수행되는지 나타냄 자료 추상화: 자료 구조, 추상 자료형으로 지원 → 자료 표현과 더불어 관련된 연산을 묶어서 나타냄 프로그래밍 언어의 추상화 발전 초기 프로..

    [프로그래밍 언어론] 서브프로그램 구현

    서브프로그램 구현 개요 서브프로그램 연결 서브프로그램 호출(call) 작업과 복귀(return) 작업 서브프로그램 호출 시 해야 할 작업 호출하는 서브프로그램의 상태 저장 인수 전달 복귀할 주소 저장 호출되는 프로그램으로 분기 서브프로그램 복귀 시 해야 할 작업 필요에 따라 형식인수 값 복사(out parameter) 함수의 경우, 반환값 전달 호출한 서브프로그램의 상태 복귀 호출한 서브프로그램으로 분기 활성 레코드 서브프로그램 호출에 필요한 공간 호출자의 상태 정보를 보관할 공간 인수를 저장할 공간 함수의 경우 반환값을 저장할 공간 복귀할 주소를 저장할 공간 활성 레코드(activation record) 수행 중인 서브프로그램에서 코드를 제외한 데이터 부분이 저장되는 형태 활성 레코드 틀 자체는 정적으..