자바스크립트에서 함수가 선언된 렉시컬 스코프를 기억하고, 그 스코프 밖에서도 해당 스코프에 접근할 수 있는 함수(개념)를 말한다. 함수와 그 함수가 선언된 환경을 함께 묶은 개념으로 내부 함수가 외부 함수의 변수에 접근하거나 저장된 값을 유지할 수 있는 특성을 제공한다. 주요 특징 간단히 요약1. 변수 접근: 내부 함수가 외부 함수의 변수에 접근할 수 있다.2. 변수 유지: 외부 함수 실행이 종료되어도 내부 함수는 외부 함수의 변수를 참조한다.3. 데이터 은닉: 클로저를 사용하여 데이터를 외부에서 직접 접근할 수 없도록 보호할 수 있다. 예시function 외부함수(외부매개변수) { return function 내부함수(내부매개변수) { console.log(`외부함수: ${외부매개..

Astro 프레임워크 체험기 챗 지피티에게 물어본 Astro의 주요 특징1. 멀티 프레임워크 지원: Astro는 React, Vue, Svelte, Solid.js 등 다양한 프론트엔드 프레임워크의 컴포넌트를 한 프로젝트에서 함께 사용할 수 있습니다.2. Partial Hydration (부분 하이드레이션): Astro는 기본적으로 정적 HTML을 생성하며, 필요한 부분만 JavaScript로 하이드레이션(동적으로 활성화)하여 클라이언트에서 실행합니다.이를 통해 JavaScript 로딩을 최소화하고 페이지 로드 속도를 최적화합니다.3. 파일 기반 라우팅: 파일 구조를 기반으로 라우팅을 자동으로 처리합니다.4. 빠른 빌드와 최적화: Vite를 기반으로 하여 빌드 속도가 매우 빠릅니다. 정적 HTML을 우선..
클린코드 - 03. 함수 어떤 프로그램이든 가장 기본적인 단위가 함수이다. 우리는 어떤 함수를 읽었을때 프로그램 내부를 직관적으로 파악할 수 있을까? 작게 만들어라 블록과 들여쓰기 중첩 구조가 생길 만큼 함수가 커지면 안된다. (if else문 등 주의하여 쓰자) 블록 안에서 호출하는 함수 이름을 적절히 짓는다면 코드를 이해하기 쉽다. 한가지만 해라 예시: 1. 페이지가 테스트 페이지인지 판단 => 2. 설정 페이지와 해제 페이지를 넣는다 => 3. 페이지를 HTML로 렌더링한다. 추상화 수준이 하나인 단계만 수행한다면 그 함수는 한가지 작업을 한다고 할 수 있다. 더이상 줄이기가 불가능 하며 if, else를 따로 뺀다고 해도 다른 표현일 뿐 추상화 수준이 바뀌지 않는다. 함수 당 추상화 수준은 하나로..
클린코드 - 02. 의미있는 이름 의도를 분명히 밝혀라 변수(혹은 함수나 클래스) 존재이유? 수행기능? 사용방법? 이 모든 것을 답하기 위해 주석이 필요하다면 의도를 분명히 드러내지 못했다는 뜻. 그릇된 정보를 피하라 그릇된 단서는 코드의 의미를 흐린다 나름대로 널리 쓰이는 의미가 있는 단어를 다른 의미로 사용해도 안된다 실제 컨테이너가 List가 아닐 경우 List로 명명하면 그릇된 정보를 제공하므로 이렇게 명명하지 않는다 실제 List여도 컨테이너 유형의 이름에 넣지 않는 것이 바람직하다 유사한 개념은 유사한 표기법을 사용한다 이름만 보고 정보를 추측하기 때문에 일관성이 떨어지는 표기법은 그릇된 정보다 연관성이 없는 것에 대해 비슷한 단어를 사용했을 경우 연관이 있다고 생각하는 오류를 범하기 때문에 ..