<리액트 기초> useReducer
· useReducer * 소개 - useReducer은 리덕스의 일부 기능들을 사용하게 해준다. - 비동기 부분 처리를 위해서 리덕스를 써야하지만 reducer와 context로 일부 대체가 가능해졌다. * 사용 - 틱택토 게임을 만들기 위해서 3x3 표를 만들 것이다. const TicTacToe = () => { const [winner, setWinner] = useState(''); const [turn, setTurn ] = useState('O') ; const [tableData, setTableData] = useState([ ['','',''], ['','',''], ['','',''] ]); //... } - 표를 만들기 위해서 2차원배열을 만들었다. 현재 컴포넌트는 TicTacToe..
<자바스크립트> 배열 (2) 반복, 탐색, 정렬 메서드
4. 반복 메서드 * forEach - forEach는 배열 요소 각각에 원하는 함수를 실행하도록 한다. - arr.forEach(function(itme, index, array) { } ); 와 같이 사용한다. let arr = ["HARRY", "IU", "SUZY"]; arr.forEach(alert); // 원소 각각의 알럿창을 보여줍니다. arr.forEach( (item, index, array) => { alert(`${item}은 ${index + 1} 번째에 있으며, ${array}에 속합니다.`); } ); // HARRY // IU // SUZY // HARRY은 1 번째에 있으며, HARRY,IU,SUZY에 속합니다. // IU은 2 번째에 있으며, HARRY,IU,SUZY에 속합..
<컴퓨터 구조> 메모리 교환, 스택, 힙
1. 메모리 교환 * 메모리 교환 - 변수 두 개의 값을 서로 바꾸는 함수를 만들어 보자. - 먼저 변수 두 개의 값을 바꾸려면 임시 변수(tmp)를 만들어서 넣어가며 바꿔야 한다. - 이를 구현하면 다음과 같을 것이다. #include void swap(int a, int b); int main(void) { int x = 1; int y = 2; printf("x is %i, y is %i\n", x, y); // x is 1, y is 2 swap(x, y); printf("x is %i, y is %i\n", x, y); // x is 1, y is 2 } void swap(int a, int b) { int tmp = a; a = b; b = tmp; } - 함수 내에서 값을 교환하는 것 같지만..