그래프 정렬
·
알고리즘 풀이
1. 그래프와 인접행렬 기호로는 G(V, E)로 표시된다. V(vortex) = 노드, 정점 E(edge) = 노드와 노드를 연결하는 간선 1. 무방향 그래프 예시로 노드가 도시이고 간선이 도로일 경우가 된다. 1번 도시에서 2번 도시로 이동할 수 있고 2번 도시에서 1번 도시로 이동할 수 있다. a b 1 2 2 1 1 3 3 1 2 4 4 2 2 5 5 2 3 4 4 3 위의 그래프(인접행렬)를 표현하려면 2차 배열로 표현한다. 1 2 3 4 5 1 0 1 1 0 0 2 1 0 0 1 1 3 1 0 0 1 0 4 0 1 1 0 0 5 0 1 0 0 0 위 그래프는 무방향이기 때문에 아래와 같이 표현한다. 각 행과 열은 노드가 된다. graph[a][b] = 1; grahp[b][a] = 1; 2. 방..
리덕스 이해하기
·
React
리액트를 다루는 기술 개정판(https://g.co/kgs/GBwnEc)의 24장을 따라가며 작성 리덕스 사용에 필요한 라이브러리를 설치합니다. yarn create react-app react-redux-tutorial cd react-redux-tutorial yarn add redux@4.1.2 react-redux 실습은 Ducks패턴을 사용하여 액션 타입, 액션 생성 함수, 리듀서가 하나의 파일에 다 정의되어 있는 리덕스 모듈을 작성 할 것 입니다. 아래의 +1, -1 버튼으로 숫자를 조작할 수 있는 카운트 프로젝트를 만들어봅시다. 1. src폴더 아래에 modules폴더를 생성하고 counter.js파일을 생성해 줍니다. 첫번째, 액션 타입을 정의해 줍니다. 액션타입이란? 액션타입을 정의하는 ..
VScode에서 클러스터 포트 포워딩하기
·
TIL(Today I Learned)
클러스터의 정보가 담긴 yaml파일을 다운 받는다. 내가 사용하는 rancher에는 아래와 같이 다운받는 버튼이 있다. 3. kubeConfig.yaml파일을 다운받는다. 4. Visual Studio Code에 들어간다. 5. LNB에 'Kubernetes'를 클릭한다. 6. 'CLUSTERS' 탭에 'Set Kubeconfig'를 클릭한다. 7.'작업실행'창에 '+Add new Kubeconfig'를 클릭해서 로컬에 다운받아놓은 kubeConfig.yaml파일을 등록한다. 8. 'CLUSTERS'탭에 새로 클러스터가 등록된 것을 확인 할 수있다. 9. 등록된 클러스터를 우클릭 하고 'Open Dashboard'를 클릭한다. 10. 'Kubernetes Dashboard'라는 터미널이 열린다. 11. ..
JWT를 통한 회원 인증 시스템 구현하기 - 1
·
React
JWT JWT는 JSON Web Token의 약자로, 데이터가 JSON으로 이루어져 있는 토큰을 의미한다. 두 개체가 서로 안전하게 정보를 주고받을 수 있도록 웹 표준으로 정의된 기술 사용자의 로그인 상태를 서버에서 처리하는 데 사용할 수 있는 대표적인 두가지 인증 방식을 소개합니다. 세션 기반 인증 서버가 사용자가 로그인 중임을 기억하고 있다. 세션 기반 인증의 단점 서버를 확장하기가 번거로워질 수 있다. 토큰 기반 인증 로그인 이후 서버가 만들어주는 문자열로 사용자의 로그인 정보와 서버에서 발급되었음을 증명하는 서명이 들어있다. 토큰 기반 인증의 장점 서버에서 사용자 로그인 정보를 기억하기 위해 사용하는 리소스가 적다. 실습 토큰 기반 인증 시스템을 사용. User 스키마/모델 만들기 참고 리액트를 ..
DFS
·
알고리즘 풀이
이번주 스터디 주제는 DFS와 BFS이다. 첫번째로 풀어야하는 문제는 '백준 2606 바이러스' 이다. DFS에 대한 인강을 찾아봤는데 Deep 의 약자로 일반적으로 재귀함수로 구현되면 재귀를 타고, 타고, 타서 탈출조건에 도달하고 그 다음에 파라미터를 하나씩 바꿔 가면서 정답을 찾는 방식이라는 것까지만 알고 일단 문제를 풀어보기로 했다. 단순히 개념만 가지고 알고리즘을 푸려고 하니 어려워서 일단 다른 사람들이 만든 코드를 보고 공부하려고 했다. 그런데 다른 사람이 짠 코드 이해가 잘 가지 않는다. 그래서 DFS에 대한 개념공부를 하기로 했다. 공부는 예전에 인프런에서 구매해두었던 '자바스크립트 알고리즘 문제풀이(코딩테스트 대비)'를 활용하도록 하겠다. INDEX 재귀함수와 스택프레임 이진수 출력 이진트..
엘라스틱 서치
·
TIL(Today I Learned)
회사에서 일을 하다가 elastic search의 document를 지우려다가 index를 날려버렸다. 다행히 개발 서버였고 다른 서비스에 영향을 주지 않는 것는 거 같아 다행이었지만, 다음부터는 엘라스틱에 쿼리를 넣기 전에 테스트를 해봐야겠다. 아래는 내가 로컬에서 테스트하는 과정이다. 1. https://www.elastic.co/kr/downloads/elasticsearch 에서 elasticsearch-7.17.0를 설치한다. 2. https://www.oracle.com/kr/java/technologies/javase/jdk11-archive-downloads.html 에서 jdk-11.0.15_windows-x64_bin.exe를 설치했다. 3. '환경 변수'에서 JAVA_HOME, ES_..
Vue2에 jest적용하기
·
Vue
cracking vue.js사이트를 보며 진행했습니다. https://joshua1988.github.io/vue-camp/testing/overview.html Overview | Cracking Vue.js 테스트 코드가 필요한 이유 개발자에게 테스트 코드가 필요한 이유는 아래 2가지에 소모되는 시간을 줄이기 위해서입니다. 애플리케이션이 커지면 커질수록 위 시나리오를 점검하는데 많은 시 joshua1988.github.io 1. 라이브러리 설치 npm install --save-dev jest 2. 테스트 파일 생성 app.vue와 같은 폴더 내에 app.test.js라는 파일을 생성했다. 3. 테스트 파일 경로 설정 // jest.config.js module.exports = { testMatch..
Recap
·
타입스크립트
해시맵 만들기. 사전 같은 거. 해싱 알고리즘을 쓰는 완벽한 해시맵이 될 거고 단어 사전을 만들어 보자. type Word = { [key:string]: string } // 예시 let dict :Words = { "potato": "food" } property의 이름은 모르지만, 타입만을 알 때 사용한다. 제한된 양의 property 혹은 key를 가지는 타입을 정의해 주는 방법으로 object의 type을 선언 해야할 때 쓸 수 있다. 이 object는 제한된 양의 property만을 가질 수 있고 property에 대해서는 미리 알진 못하지만 타입만 알고 있을 때 쓰면된다. type Words = { [key:string]: string } class Dict { private words: W..