1.redux에서 state의 값이 여러개로 늘어날 경우 가독성을 위해
const initialState = {stat1 = x, stat2 = xx, stat3 = xxx}처럼
하나의 상수로 변경한 후 reducer의 매개변수에 초기값으로 할당한다.
또한 각각 사용될 state들은 사용할 컴포넌트 내부에서 useSelector를 통해 각각 선언해야한다.
2.redux를 사용할 때는 state.name++와 같은 형식으로 값을 직접 변경하면 안된다.
한상 객체일 경우 새로운 객체를 반환해야하고
배열일 경우는 배열을 반환해야 한다.
state를 직접적으로 건드릴 경우 예상치 못할 오류가 생길 가능성이 높기 때문에 상태를 관리하는 방식을 통일해야 한다.
(useState와 유사)
3.오픈 리다이렉트는 웹사이트에 오픈 리다이렉트 기능이 적용중일 경우
리다이렉트를 통해 악성 페이지로 이동시키는 방법의 공격이다.
4.세션 하이잭은 이름처름 세션을 중간에 탈취하는 방식으로
쿠키등의 인증방식을 사용할 때 쿠키 또는 토큰등을 탈취당하면
탈취자가 사용자인 척 하고 사용자의 계정을 도용할 수 있다.
5.세션 픽세이션은 중간자 공격 방식의 형태를 띄고 있는데
공격자가 대기하고 있다가 유저가 토큰 인증 요청을 할 경우
본인이 세션 id를 생성해 인증을 요청한 다음
거기에 대한 인증은 유저에게 떠념겨 인증된 세션 아이디를 탈취하는 방식이다.
6.크로스 사이트 리퀘스트 포저리(CSRF)는
유저가 이미 인증된 상황이라는 것을 이용해 유저의 클라이언트에서
함정으로 설치된 스크립트를 실행해 인증된 계정이 지정된 행동을 수행하게 하는 방식이다.
7.패스워드 크래킹 중 무차별 대입 공격과 사전 공격이 있는데
무차별 대입은 말 그대로 모든 경우의 수를 다 대입하는 방식이기 때문에
비밀번호의 길이나 입력 가능한 키가 늘어날수록 리소스를 많이 소모한다.
반대로 사전 공격은 특정 범위(생일, 주소, 나이, 생년월일 등)로 좁힐 수 있는 경우에 해당 리스트를 대조해 찾아내는 방식이다.
당연히 조건을 통해 좁혔기 때문에 훨씬 빠르지만
조건 자체가 정확하지 않다면 정답을 맞출 수 없다.
또는 같은 명의의 다른 유출된 계정의 비밀번호로 시도할 수 있다.
8.트리(Tree)는 점과 선으로 이루어진 자료구조로
나무의 뿌리, 가지가 뻗어나가는 것과 비슷한 모습을 하고 있다.
값을 가진 노드(Node)와 노드사이를 연결하는 간선(Edge)으로 구성되어 있으며
최 상단에 하나만 위치한 것을 루트(Root)노드라고 부른다.
트리는 대략적으로 일반 트리, 이진트리, 이진검색트리, 완전이진트리, 정이진트리, 포화이진트리 등이 있는데 아래와 같은 특징이 있다.
트리 - 노드와 간선으로 구성되어있으며 순환하지 않고 노드사이에 간선이 1개로 구성
이진트리 - 자식노드를 최대 2개 가지는 트리
이진검색트리 - 왼쪽 자식노드는 부모보다 작아야 하고 우측 자식노드는 부부모보다 큰 숫자가 들어가는 노드
완전이진트리 - BFS형식으로 왼쪽부터 노드를 채우는 이진트리
정이진트리 - 자식노드가 0 또는 2개인 트리
포화이진트리 - 리프 노드를 제외한 모든 노드의 자식 노드는 2개인 노드(피라미드형)
탐색 방법은 DFS형태에서는 순서를 따지는 전위, 중위, 후위가 있고
BFS형태는 레벨순회 하나만 존재한다.
전위순회 - Root -> 왼쪽 자식(무한반복 후 리프 도착시) -> 오른쪽 자식
-> 형제 노드 탐색 종료시 부모노드로 이동 후 부모의 형제노드
-> 왼쪽자식(무한반복 후 리프 도착시) -> 오른쪽 자식 후 부모노드(반복)
중위순회 - 왼쪽 자식(무한반복 후 리프 도착시) -> 부모노드 -> 오른쪽 자식
-> 처음부터 반복 또는 왼쪽자식 없는 경우 부모노드로 이동(반복)
후위순회 - 왼쪽 자식(무한반복 후 리프 도착시) -> 오른쪽 형제노드 이동
-> 왼쪽자식 또은 형제노드 탐색 후 없는경우 부모노드로 이동(반복)
레벨순회 - 루트탐색 -> 왼쪽자식 -> 오른쪽 형제노드 -> 맨 왼쪽 자식(반복)
전위, 중위, 후위, 레벨순회를 숫자로 보면 아래와 같다.
1 //1,2,3,4,5,6,7형태의 BFS 순서로 구현이 된 경우
2 3 //전위, 중위, 후위, 레벨순회는 아래와 같다.
4 5 6 7
전위순회 = 1 -> 2 -> 4 -> 5 -> 3 -> 6 -> 7
중위순회 = 4 -> 2 -> 5 -> 1 -> 6 -> 3 -> 7
후위순회 = 4 -> 5 -> 2 -> 6 -> 7 -> 3 -> 1
레벨순회 = 1 -> 2 -> 3 -> 4 -> 5 -> 6 -> 7
(1).백준 2446 별찍기 - 9는 모래시계 형태로 별을 찍는 문제였다.
규칙을 찾아 백틱과 repeat을 사용해 해결했다.
let input = 5
let result = []
for(let i = 1 ; i <= input ; i++){
result.push(`${' '.repeat(i-1)}${'*'.repeat(input*2+1-i*2)}`)
}
for(let i = input-1 ; i >= 1 ; i--){
result.push(`${' '.repeat(i-1)}${'*'.repeat(input*2+1-i*2)}`)
}
console.log(result.join('\n'))
'회고' 카테고리의 다른 글
[취업준비일지] - 30 (0) | 2022.11.19 |
---|---|
[취업준비일지] - 29 (0) | 2022.11.18 |
[취업준비일지] - 27 (0) | 2022.11.16 |
[취업준비일지] - 26 (0) | 2022.11.15 |
[취업준비일지] - 25 (0) | 2022.11.14 |