1. Model-Free Algorithm이란? [ Model-Free Algorithm ] 기존의 Model-Based Algorithm에서 Model은 MDP에서의 Transition Model을 의미한다. 즉, 어떤 상태에서 어떤 행동을 한다고 했을 때, 다음의 상태가 될 확률을 의미한다. 예를 들어 격자 공간 속의 로봇이 상하좌우로 이동을 할 때, 우리는 로봇의 다음 상태에 대해 직관적으로 파악할 수 있다. 이렇게 환경에 대해 알고 있으며, 우리의 행동에 따른 환경의 변화를 아는 알고리즘을 Model-Based Algorithm이라고 한다. Model-Free Algorithm은 Agent가 Action을 통해 Expected sum of future reward를 최대로 하는 Policy Fun..
1. CNN(Convolutional Neural Network)란? [ CNN(Convolutional Neural Network) ] CNN(Convolutional Neural Network)은 합성곱연산을 사용하는 ANN(Artificial Neural Network, 인공 신경망)의 한 종류로, 합성곱(Convolution)을 사용하면 3차원 데이터의 공간적 정보를 유지한 채 다음 레이어로 보낼 수 있다. 여기서 합성곱이란 이미지 내에서 Feature를 뽑기 위한 연산으로 이해를 하면 되는데, 이미지를 기준으로 합성곱을 구하는 것에 대해 설명하도록 하겠다. 위와 같은 Input Image에 대해 Feature Detector(Filter or Kernel)를 기준으로 합성곱을 한다고 하면, 모든..
1. Deep Learning(딥러닝)이란? [ Deep Learning ] Deep Learning은 autonomous, self-teaching system으로 어떤 pattern을 찾기 위한 알고리즘을 학습시키기 위해 존재하는 데이터를 사용한다. 이미지에서 고양이를 찾기 위해 Deep Learning을 사용할 수 있다. 고양이가 있는 이미지와 없는 수백만장의 이미지를 학습 데이터로 사용하다보면 edges, shapes, colors 등과 같은 이미지 데이터를 사용하고 분류하는 패턴을 정립하게 된다. 이러한 패턴들은 학습데이터를 통해 생성한 Model을 기반으로 새로운 이미지를 보고 고양이의 포함여부를 알준다. Deep Learning 알고리즘은 인간의 뇌의 뉴런구조를 흉내난 인공 신경망을 사용한다..
현대 웹서비스에서는 토큰을 사용하여 사용자들의 인증 작업을 처리하는 것이 가장 좋은 방법이다. 이번에는 토큰 기반의 인증 시스템에서 주로 사용하는 JWT(Json Web Token)에 대해 SpringBoot와 Spring Security 기반으로 직접 제작해보도록 하겠다. 1. Spring Security 처리 과정 Spring Security 아키텍쳐는 위와 같으며 각각의 처리 과정에 대해서 자세히 알아보도록 하자.(아래에서 설명하는 내용은 Json Web Token을 활용한 Spring Security의 구현 방식으로, Session과 Token 기반의 차이점에 대해서는 여기를 참고하시고, Form을 활용한 Session기반의 구현 방식이 궁금하시다면 여기를 참고해주세요!) [ 0. 사전 세팅 ] ..
현대 웹서비스에서는 토큰을 사용하여 사용자들의 인증 작업을 처리하는 것이 가장 좋은 방법이다. 이번에는 토큰 기반의 인증 시스템에서 주로 사용하는 JWT(Json Web Token)에 대해 알아보도록 하겠다. 1. JWT(Json Web Token)란? [ JWT 개념 ] JWT(Json Web Token)란 Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token이다. JWT는 토큰 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 안전하게 전달한다. 주로 회원 인증이나 정보 전달에 사용되는 JWT는 아래의 로직을 따라서 처리된다. 애플리케이션이 실행될 때, JWT를 static 변수와 로컬 스토리지에 저장하게 된다. static 변수에 저장되는 이유는..