본문 바로가기

TIL

(75)
TIL 23.08.02 Mockterview (1)~(3) 1. 시간복잡도와 공간복잡도는 무엇인가 ? 둘 다 알고리즘 성능 평가시 사용되는 개념이다. 시간복잡도 : 시간 복잡도란 알고리즘의 절대적인 실행시간이 아닌, 알고리즘을 실행하는데 연산들이 몇 번 이루어지는지 숫자로 표기한 것이다. 공간복잡도 : 프로그램을 실행시킨 후 완료하는 데 필요로 하는 자원 공간의 양을 뜻한다. 그러나 예전에 비해 컴퓨터 성능이 발달하여 메모리 공간에 여유가 생겨 중요도는 떨어졌다. 시간 복잡도와 공간 복잡도는 반비례적인 성향이 있다. 2. 스택과 큐는 무엇인가? 스택 : 웹 브라우저의 뒤로가기 처럼 가장 늦게 쌓인 데이터가 가장 빨리 나가는 후입선출의 자료구조이다. 큐 : 입력된 데이터가 시간 순서대로 처리해야 할 필요가 있는 상황에 사용되며, 가장 먼저 들어간 데이터가 제일 처..
TIL 23.08.01 로컬스토리지 데이터 저장/ 조회/ 삭제 로컬스토리지에 데이터 저장하기 localStorage.setItem(key, value) import React, { useState } from 'react'; function App() { const [data, setData] = useState(''); const handleInputChange = (event) => { setData(event.target.value); }; const handleSaveData = () => { localStorage.setItem('myData', data); // 키-값 형태로'myData'라는 키로 데이터를 로컬 스토리지에 저장 }; return ( Save Data ); } export default App; 로컬스토리지에서 데이터 가져오기 localS..
TIL 23.07.31 Redux thunk/ toolkit 개념정리 Redux thunk Redux thunk 는 리덕스에서 비동기 작업을 하기 위한 미들웨어 중 하나로, Redux thunk 를 사용하면, 액션 생성자 함수가 일반 객체뿐만 아니라 함수도 반환할 수 있다. Thunk의 장점 1. 비동기 작업 처리 Redux 는 동기적인 상태관리 라이브러리이므로, 액션은 순수한 객체 형태를 지닌다. 그러나 서버로부터 데이터를 가져오거나, API를 호출하는 비동기 작업은 리덕스에서 바로 처리가 불가능하다. 따라서 Redux Thunk를 사용하면 비동기 작업을 보다 쉽게 처리가 가능하다. 2. 분리된 비동기 로직 비동기 작업을 컴포넌트에서 직접 처리하면, 해당 컴포넌트가 너무 많은 역할을 하게 된다. 따라서 Redux Thunk를 이용해 비동기 로직을 액션 생성자 함수와 분리..
TIL 23.07.28 Redux 개념정리 Redux 1. 전역 상태관리 라이브러리 2. 주로 React 와 함께 Vue, Angler 에서도 사용할 수 있다. 3. Redux 는 애플리케이션의 상태를 단일한 "store" 에 저장하여 상태 변경 및 관리를 예측 가능한 방식으로 함. Redux 가 해결하려고하는 문제 1. 상태관리의 복잡성 해소 애플리케이션의 상태관리는 주로 props 로 이루어지는데 (useState를 통한 관리), 애플리케이션이 커지고 복잡해질수록 상태 흐름을 파악하기 어려움. Redux는 전역상태에서 통합적으로 관리가 가능함 (접근 : useSelector , 제어 : useDispatch) 2. 데이터 흐름의 일관성 유지 Redux는 상태변경을 예측 가능한 Action 객체로 관리한다. 3. 상태변경 로직의 중앙집중화 리..
TIL 23.07.27 타입과 인터페이스 타입과 인터페이스 공통점 1. 타입 정의 : 타입과 인터페이스는 둘 다 새로운 타입을 정의할 때 사용하며, 여러 변수에 동일한 타입을 재사용 하거나 함수의 매개변수 및 타입 반환을 할 때 사용된다. 2. 타입 체킹 : 타입스크립트는 타입과 인터페이스를 이용하여 코드를 검사, 컴파일 할 때 타입오류를 찾아낸다. // 인터페이스 예제 interface Person { name: string; age: number; } // 타입 예제 type PersonType = { name: string; age: number; }; // 확장 예제 interface Car { brand: string; model: string; } interface ElectricCar extends Car { batteryCapac..
TIL 23.07.26 TypeScript/ Node.js 기본 버전 설정 문제점 지옥같은 노드 버전 12.22.12 때문에 타입스크립트랑 호환이 안돼서 몇일 내내 고생을 했음 🤬 아무리 명령어 입력하고 노드 설치해도 계속 12.22.12 가 디폴트 값이 되는.. 그런 너무 힘들었다. 시도해본것 진짜 임시 방편으로 다음 명령어를 입력하면 노드최신버전을 설치하면 일시적으로는 버전이 최상위 버전인 v20.5.0 으로 바뀌는데 진짜 그순간뿐이라서 터미널끄면 사라짐.. nvm install node 해결방안 터미널에서 다음과 같이 명령어를 치면 nvm ls 다음처럼 현재 설치된 노드 버전목록들을 보여줌 (원래 나의 디폴트 버전은 12.22.12) 다음과 같이 디폴트 설정할 노드 버전을 입력해주면 nvm alias default [원하는 노드 버전] 다음과 같이 현재 노드 버전이 바뀐것..
TIL 23.07.25 객체의 length 문제점 타입스크립트 강의를 듣던 중, 아래의 평점을 구하는 함수를 작성해야 했음. interface Student { name: string; age: number; scores: { korean: number; math: number; society: number; science: number; english: number; }; } 아래와 같이 작성해도 답이 나올 수 있겠지만 만약 과목의 수가 바뀌면 ? 😧 5,6,7... 매번 하드코딩해서 과목의 수를 작성할 수도 없음. function calculateAverage(student: Student): number { const sum = student.scores.korean + student.scores.math + student.scores.so..
TIL 23.07.25 타입스크립트 실행 에러 문제점 타입스크립트를 실행할 때 node.js 의 버전과 typescript 버전이 호환되지 않아 다음과 같은 에러메세지가 출력됨. 정확히 현재 내 컴퓨터의 TypeScript 버전 5.1.6이 현재 사용 중인 Node.js 버전 12.22.12와 호환되지 않기 때문에 발생한다. Unsupported engine for typescript@5.1.6: wanted: {"node":">=14.17"} (current: {"node":"12.22.12","npm":"6.14.16"}) npm WARN notsup Not compatible with your version of node/npm: typescript@5.1.6 시도해본것 다음과 같이 typescript 를 전역으로 설치했는데도 해결되지 않음 n..