반응형 개발 및 알고리즘36 [Redux] Redux를 사용하는 이유 리액트에서는 컴포넌트 단위로 프로젝트를 구성하기 때문에 컴포넌트 사이에 데이터를 주고받는 방식이 명확해야 한다. 보통 하나의 루트 컴포넌트 (일반적으로 App.js)에서 상태를 정의하고, 이를 상속함으로써 하위 컴포넌트에서도 관리할 수 있게 한다. 하위 컴포넌트에서 상태를 직접 정의하지 않고 부모 컴포넌트에서 정의한 후 이를 통해서 소통하는 이유는, 하위 컴포넌트끼리 직접 소통하기가 까다롭고 코드가 복잡해지기 때문이다. (보통 ref를 사용하여 작업한다고 한다.) 이렇게 부모 컴포넌트에서 상태를 관리하면서 상속을 통해 소통하게 되면 관리하기 편하면서 직관적인 구조가 된다. 그러나 문제는 앱의 규모가 커져 상속의 단위나 컴포넌트의 개수가 늘어났을 때이다. 규모가 커질수록 데이터도, 데이터를 업데이트하거나 .. 2024. 3. 30. [React/Error] useRoutes() may be used only in the context of a <Router> component : <BrowserRouter> 추가 useRoutes() may be used only in the context of a component. react-router-dom 라이브러리를 import하여 Route, Routes 등을 사용하려 할 때 발생하는 에러 해당 라이브러리를 사용하기 위해서는 index 파일에서 App 컴포넌트를 컴포넌트로 감싸주어야 한다. index.js / index.tsx (전) import React from 'react'; import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; import reportWebVitals from './reportWebVitals'; const root = ReactDOM.cre.. 2024. 3. 29. [React] 리액트 스타일링 (css module, classnames) 기본적인 html 파일에서는 DOM 요소에 특정 class, id명을 붙여서 원하는 스타일을 적용할 수 있다.... 이렇게 style 태그 안에 넣어둔 class명을 활용하면 여러 클래스를 사용할 수도 있다. 그러나 리액트에서는 class를 사용하지 않고 JSX문법으로 className을 활용한다.return (); 일반 HTML처럼 style 태그 안에 넣어둔 class명을 사용하기도 하지만, 보통 styled-component와 module css를 주로 비교해서 사용한다. 그러나 이 글의 주인공은 이 둘이 아니라 classnames이므로, module css만 간단히 소개하고 활용법을 소개하겠다. CSS Module일반 css와 달리 각 css 파일을 컴포넌트 단위로 import하여 사용한다.즉 특.. 2024. 3. 29. [Git] 프로젝트 폴더 연동하기 React 또는 React Native를 시작한 폴더를 git bash를 통해 github에 연동하는 방법을 알아볼 것이다. 우선 github에 프로젝트 폴더를 연동할 Repository를 만들어야 한다. 딱히 다른 설정을 바꿀 필요는 없고, 프로젝트 폴더를 다른 사람에게 공개하고 싶다면 Public, 아니라면 Private을 선택하면 된다. Repository Name을 설정한 후 Create repository 버튼을 누른다. github에서 repository 페이지를 꽤나 친절하게 꾸며놓았기 때문에 시키는 대로 따라하면 된다. 우선 해당 프로젝트 폴더에서 git bash를 켜고 git을 시작할 준비를 한다. git init 그리고 아까 만든 github repository 페이지로 돌아와서 아래쪽.. 2024. 3. 27. 배열 배열에서 데이터에 접근하기 위한 시간 복잡도 : O(1) 맨 뒤에 삽입할 경우 시간 복잡도: O(1) 맨 앞에 삽입할 경우 시간 복잡도: O(N) 배열을 선택할 때 고려할 점 1. 할당할 수 있는 메모리 크기를 확인해야 함 2. 중간에 데이터 삽입이 많은지 확인해야 함 list.append(a) : 맨 끝에 데이터 추가 list = list + [4, 5] : 맨 끝에 배열 추가 list.insert(index, value): 특정 index에 값 추가 list.pop(index) : 특정 index의 값 삭제, 반환 list.remove(value) : 배열에서 맨 앞에 있는 특정 값 삭제 list.index(value) : 특정 데이터가 처음 등장한 index 반환, 없으면 -1 2024. 3. 20. 코딩 테스트 문제 풀이 전략 1. 문제를 한 번에 분석하지 말고 동작 단위로 쪼개서 분석하여 한 번에 생각해야 하는 양을 줄여라. 2. 제약 사항을 정리해두고 테스트 케이스를 추가하라. 3. 입력값을 분석하라. 4. 핵심 키워드를 파악하라. 키워드 상황 스택 - 쌍이 맞는지 - 최근 - 무언가를 저장하고 반대로 처리해야 할 때 - 데이터의 조합이 균형을 이뤄야할 때 - 알고리즘이 재귀 특성을 가질 때 - 최근 상태 추적 큐 - 순서대로 - ~대로 동작하는 경우 - 스케줄링 - 최소 시간 - 특정 조건에 따라 시뮬레이션할 때 - 시작 지점부터 목표 지점까지 최단 거리 깊이 우선 탐색 - 모든 경로 - 메모리 사용량이 제한적일 때의 탐색 - 백트래킹 문제를 풀 때 너비 우선 탐색 - 최적 - 레벨 순회 - 최소 단계 - 네트워크 전파 .. 2024. 3. 17. 이전 1 ··· 3 4 5 6 다음 반응형