앞으로 공부할 알고리즘. 공부가 끝나면 블로그에 정리 후 링크를 달아두기로한다. 

 

 

1. 정렬
  1.기본적인 정렬 알고리즘
    1. 선택 정렬Selection Sort
    2. 버블 정렬Bubble Sort
    3 .삽입 정렬Insertion Sort
  2. 고급 정렬 알고리즘
    1. 병합 정렬Merge Sort
    2. 퀵 정렬Quick Sort
    3. 힙 정렬Heap Sort
  3. 비교 정렬 시간의 하한
  4. 특수 정렬 알고리즘
    1. 기수 정렬Radix Sort
    2. 계수 정렬Counting Sort

2.선택 알고리즘
  1 평균 선형 시간 선택 알고리즘
  2 최악의 경우에도 선형 시간을 보장하는 선택 알고리즘

3.검색 트리  
  1. 레코드, 키의 정의 및 검색 트리
  2. 이진 검색 트리 
    1. 이진 검색 트리에서 검색
    2. 이진 검색 트리에서 삽입
    3 .이진 검색 트리에서 삭제
  3, 레드 블랙 트리
    1. 레드 블랙 트리에서 삽입
    2. 레드 블랙 트리에서 삭제
    3. 레드 블랙 트리의 작업 성능 분석
  4. B-트리
    1. B-트리에서 검색
    2. B-트리에서 삽입
    3. B-트리에서 삭제
    4. B-트리의 작업 성능 분석
  5. 다차원 검색 트리
    1. KD-트리
    2. KDB-트리
    3. R-트리
    4. 그리드 파일

4. 해시 테이블
  1. 해시 테이블 : 검색 효율의 극단
  2. 해시 함수
    1. 나누기 방법
    2. 곱하기 방법
  3. 충돌 해결
    1. 체이닝
    2. 개방 주소 방법
  4. 해시 테이블에서 검색 시간 분석

5. 집합의 처리
  1. 연결 리스트를 이용한 집합의 처리
    1. 작업의 개요
    2. 수행 시간
  2. 트리를 이용한 집합의 처리
    1. 기본 원리
    2. 연산의 효율을 높이는 방법

6. 동적 프로그래밍
  1. 어떤 문제를 동적 프로그래밍으로 푸는가
  2. 행렬 경로 문제
  3. 돌 놓기 문제
  4. 행렬 곱셈 순서 문제
  5. 최장 공통 부분 순서LCS

7. 그래프
  1. 그래프
  2. 그래프의 표현
    1. 인접 행렬을 이용한 방법
    2. 인접 리스트를 이용한 방법
    3 .인접 배열과 인접 해시 테이블
  3. 너비 우선 탐색BFS과 깊이 우선 탐색DFS
  4. 최소 신장 트리
    1. 프림 알고리즘
    2. 크루스칼 알고리즘
    3 .안전성 정리
  5. 위상 정렬Topological Sorting
  6. 최단 경로
    1. 다익스트라 알고리즘(음의 가중치를 허용하지 않는 경우 )
    2. 벨만-포드 알고리즘(음의 가중치를 허용하는 경우)
    3 .모든 쌍 최단 경로 알고리즘
    4 .사이클이 없는 그래프의 최단 경로
  7. 강연결 요소

8. 그리디 알고리즘
  1. 전형적인 그리디 알고리즘의 구조
  2. 그리디 알고리즘으로 최적해가 보장되지 않는 예
    1. 이진 트리의 최적합 경로 찾기
    2. 보따리 문제
    3 .동전 바꾸기
  3. 그리디 알고리즘으로 최적해가 보장되는 예
    1. 최소 신장 트리
    2. 회의실 배정 문제
    3 .그 밖의 예
  4. 매트로이드 : 그리디 알고리즘으로 최적해가 보장되는 공간 구조
    1. 매트로이드의 정의와 예
    2. 매트로이드의 확장과 포화
    3. 매트로이드 구조이면 그리디 알고리즘으로 최적해 보장
    ★ 4. 문제 공간 탐색 관점에서 본 매트로이드

