백트래킹 알고리즘(BackTracking)
백트래킹(BackTracking) 해를 찾는 도중 해가 아니어서 막히면, 되돌아가서 다시 해를 찾아가는 기법을 말한다. 최적화 문제와 결정 문제를 푸는 방법이 된다. 쉽게 설명해서 어떤 문제를 푸는데 있어 모든 경우의 수를 시도하여 문제의 정답을 찾아나간다. 하지만 백트래킹에서는 한정 조건 에서의 모든 경우의 수를 시도하는 것이기 때문에 ...
백트래킹(BackTracking) 해를 찾는 도중 해가 아니어서 막히면, 되돌아가서 다시 해를 찾아가는 기법을 말한다. 최적화 문제와 결정 문제를 푸는 방법이 된다. 쉽게 설명해서 어떤 문제를 푸는데 있어 모든 경우의 수를 시도하여 문제의 정답을 찾아나간다. 하지만 백트래킹에서는 한정 조건 에서의 모든 경우의 수를 시도하는 것이기 때문에 ...
리액트를 사용해서 개발을 하고 나면 npm build 입력 한 방에(CRA 기준) 빌드가 완료가 된다. 리액트 개발에서 대표적인 라이브러리인 create-react-app은 개발 환경부터 빌드까지 모든 것이 다 갖추어져 있기 때문이다. 리액트를 설치할 때 내부에서 이미 웹팩을 사용해서 Development Environment 개발 환경을 생성하기...
순차 탐색과 이진 탐색 순차 탐색(Sequential Search) 데이터가 담겨있는 리스트를 앞에서부터 하나씩 살펴보아서 원하는 데이터를 찾는 방법이다. 시간 복잡도: O(n) const sequentialSearch = (list, search) => { for (let listItem of list) if (list...
그리디 알고리즘(탐욕법, Greedy Algorithm) 최적의 값을 구해야 하는 상황에서 사용되는 근시안적인 방법론으로 각 단계에서 최적이라고 생각되는 것을 선택 해 나가는 방식으로 진행하여 최종적인 해답에 도달하는 알고리즘이다. 이때, 항상 최적의 값을 보장하는것이 아니라 최적의 값의 근사한 값을 목표로 하고 있다. 주로 문제를 분할 ...
기본적으로 HTTP통신은 무상태(stateless)이다. 무상태란 말 그대로 클라이언트와 서버의 연결된 상태를 유지하지 않는다. 때문에 한번의 요청과 한번의 응답이 끝나면 서로 다른 요청 간에는 어떠한 정보도 공유하지 않는다. 그렇다면 로그인과 같이 상태를 계속 유지하기 위해서는 어떻게 할까? 웹 서버는 클라이언트 인증을 위해 인식표를 나눠주어 사...
이전 게시글에서 쿠키, 세션, 토큰 서버가 클라이언트 인증을 확인하는 방식에는 3가지(쿠키, 세션, 토큰)가 있다고 설명하였다. 서버는 사용자 자체를 인식하는 것이 아니라 사용자가 가진 인식표를 인식하는 것이고, 이 인식표는 언제든지 탈취될 가능성이 있기 때문에 아주 세심하게 관리해야 한다. 이 인식표를 어떻게 관리해야 하는지 알아보기 위해 브라우...
이전 포스트에서 7가지 자료구조를 알아보았다. 이러한 자료구조들을 사용하면 컴퓨터에서 데이터를 더욱 빠르고 효율적으로 처리할 수 있고, 어떤 자료구조를 사용하느냐에 따라 프로그램의 성능이 크게 달라질 수 있다. 자료구조를 선택해야할 때 가장 크게 고려해야할 사항은 시간복잡도(Time complextity)와 공간복잡도(Space complexity...
Amplify는 사용자에게 빠른 개발 및 배포 프로세스를 제공하지만 AWS WAF가 직접 통합되지 않기 때문에 AWS Amplify에서 호스팅하는 많은 웹 애플리케이션에는 방화벽이 연결되어 있지 않다. 웹 방화벽(WAf: Web Application Firewall) 웹 애플리케이션으로 이동하는 악의적인 HTTP/S 트래픽을 필터링, 모니터링 및 ...
❗ 문제 상황 어느날 갑자기 로그인 후 메인 페이지로 넘어가는데 계속 로딩이 뜨더니 에러가 발생하였다. 처음에 에러로 예상한 부분은 두가지였다. 로그인 기능 문제 호스팅 서비스 문제 먼저 1의 로그인 기능을 확인해 보았다. 로그인 기능은 AWS의 Congnito 서비스를 이용하였고 확인 결과 토큰이 쿠키에 잘 저장되어...