전체 글 85

JavaScript - 코어 자바스트립트 정리 (4~7장, 콜백함수,클로저,프로토타입,클래스)

1. 콜백 함수 (Callback Function)콜백 함수란 다른 함수의 인자로 전달되어, 그 함수 내부에서 호출되는 함수를 의미한다. 주로 비동기 처리나 이벤트 기반 프로그래밍에서 자주 사용되며, 코드의 실행 흐름을 제어하는 데 유용하다.function fetchData(callback) { // 데이터를 가져오는 비동기 작업 (예: 서버 요청) setTimeout(function() { let data = "Fetched Data"; callback(data); // 작업 완료 후 콜백 함수 호출 }, 1000);}function displayData(data) { console.log("Data: " + data);}fetchData(displayD..

JavaScript 2024.09.22

Storybook - UI 컴포넌트 개발을 위한 필수 도구

프론트엔드 개발을 하다 보면 UI 컴포넌트를 반복해서 만들고, 테스트하고, 유지보수해야 하는 일이 많다. 이때 Storybook은 UI 컴포넌트 개발을 더 쉽고 체계적으로 할 수 있도록 도와주는 훌륭한 도구이다. 특히, React, Vue, Angular와 같은 다양한 프레임워크에서 사용이 가능하다.즉 컴포넌트 기반 개발(Component-Driven Development)(CDD) 방법론에 따라 만들어진다.Storybook이란?Storybook은 UI 컴포넌트를 독립적으로 개발하고 테스트할 수 있는 환경을 제공하는 오픈 소스 도구이다. 보통 웹 애플리케이션을 개발할 때, UI 컴포넌트는 애플리케이션의 나머지 부분들과 결합된 상태에서 작동한다. 하지만 Storybook을 사용하면, 애플리케이션의 나머지 ..

라이브러리 2024.09.20

JavaScript - 코어 자바스트립트 정리 (1~3장, 데이터 타입& 실행 컨텍스트& this)

기본을 다시 다지는 의미로 코어 자바스트립트책을 읽고 정리해보았다.  이미 대부분 아는 내용이라 복습하는 느낌으로 간단하게 적어보았다. 디테일한 상세 설명은 다른글을 참고! 아래부터는 1장부터 3장까지의 내용이다.1. 변수와 데이터 타입변수변수는 데이터를 저장하는 공간이다. 자바스크립트에서는 변수 선언을 위해 var, let, const를 사용한다. 각 키워드는 다음과 같은 차이점을 가진다.var: 함수 스코프를 갖고, 중복 선언이 가능하다. 하지만 블록 스코프를 무시하기 때문에 예기치 않은 문제를 일으킬 수 있다.let: 블록 스코프를 가진다. 같은 스코프 내에서 중복 선언이 불가능하고, 선언되기 전에는 사용할 수 없다(Temporal Dead Zone).const: 상수를 선언하는데 사용된다. 값이 ..

JavaScript 2024.09.19

JavaScript - 자바스크립트 메모리 관리와 객체 참조 모델

자바스크립트는 동적 언어이기 때문에 변수의 할당과 해제가 자동으로 이루어진다. 자바스크립트는 가비지 컬렉터(Garbage Collector)가 자동으로 메모리를 관리하지만, 기본적인 개념을 이해하고 최적화하면 더 나은 성능을 유지할 수 있다.  1. 자바스크립트 메모리 관리의 기본 개념자바스크립트의 메모리 관리는 크게 아래에 과정으로 나눌 수 있다:메모리 할당: 프로그램이 데이터를 생성하거나 객체를 생성할 때 메모리를 할당받는 과정이다.메모리 사용: 메모리 사용은 변수나 객체를 참조할 때 발생한다.메모리 회수: 더 이상 필요하지 않은 메모리를 자동으로 회수하는 과정이다. 이를 가비지 컬렉션(Garbage Collection)이라고 한다.프로그래머가 직접 메모리 해제를 명시적으로 처리하는 언어(C, C++..

JavaScript 2024.09.17

HTTPS & HTTP 네트워크

개념 설명 HTTP (Hypertext Transfer Protocol)는 클라이언트와 서버 간의 통신을 위한 프로토콜이다. 웹 브라우저를 통해 웹 페이지를 요청하고, 서버는 해당 요청에 대한 응답을 제공하는데 사용된다. HTTP는 클라이언트와 서버 간의 데이터 전송 방식, 헤더와 본문의 구조, 요청 및 응답의 상태 코드 등을 정의하고 있다. HTTPS (Hypertext Transfer Protocol Secure)는 HTTP의 보안 버전으로, 클라이언트와 서버 간의 통신을 암호화하여 보안성을 강화한 프로토콜이다. HTTPS는 HTTP와 동일한 구조와 기능을 가지고 있지만, 데이터의 안전한 전송을 해 SSL(Secure Sockets Layer) 또는 TLS(Transport Layer Security..

JavaScript - 자바스크립트의 싱글 쓰레드와 이벤트 루프

이벤트 루프1) 비동기 작업과 호출 스케줄링 자바스크립트는 싱글 쓰레드 환경에서 동작하는 언어이다. 즉, 한 번에 하나의 작업만 처리할 수 있다. 하지만 브라우저 환경이나 Node.js에서 비동기 작업(예: 파일 읽기, 네트워크 요청)을 처리해야 할 때, 자바스크립트는 이벤트 루프(Event Loop)를 이용해 동시성(Concurrency)을 지원한다.이벤트 루프는 자바스크립트의 비동기 처리에서 핵심 역할을 하는 메커니즘으로, 자바스크립트가 멈추지 않고 여러 작업을 처리할 수 있도록 도와준다. 콜스택(Call Stack), 태스크 큐(Task Queue), 그리고 이벤트 루프가 함께 협력하여 이러한 비동기 작업들을 효율적으로 처리한다.흐름을 간단하게 살펴보자면:싱글 쓰레드로 동작하는 자바스크립트는 하나의..

JavaScript 2024.09.17

브라우저 랜더링 과정 - CRP(Critical Rendering Path)

브라우저가 웹 페이지를 표시하는 과정은 네트워크 관점과 렌더링 관점에서 나눠서 설명할 수 있다.  네트워크 관점에서는 브라우저가 서버로부터 필요한 리소스를 요청하고 다운로드하는 과정렌더링 관점에서는 다운로드한 리소스를 사용해 브라우저가 화면에 웹 페이지를 그리는 과정 네트워크 관점웹 페이지를 로드하는 과정은 브라우저가 서버로부터 필요한 리소스를 다운로드하는 네트워크 통신 단계입니다. 주요 단계는 다음과 같습니다:1) URL 입력 및 DNS 조회사용자가 웹 브라우저 주소창에 URL을 입력하면, 브라우저는 먼저 DNS 조회를 통해 해당 URL의 도메인 이름을 IP 주소로 변환합니다. 이 IP 주소는 웹 서버가 위치한 곳을 나타냅니다.2) TCP 연결 및 SSL 핸드셰이크브라우저는 서버와 TCP 연결을 맺습니..