9. 문자열 매칭
  1. 원시적인 매칭 방법
  2. 오토마타를 이용한 매칭
  3. 라빈-카프 알고리즘
  ★ 4. KMP 알고리즘
  5. 보이어-무어 알고리즘

10. NP-완비
  1. 문제의 종류
  2. Yes/No 문제와 최적화 문제
  3. NP
  4.. 다항식 시간 변환
  5. NP-완비
  6. NP-완비 문제들
  7. NP-하드를 최적화 문제로 확장하기
  ★ 8. 근사해 구하기
  ★ 9. 현상금 걸린 문제들

11.상태 공간 트리의 탐색
  1. 상태 공간 트리
  2. 백트래킹
    1. 미로 찾기 문제
    2. 색칠 문제
  3. 한정 분기
  4. A* 알고리즘
    1. 최단 경로 찾기 문제
    2. TSP
  Drift 공간 탐색과 끌개

반응형

'프로그래밍 > 알고리즘' 카테고리의 다른 글

레코드, 키의 정의 및 검색 트리  (0) 2020.12.29
삽입정렬Insertion Sort  (0) 2020.12.27
버블 정렬Bubble Sort  (0) 2020.12.26
선택 정렬Selection Sort  (0) 2020.12.22

스프링 부트에서 스프링 시큐리티를 사용할때 템플릿 엔진을 머스타쉬를 사용해서 로그인 / 회원가입등을 시도할경우 미리 설정한 리다이렉트 주소로 가게 되는경우가있다. 

이때 에러로그가 안찍혀서 난감해지는대 이럴땐 로그레벨을 낮추면 더 자세한 로그를 볼 수 있다. 

#application.properties

#logging
logging.level.root=debug

위와같이 application.properties 파일에 로깅 레벨을 디버그로 설정해준다( 디폴트는 info)

설정하고 다시 로그인 혹은 회원가입을 시도하면 아까랑은 다른 메시지를 볼 수 있는데 스프링 플터체인 로그가나오면서 "csrf"어쩌고 하는 로그가 나온다.

CSRF 란 Cross-site request forgery의 약자로 타사이트에서 본인의 사이트로 form 데이터를 사용하여 공격하려고 할 때, 그걸 방지하기 위해 csrf 토큰 값을 사용하는 것이다. 참조: velog.io/@max9106/Spring-Security-csrf

csrf에대해 서치를해보니 mustache는 csrf토큰을 기본적으로 제공을 안해주기때문에 생기는 문제였다. 
서치를 좀 해보니 인터셉터를 구현해서 모델에 어트리뷰트로 넣어주는 방법이 있었으나... 그럴리가 없다는 생각에 좀더 검색해보니...

스택오버플로우에서 발견했다. stackoverflow.com/questions/26397168/how-to-use-spring-security-with-mustache
역시 설정에 있었다. 다시한번 어플리케이션 프로퍼티를 열고 

#application.properties

#logging
logging.level.root=debug

#mustache
spring.mustache.expose-request-attributes=true

spring.mustache.expose-request-attributes=true 라고 추가해준다.

이제 머스타쉬에서 csrf를 사용할 수 있다. 

 폼에

  <input type="hidden" name="_csrf" value="{{_csrf.token}}" />

 

이렇게 히든으로 csrf값을 넣어주면 csrf로 인한 필터는 통과할 수 있게되었다. 

반응형

'프로그래밍 > 삽질내역' 카테고리의 다른 글

Intellij 톰캣 에러로그 한글깨짐현상  (0) 2019.11.12

유저생성

create user 'ms'@'%' identified by '1234'

% ==> 모든 도메일


**
create user '유저명'@'도메일' identified by '비밀번호''

 

권한부여 

grant all priviliges on test.* to 'ms'@'%' ; 

**
grant all priviliges on [db명].* to 'user name'@'domain';

참조 : www.codingfactory.net/11336

반응형

+ Recent posts