본문 바로가기

전체 글69

[SeSAC] React 학습 정리(4) - LifeCycle(2) 함수형 컴포넌트에서 발생하는 에러처리 - 에러 바운더리 1. 함수형 컴포넌트에서 발생하는 에러처리 방법 🍞 함수형 컴포넌트에서 클래스형 컴포넌트의 에러처리 메서드 또는 에러바운더리를 대체하는 Hook은 현재는 없다. - 에러처리 메서드를 사용 하는 클래스형 컴포넌트(에러바운더리)의 자식 컴포넌트에 위치 시킨다. - js 내에서 try-catch 사용한다. 2. 에러 바운더리 : 자식 컴포넌트 트리 내의 자바스크립트 오류를 감지하고, 해당 오류를 기록하며, 충돌이 발생한 컴포넌트 트리를 대신하여 대체 UI를 표시하는 React 컴포넌트 ✓ 에러 바운더리는 클래스형 컴포넌트여야 한다. (현재는 함수형 컴포넌트로 에러바운더리를 만드는것은 지원되지 않는다.) ✓ 에러 바운더리 내에 getDerivedStateF.. 2023. 10. 14.
[DB] SQL개념과 분류(DML/DDL/DCL/TCL) SQL Structured Query Language 의 약자, 관계형 데이터베이스에 정보를 저장하고 처리하기 위한 프로그래밍 언어, 실행 순서가 없는 비절차적인 언어 DML (Data Manipulation Language) - 데이터 조작어 - 데이터 조회, 삽입, 수정, 삭제 등의 명령어 - SELECT, INSERT, UPDATE, DELETE DDL (Data Definition Language) - 데이터 정의어 - 테이블이나 릴레이션의 구조를 생성하는데 사용하는 명령어 - CREATE, ALTER, DROP, TRUNCATE DCL (Data Control Language) - 데이터 제어어 - DB에 접근하고 객체들을 사용하도록 권한을 주거나 회수하는 명령어 - GRANT, REVOKE T.. 2023. 10. 13.
[SeSAC] React 학습 정리(4) - LifeCycle LifeCycle React LifeCycle(생명 주기) 란 1. 생명 주기(LifeCycle)는 컴포넌트가 브라우저 상에 나타나고, 업데이트되고, 사라지게 되는 과정 이다. 2. 컴포넌트의 생명주기를 관리하고 컨트롤하는 방법을 나타내는 개념 >>컴포넌트가 실행되거나 업데이트되거나 제거될 때, 특정한 이벤트들이 발생 1. 클래스형 컴포넌트 LifeCycle 모든 컴포넌트는 여러 종류의 “생명주기 메서드”를 가지며, 이 메서드를 오버라이딩하여 특정 시점에 코드가 실행되도록 설정 즉, 컴포넌트 생성시 -> 생명주기 메서드 컴포넌트 업데이트시 -> 생명주기 메서드 컴포넌트 제거시 -> 생명주기 메서드 다시말해 생명주기 메서드를 활용해서 LifeCycle에 따라 특정 코드를 실행 시킬 수 있다. 1-1. 생명.. 2023. 10. 12.
[Nodejs] 싱글 스레드 노드.js는 주로 싱글 프로세스(single process) 아키텍처를 사용. 하나의 메인 프로세스가 이벤트 루프를 통해 모든 작업을 처리하는 모델. 프로세스와 스레드 프로세스. - 컴퓨터에서 실행 중인 프로그램 - 각각의 프로세스는 독립된 메모리 공간을 할당 받고, 명령어들과 데이터를 가짐 스레드. - 프로세스는 독립점인 메모리 공간을 차지하는 특징이 있다. 이러한 특징으로 인해 프로세스간의 데이터 공유가 까다롭다. - 그래서 차라리 한 프로세스 안에서 여러개의 작업을 동시에 실행하고자 해서 나온게 스레드 입니다. 이때 여러개의 작업 중 하나 하나를 맡아주는게 스레드 입니다. 싱글 스레드? 노드.js는 주로 하나의 메인 스레드를 사용하며, 백그라운드에서는 스레드 풀을 통해 다수의 스레드를 사용하여 I/.. 2023. 10. 4.
[Nodejs] 동기/비동기, 블로킹/논블로킹 동기/비동기, 블로킹/논블로킹은 Nodejs에 한정한 개념이 아니다. 블로킹은 일반적으로 스레드 수준에서 발생하며 블로킹 작업은 스레드의 실행을 차단하고, 해당 스레드가 다른 작업을 수행하지 못하게 만든다. Node.js는 싱글 스레드 기반의 런타임 환경으로, 기본적으로 하나의 메인 스레드에서 코드를 실행하는 특징이 있다. 싱글 스레드 환경에서는 한 번에 하나의 작업만을 처리할 수 있고 따라서 메인 스레드에서 코드 실행 중인 경우 다른 작업은 대기해야 함. 메인스레드에서 전부 처리할꺼면 싱글스레드방식이 비효율적인데 그래서 비동기+논블로킹 방식으로 일부 작업들을 백그라운드로 보내고 스레드풀의 스레드가 처리할 수 있도록 설계됐고 이게 핵심이다. 메인 스레드에서 블로킹 작업을 처리한다? 메인 스레드는 코드 실.. 2023. 10. 2.
[Nodejs] Event-driven (이벤트기반) Nodejs 1. 이벤트기반 아키텍처를 사용 2. 싱글 스레드 기반 3. 논블로킹 I/O 이벤트 기반 아키텍처는 논블로킹과 비동기 처리의 이점을 최대한 활용하고 효율적으로 구현하기 위한 방식 중 하나 노드가 이벤트 기반 아키텍처를 사용하는 이유는 자바스크립트가 이벤트 기반 언어이기 때문만은 아님. 주된 이유는 주로 성능, 비동기+논블로킹 처리, 자바스크립트 표준 및 확장성을 개선하기 위함 싱글 스레드 모델이라 간단, 경량화, 스레드 간의 동기화 문제를 처리하는 복잡성을 줄임. 싱글 스레드 모델이지만 비동기/논블로킹 방식 + 이벤트 기반의 처리를 통해 많은 요청을 효율적으로 처리할 수 있도록 설계됨. 이벤트 기반 아키텍처에서 여러 요청(이벤트)를 처리하기 위해 효율적인 논블로킹 방식을 사용. 이벤트 기반 .. 2023. 9. 30.