개념 프로그램은 어떤 파일이 실행되기 전 상태, 다시 말하면 코드 모음입니다. 이것을 개발자의 언어로 이야기하면 코드가 파일로 빌드되어 보조 기억 장치에 저장되어 있는 정적인 상태 라고 할 수 있습니다. 그리고 프로세스는 프로그램이 실행되고 있는 상태를 의미합니다. 프로그램이 메모리에 올라와서 CPU가 코드를 해석하는 과정인 것이죠! CPU는 한 번에 하나의 프로그램만 실행할 수가 있습니다. 그런데 작업관리자를 확인해보면 동시에 여러개의 프로그램이 실행되고 있는 것처럼 보이네요! 이것은 어떻게 설명할 수 있을까요?? 여러개의 프로그램을 동시에 실행하는 방법 병렬 처리 병렬 처리는 2개 이상의 코어가 각기 다른 프로세스를 같은 순간에 실행하는 방법입니다. 듀얼코어, 쿼드코어가 여기서 나오는 개념인 거죠! ..
개념 input 타입에 onChange 이벤트를 걸어서 state의 변화를 준다면 사용자가 input창에 무언가를 입력할 때마다 이벤트 핸들러가 호출됩니다. scroll event의 경우도 마찬가지입니다. 만약 무한 스크롤 기능을 스크롤 이벤트로 구현한다면 스크롤이 맨 아래에 위치했는지 여부만 체크하면 되는데 스크롤을 움직일 때마다 이벤트가 연속적으로 호출됩니다. 댓글을 작성해서 submit 하는 것이나 스크롤이 맨 아래에 위치했는지 여부를 확인해야 하는 경우에 필요한 것보다 훨씬 많은 이벤트 호출이 발생하게 됩니다. Debounce와 Throttle은 이러한 연속적으로 호출되는 이벤트 핸들러의 실행 빈도를 제어함으로써 성능상의 유리함을 가져오기 위한 개념입니다. Debounce 연이어 발생한 이벤트를 ..
record 란 무엇일까요? 불변(immutable) 데이터 객체를 쉽게 생성할 수 있도록 하는 새로운 유형의 클래스로 일반 class와 다르게 생성자, getter, hashCode(), equals(), toString() 메소드를 제공해줍니다. DTO처럼 데이터를 운반하는 특성의 클래스를 구현할 때 반복적으로 작성했던 부분을 없애줍니다. JDK14 버전에서 preview로 등장하여 JDK16 버전에서 정식 스펙으로 포함되었습니다. 어떻게 사용하는 걸까요? 선언 방식 record 레코드명(컴포넌트1, 컴포넌트2) {} class를 사용한 DTO 객체 public class Person { private final String name; private final int age; public Person..
리액트 컴포넌트의 렌더링 조건 컴포넌트는 자신의 state가 변경되거나 부모 컴포넌트가 렌더링 되었을 때 함께 렌더링이 됩니다. const School = (props) => { return ( ); } Student 컴포넌트는 이름, 나이, 성별을 props로 전달받아서 Student의 정보를 보여주는 간단한 컴포넌트입니다. const Student = ({ name, age, gender}) => { return ( {name} {age} {gender} ); } School 컴포넌트는 Student의 부모 컴포넌트입니다. 리액트는 기본적으로 부모 컴포넌트가 렌더링되면 모든 자식 컴포넌트도 같이 렌더링이 됩니다. Student 컴포넌트는 항상 같은 props를 전달받도록 되어있죠?! 그래서 Stude..
사이드바 메뉴 리팩토링 파이널 프로젝트가 끝나고 틈틈이 리팩토링을 진행하고 있는데 단순히 하나의 tsx 파일에 들어있는 코드를 컴포넌트로 분리해서 가독성을 향상시키는 것 외에도 로직 자체를 변화시켜서 개선할 수 있는 부분도 많이 보였습니다. 이번에는 사이드바 메뉴쪽을 개선시켜본 후에 정리를 해보았습니다. 개선 전 전체 코드 import defaultImage from "/images/cat.jpg"; import * as S from "./style"; import * as H from "../Header/styled"; import Logout from "../../assets/icons/Logout"; import product from "../../assets/product.svg"; import ..
- Total
- Today
- Yesterday
- 타입스크립트
- BFS
- CS
- SQL
- java
- 자바
- 백준
- 프로그래머스
- Queue
- 스프링부트
- dfs
- 해시맵
- Comparator
- Nest
- SQLD
- JPA
- Algorithm
- 알고리즘
- 리액트
- JavaScript
- 스프링
- DP
- 자바스크립트
- 이분탐색
- Spring
- 자바트리
- 정렬
- 자바dp
- 자바bfs
- 형변환
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |