코스모스

백트래킹 알고리즘(BackTracking)

백트래킹(BackTracking) 해를 찾는 도중 해가 아니어서 막히면, 되돌아가서 다시 해를 찾아가는 기법을 말한다. 최적화 문제와 결정 문제를 푸는 방법이 된다. 쉽게 설명해서 어떤 문제를 푸는데 있어 모든 경우의 수를 시도하여 문제의 정답을 찾아나간다. 하지만 백트래킹에서는 한정 조건 에서의 모든 경우의 수를 시도하는 것이기 때문에 ...

그리디 알고리즘(탐욕법, Greedy Algorithm)

그리디 알고리즘(탐욕법, Greedy Algorithm) 최적의 값을 구해야 하는 상황에서 사용되는 근시안적인 방법론으로 각 단계에서 최적이라고 생각되는 것을 선택 해 나가는 방식으로 진행하여 최종적인 해답에 도달하는 알고리즘이다. 이때, 항상 최적의 값을 보장하는것이 아니라 최적의 값의 근사한 값을 목표로 하고 있다. 주로 문제를 분할 ...

쿠키, 세션, 토큰

기본적으로 HTTP통신은 무상태(stateless)이다. 무상태란 말 그대로 클라이언트와 서버의 연결된 상태를 유지하지 않는다. 때문에 한번의 요청과 한번의 응답이 끝나면 서로 다른 요청 간에는 어떠한 정보도 공유하지 않는다. 그렇다면 로그인과 같이 상태를 계속 유지하기 위해서는 어떻게 할까? 웹 서버는 클라이언트 인증을 위해 인식표를 나눠주어 사...

웹 쿠키과 스토리지

이전 게시글에서 쿠키, 세션, 토큰 서버가 클라이언트 인증을 확인하는 방식에는 3가지(쿠키, 세션, 토큰)가 있다고 설명하였다. 서버는 사용자 자체를 인식하는 것이 아니라 사용자가 가진 인식표를 인식하는 것이고, 이 인식표는 언제든지 탈취될 가능성이 있기 때문에 아주 세심하게 관리해야 한다. 이 인식표를 어떻게 관리해야 하는지 알아보기 위해 브라우...

시간복잡도와 공간복잡도

이전 포스트에서 7가지 자료구조를 알아보았다. 이러한 자료구조들을 사용하면 컴퓨터에서 데이터를 더욱 빠르고 효율적으로 처리할 수 있고, 어떤 자료구조를 사용하느냐에 따라 프로그램의 성능이 크게 달라질 수 있다. 자료구조를 선택해야할 때 가장 크게 고려해야할 사항은 시간복잡도(Time complextity)와 공간복잡도(Space complexity...