위상정렬이란? 순서가 정해져있는 작업을 차례로 수행해야 될 경우, 그 순서를 결정하는 알고리즘 이다. 그래프에 존재하는 각 정점들의 선행 순서를 위배하지 않으면서 모든 정점을 나열하는 것이다. 위상정렬 알고리즘 - 그래프가 존재 - 그래프에는 노드가 존재하며 각 노드에는 방문 순서가 존재한다. - 하나의 그래프에는 여러개의 위상정렬이 가능하다. - 위상정렬 도중 그래프에 남아있는 노드 중 incoming이 0인 정점이 없다면, 위상정렬 알고리즘으로 해결할 수 없는 그래프이므로 알고리즘 실행 종료 - Queue를 이용한다 - 알고리즘 실행 순서 1. incoming이 없는 node부터 시작한다. 2. outgoing node로 이동 3. outgoing node에서 incoming 숫자 1감소 4. 해당 ..
최근 빗썸 Open API를 이용하여 가상화폐에 대한 데이터를 가져오려고 하고 있다. "https://api.bithumb.com/public/ticker/all_KRW" url을 get으로 요청을 보냈는데 아래와 같은 오류를 만났다. CORS정책에 의해 block이 되었다고 하며, request의 credentials mode가 include 일 경우 'Access-Control-Allow-Origin' header는 wildcard('*')가 되면 안된다는 오류 내용이다. 사실 CORS 문제는 이전에도 부딪친 적이 있다. 개인 프로젝트로 구축한 nest서버와 react application간 통신을 할때 CORS문제를 마주한 적이 있었다. https://docs.nestjs.com/security/c..
Database, DB - 여러 사람이 공유하여 사용할 목적으로 체계화하여 관리하는 데이터의 집합. - 작성된 카테고리별 통합 정보를 저장하여 운영할 수 있는 공용 데이터의 묶음 - 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합 - DBMS에 의해 관리 된다. - Data의 작성 및 Query 작업에 구조화 된 질의언어인 SQL을 사용한다. SQL(Structured Query Language)이란? - SQL은 데이터를 Query, 조작 및 정의하고 액세스 제어를 제공하기 위해 거의 모든 Relational DB에서 사용되는 언어이다. - 목적에 따라 3가지 로 나눈다. 종류 역할 예시 DDL(Data Definition Language) DB 테이블 생성, 삭제, 업..
https://leetcode.com/problems/count-of-matches-in-tournament/submissions/ Count of Matches in Tournament - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 토너먼트 경기가 진행된다. 참가하는 팀의 숫자가 주어진다. 토너먼트경기로 치뤄지며, 팀 숫자가 홀수팀일 경우 부전승 팀이 생긴다. 총 진행되는 경기 수를 반환 impl Solution { pub fn number_of_match..
https://leetcode.com/problems/count-and-say/ Count and Say - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 숫자를 입력받으면 숫자에 대한 counting을 진행한다 n = 1 return 1 n = 2 return 11 (1이 1개) n = 3 return 21 (1이 2개) n = 4 return 1211 (2가 1개, 1이 1개) n = 5 return 111221 (1이 1개, 2가 1개, 1이2개) impl..
https://leetcode.com/problems/rotate-image/ Rotate Image - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com NxN의 크기를 가진 2차원 배열을 시계방향으로 한번 회전 시키는 문제이다. impl Solution { pub fn rotate(mut matrix: &mut Vec) { let mut v : Vec = matrix.clone(); let n = matrix.len(); for i in 0..n{ for j i..
리덕스 리덕스는 상태(State)를 관리 라이브러리이다. 상태(State) 란? 컴포넌트 내 mutable 데이터 저장소이다. mutable하다는 의미는 상태값을 변경할 수 있다는 것이고 뷰(render)에서 상태를 이용하고, 상태가 변경되면 뷰가 리랜더링(Rerendering)되는 성격을 가지고 있다. 화면에서 사용자의 Input값을 감지하는 상황을 예를 들어보자 위의 사진은 useState hook을 이용하여 입력받을 데이터데 대한 초기화를 해놓은 형태이다. 이 사진은 input박스의 데이터 변화를 감지하여 state에 데이터를 변경해주는 코드이다. 이런 형태로 state를 관리할 수 있다. 이러한 데이터들을 하위컴포넌트 또는 상위컴포넌트로 전달할 경우, 컴포넌트 트리가 깊어지면 상태관리가 복잡해질 ..
React로 front-end부분을 만들다 문제점을 발견했다. 위의 사진과 같이 navigation bar가 뻥 뚫려버리는 상황이었다. 로그인 박스의 크기가 커서 width가 100%를 초과하고, navbar의 width 100%이라 생긴 문제다. window size는 모든 컴포넌트에서 필요할 것으로 생각되어 redux로 화면 사이즈를 관리하기로 했다. 화면 사이즈가 변경되면 변경된 사이즈로 styled-component에 대고 로그인 박스의 크기를 조정할 생각이었다. redux에 window 크기를 저장 해놓고 window 크기가 변경될 때 마다 dispatch했는데 문제점을 발견했다. pixel단위로 dispatch를 하는 것이었다. 이러면 함수를 계속 호출하게 되고 성능상 문제가 생길 수 있다. ..