기타 2024.09.17

Angular - ControlValueAccessor

Angular에서 ControlValueAccessor 쉽게 이해하기Angular에서 사용자 정의 폼 컴포넌트를 만들다 보면, Angular의 폼 시스템과 연동해야 하는 경우가 있다. 그때 필요한 것이 바로 ControlValueAccessor이다. 이 인터페이스를 사용하면 Angular 폼 제어기(FormControl, NgModel)가 커스텀 컴포넌트와 원활하게 연결될 수 있다. 쉽게 말해, Angular의 기본 폼 요소(input, select 등)처럼 커스텀 컴포넌트도 동일하게 동작하도록 만들어 주는 역할을 한다. Angular에서 커스텀 폼 컴포넌트가 Angular 폼 제어기(FormControl, NgModel)와 상호작용하는 과정은 ControlValueAccessor의 메서드들을 통해 이루..

Angular 2024.09.12

JavaScript - this

과제를 하던중 .bind(this)를 사용하게 되었는데 곰곰히 생각해보니깐 정확한 뜻을 알고 쓴게 아니라 습관적으로 해당 함수를 참조한다 라고만 생각하고 썻던거 같다. 그래서 이번에 디테일하게 개념부터 알아보려고 한다. JavaScript에서 this 키워드는 함수를 호출 할때 결정된다. 함수를 어떤 방식으로 호출하는지에 따라 값이 달라진다는 것이다.  1. 전역 문맥 (Global Context)전역 문맥에서 this는 전역 객체를 참조합니다:브라우저 환경에서는 전역 객체가 window입니다.Node.js 환경에서는 전역 객체가 global입니다.console.log(this); // 브라우저에서는 window 객체를 출력  2. 함수 문맥 (Function Context)기본 함수에서 this는 호출..

JavaScript 2024.09.02

Angular - 동작원리 및 RxJS와 Ngrx

앵귤러 개발자로써 까먹은 기본적인 개념들을 한번 정리하는 시간을 가져 보겠다. 앵귤러의 동작원리란?앵귤러 부트스트랩: 브라우저가 HTML(index.html) 파일을 로드하고 앵귤러 애플리케이션이 부트스트랩됩니다.루트 모듈 초기화: main.ts 파일에서 platformBrowserDynamic().bootstrapModule(AppModule)이 호출되어 루트 모듈(AppModule)이 부트스트랩됩니다. AppModule이 부트스트랩되면 Angular는 루트 컴포넌트(AppComponent)를 로드하고, 이를 기반으로 애플리케이션의 나머지 컴포넌트들을 초기화합니다.의존성 주입: 필요한 서비스들이 컴포넌트에 주입됩니다.라우팅 처리: URL에 맞는 컴포넌트가 선택되고 로드됩니다.템플릿 렌더링: 컴포넌트의 ..

Angular 2024.08.22
반응형