>
React Query 파헤치기
·
React
오랜만입니다. 리액트 쿼리 공부좀하고 왔습니다. 제가 이해한걸 설명해 보겠습니다. React 프로젝트에서 서버 데이터를 가져오는 일은 누구나 합니다.우리는 주로 axios, useEffect, useState 조합으로 이렇게 짜왔습니다.useEffect(() => { axios.get('/todos') .then(res => setTodos(res.data)) .catch(err => setError(err)) .finally(() => setLoading(false));}, []);처음엔 간단해 보이지만,화면이 늘어나고 요청이 많아지면 버그, 반복, 복잡도가 쌓이기 시작합니다.그래서 등장한 게 바로 React Query입니다.React Query란?서버 상태(Server State)를..
[컴퓨터구조] CPU와 I/O 장치의 접속
·
CS/컴퓨터구조
CPU와 I/O 장치의 접속컴퓨터를 이루는 다양한 부품 중, CPU와 I/O(입출력) 장치의 연결 구조는 시스템의 효율성과 확장성을 좌우하는 핵심 요소입니다.키보드, 마우스, 프린터, 하드디스크, SSD 등 모든 주변장치는 CPU와 직접 연결되지 않고,각 장치별 제어기(컨트롤러)를 통해 접속됩니다.이번에는 CPU와 I/O 장치, 그리고 보조저장장치가 어떻게 연결되어 데이터를 주고받는지, 실제 예시를 곁들여 쉽게 설명해봅니다. 1. 키보드 입력: 데이터의 첫걸음키보드에서 키를 누르면 그 신호는 바로 CPU로 가지 않습니다.먼저, 키보드 내부의 제어기(컨트롤러)가 눌린 키에 해당하는 8비트 데이터(예: 'A' 키는 01000001)를 데이터 레지스터에 저장합니다.동시에, 상태 레지스터의 특정 비트(여기서는 ..
[알고리즘] 가지는 치지만 분할은 어려운 사람.
·
JavaScript/알고리즘
moo게임을 풀어보자 이문제는 재귀다. const input = require("fs") .readFileSync(process.platform === "linux" ? "/dev/stdin" : "./input.txt") .toString() .trim();const N = Number(input);function makeMoo(n) { if (n === 1) return "moo"; const prev = makeMoo(n - 1); return prev + "m" + "o".repeat(n + 2) + prev;}const str = makeMoo(N);console.log(str[N]); 재귀를 위풍당당 야무지게 돌렸지만 🚨 하지만 재귀에는 함정이 있어요!문제는... S(n)의 길이가..
[컴퓨터구조] CPU와 기억장치의 접속
·
CS/컴퓨터구조
CPU와 기억장치의 접속 위 그림은 CPU와 시스템 내의 다른 요소들 사이에 정보를 교환하는 통로가 되는 시스템 버스를 보여줍니다. 주소 버스(adress bus)는 CPU가 외부로 발생하는 주소 정보를 전송하는 신호 선들의 집합입니다. 각 주소 선은 하나의 주소 비트를 전송하는 데 사용되며, 전체 주소 선들의 개수가 CPU와 접속될 수 있는 최대 기억장치 용량을 결정해준다. CPU가 발생하는 주소 비트들의 수를주소 버스의 폭(width)라고 하는데, 그 폭이 16비트라면 최대 65,536개 (즉 64K개) 기억 장소들의 주소를 지정해줄 수 있습니다. 데이터 버스(data bus)는 CPU가 기억장치 혹은 I/O 장치와의 사이에 데이터를 전송하기 위한 신호 선들의 집합입니다.데이터 버스의 폭은 한 번에 ..
[컴퓨터구조] 정보의 표현과 저장
·
CS/컴퓨터구조
1.2 정보의 표현과 저장컴퓨터가 받아들이고 처리하는 정보의 종류로는 프로그램 코드와 데이터가 있다.디지털 컴퓨터에서 그러한 정보들은 모두 2진수를 나타내는 비트들의 조합으로 표현된다. 컴퓨터 프로그램은 우리가 흔히 쓰는 C/C++,Python 같은 고급언어를 이용하여 작성하는데 우리는 이해하지만디지털 회로들로 이루어진 컴퓨터 하드웨어는 전혀 이해하지 못한다. 그래서 이 프로그램은 컴파일러 라고 부르는소프트웨어에 의해 하드웨어가 이해할 수 있는 언어로 번역된다. 이 때 번역된 언어를 기계어 혹은 기계코드 라고 한다. 고급언어들은 어느 컴퓨터에서 사용되든 거의 동일하지만, 기계어는 CPU마다 서로 다르다.즉, CPU내부 구조에 따라 그 하드웨어가 이해할 수 있는 언어도 달라지는 것이다. 그러한 언어상의 차..
[알고리즘] 가지를 치지 않는다면, 시간은 당신을 칠 것입니다.
·
JavaScript/알고리즘
일단 문제 링크입니다.https://www.acmicpc.net/problem/28075필자는 "시간 초과" 라는 글자를 보면 손이 떨립니다.내가 어떻게 풀었는데... 한 줄 한 줄 코드를 써 내려가며 스스로에게 말하죠.“괜찮아. 현대 컴퓨터는 빠르니까.”그렇게 자신을 속이며 제출 버튼을 누른 그 순간—[시간 초과]…잠시 정적이 흐르고,시간초과는 저에게 말을겁니다.“너 진짜 탐색 다 돌릴 생각이었어?” 💥 완전탐색은 당신을 배려하지 않는다.문제의 조건은 이랬습니다:총 N일 동안 일을 합니다.매일 2개의 업무(task) 중 하나를 선택하고, 그 업무는 3개의 장소(place) 중 하나에서 수행됩니다.같은 장소에서 연속으로 일하면 점수가 절반이 됩니다.M점 이상을 달성하는 모든 가능한 경우의 수를 구해야 ..
JavaScript Array 메서드 정복 하기
·
JavaScript
javascript로 코딩테스트를 준비하려는데 Array를 모르면 절대절대 안됩니다.알고리즘 문제를 풀 때 정말 유용하게 사용되는 배열(Array) 메서드들을 총정리하는 시간을 가져보겠습니다.배열 메서드를 잘 활용하면 코드를 훨씬 간결하고 효율적으로 작성할 수 있으며, 문제 해결 능력도 크게 향상될 수 있습니다. 배열메서드를 다루면서 가장 중요한 포인트중 하나는 원본배열에 영향을 미치냐 안미치냐입니다.1. 배열 순회 및 탐색 메서드배열의 각 요소를 순회하거나 특정 조건을 만족하는 요소를 찾는 메서드들입니다.1.1 forEach()배열의 각 요소에 대해 주어진 함수를 실행합니다.반환값: undefined주의: 원본 배열을 변경하지는 않지만, 콜백 함수 내에서 원본 배열을 변경하는 작업은 가능합니다. map..
[컴퓨터구조] 컴퓨터 시스템 개요 및 구조
·
CS/컴퓨터구조
컴퓨터시스템은 기본적으로 하드웨어와 시스템 소프트웨어로 구성되고 그러한 시스템에 각종 응용 소프트웨어들이 탑재되어 사용자와 상호작용하면서 프로그램을 처리한다. 1.1 컴퓨터의 기본구조✅ 하드웨어란?정보를 실제로 처리하는 물리적 실체로, 컴퓨터의 눈에 보이고 손에 잡히는 모든 부품들을 말함. 🧠 비유: 컴퓨터가 사람이라면, 하드웨어는 근육과 뼈, 신경계와 같은 몸 그 자체이다. 💡 하드웨어의 주요 구성 요소메인보드 (Mainboard)모든 부품이 연결되는 중앙 기판CPU, 메모리, 확장 슬롯 등을 포함해 시스템의 중추CPU & GPU 칩CPU: 명령어 실행과 데이터 처리GPU: 영상, 그래픽, 병렬 연산 전용 처리 장치주기억장치 모듈 (RAM)CPU가 직접 접근하는 고속 임시 메모리예: DDR5 SDR..