![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bYxwFL/btqJEye60X5/andYY0wXsHEo8ea9spgRNK/img.png)
1️⃣ Reduce ❗ reducer는 Store의 문지기’라고 생각하면 된다. reducer는 이전 상태와 Action을 합쳐, 새로운 state를 만드는 조작을 말한다. 2️⃣ Action ❗ Store 및 Store에 존재하는 State에 직접 접근하기 위해 Action을 꼭 거쳐야 한다. Store에 대해 뭔가 하고 싶은 경우엔 Action을 발행한다. reducer가 Action의 발생을 감지하면, State가 경신된다. Action은 기본적으로 {type, payload} 포맷을 갖고 있는 오브젝트가 된다. 다음은 예시 코드이다. reducers/index.js import { combineReducers } from 'redux'; import alert from './alert'; // [..
Store.js import { createStore, applyMiddleware } from 'redux'; import { composeWithDevTools } from 'redux-devtools-extension'; import thunk from 'redux-thunk'; import rootReducer from './reducers'; const initalState = {}; const middleware = [thunk]; // [1]. const store = createStore( // [2] rootReducer, // [4] initalState, composeWithDevTools(applyMiddleware(...middleware)), // [3] ); export def..
redux를 사용 하면서 비동기 작업 (예: 네트워크 요청) 을 다룰 때에는 미들웨어가 있어야 더욱 손쉽게 상태를 관리 할 수 있다. 우선, 미들웨어가 어떤 역할을 하는지, 그리고 어떻게 작동하는지 이해를 해보자. 미들웨어(Middleware) 이해하기 ❗ Action이 dispatch 되어서 Reducer에서 이를 처리하기 전에 사전에 지정된 작업들을 설정한다. 미들웨어를 액션과 리듀서 사이의 중간자라고 이해하면 된다. Thunk ❗ Thunk는 Redux의 미들웨어로서, Action Create를 작성하면 Action 대신에 함수가 반환되게끔 할 수 있다. 또한, Action을 dispatch 할 때, delay를 줄 수 도 있고, 아니면 특정한 조건이 만족되면 디스패치 할 수 있는 기능도 있다. 그..
코딩테스트 연습 - 중성화 여부 파악하기 SQL에서는 where가 아닌 다른 방법으로 조건절을 사용할 수 있다. 1. CASE ~ END CASE # 2. WHEN ~ THEN # 3. ELSE END CASE와 END로 감싸줌으로써 조건절을 구현할 수 있다. 2. WHEN ~ THEN WHEN SEX_UPON_INTAKE LIKE'%Neutered%' OR SEX_UPON_INTAKE LIKE '%Spayed%' THEN "O" WHEN 뒤에 있는 ~절이 참이라면 THEN 뒤에 있는 절인 "0"을 넣어줄 수 있다. 혹여나 다른 조건절을 추가하고 싶다면 WHEN을 더 추가해주면 된다. 3. ELSE ELSE 'X' ELSE는 가볍게 'X'만 넣어줄 수 있다. 전체 코드 ❗ -- 코드를 입력하세요 SELE..
코딩테스트 연습 - 입양 시각 구하기(2) SQL에서도 변수를 사용할 수 있다. 1. 변수 선언 SET @HOUR_LIST = -1; 2. 반복문 사용 SELECT (@HOUR_LIST := @HOUR_LIST +1) AS 'HOUR' FROM ANIMAL_OUTS WHERE @HOUR_LIST < 23; 선언한 @HOUR_LIST를 23까지 값을 넣을 수 있다. 3. HOUR() 사용 (SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME) = @HOUR_LIST) AS 'COUNT' DATETIME TYPE은 HOUR을 사용하여 시간만 추출할 수 있다. WHERE절을 이용하여 @HOUR_LIST와 같은 HOUR(DATETIME)의 개수를 추출한다.
1072번: 게임 확률이 변하는 지점을 찾기 위해 수학적으로 접근하였다. 1. 승률이 99%, 100%인 경우는 승률이 변하지 않는다.🙅♂️ long Z = Y*100 / X; if(Z>=99){ return -1; } 2. 원하는 승률을 얻기 위한 odds를 구한다.👨🏫 long wantZ = Z + 1; double odds= (double)(wantZ*X - (long)100*Y)/(double)((long)100-wantZ); answer = (int)Math.ceil(odds); 100 * ( (이긴횟수) + (이길횟수) ) / ( (게임횟수) + (이길횟수) ) = 승률(wantZ) 위에 있는 수식을 이용하여 이길횟수를 구한다. 이길횟수를 올림(ceil)해주면 정답을 구할 수 있다. 🔔주의..
에러 내용❗ Typescript 에러. string이나 undefined은 string 타입을 할당할 수 없다는 오류였다. Kakao javascript key를 .env에 넣어서 사용하려고 하는데 오류가 발생하였다. exclamation mark(Nullable)를 사용하여 Error를 피할 수 있다. Nullable Nullable은 null과 undefind를 허용한다. references Typescript: Type 'string | undefined' is not assignable to type 'string'
- Total
- Today
- Yesterday
- kotest
- 클린 아키텍처
- Spring
- Algorithm
- node.js
- C++
- MSA
- 이팩티브 자바
- kkoon9
- Spring Boot
- programmers
- 정규표현식
- Effective Java
- Java
- BOJ
- 클린 코드
- Kotlin
- 백준
- 알고리즘
- 코테
- 이펙티브 자바
- 객체지향
- AWS
- 디자인패턴
- JPA
- 테라폼
- BAEKJOON
- 프로그래머스
- Olympiad
- 디자인 패턴
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |