본문 바로가기

분류 전체보기

(60)
캐시 남아서 스크립트 확인 안되는 경우 해결하기 개발자도구 - 네트워크 탭에서 disable cache 체크하기
TRANSLATE 함수로 정규식같은 효과 내기 0!1DDDFSDDFSD02@-9874-5612AWE!@ 라는 문자열에서 숫자만 추출하고 싶다면, 정규식을 사용하는 것이 가장 편하고, 빨리 생각나는 방법이다. 하지만 낮은 오라클 버전에선 정규식을 사용할 수 없다. 그 때 사용할 수 있는 것이 바로 TRANSLATE함수다. 숫자만 추출할 때 SELECT TRANSLATE('0!1DDDFSDDFSD02@-9874-5612AWE!@','0123456789'||'0!1DDDFSDDFSD02@-9874-5612AWE!@' ,'0123456789') AS TRANSLATE FROM DUAL; TRANSLATE(인자1, 인자2, 인자3) 이라고 할 때, 인자 1에 있는 숫자만 남기기 => 숫자는 0~9까지 인자 2 인 치환대상에 0123456789+ 인자 1(적용..
인덱스란? 인덱스란? 인덱스는 테이블에 붙여진 색인. 역할 : 검색 속도의 향상 목차만 존재하는 책은 없음 ⇒ 테이블과 별개로 독립된 데이터 베이스 객체로 작성되지만 인덱스 만으로는 아무 의미가 없다 ⇒ 대부분의 데이터 베이스에서 테이블을 삭제하면 인덱스도 같이 삭제됨 검색에 사용하는 알고리즘 대표적으로 쓰이는 검색 알고리즘으로는 ‘이진 트리 (binary tree, b-tree)’가 있다. 이진트리는 탐색 방법이라기보다 데이터 구조에 가깝다. ‘이진 탐색’을 검색하기 쉬운 구조로 만든 것이 ‘이진 트리’이다. 풀 테이블 스캔(full table scan) 인덱스가 지정되지 않은 테이블을 검색함. 행이 1000건 있으면 최대 1000번 값을 비교함 이진 탐색(binary scan) 차례로 나열된 집합에 대해 유효한..
스프링부트 한글 깨짐 오류(jpa data utf-8 encoding) 목차 이 글은 개인프로젝트 - 스프링부트 with JPA로 jostory 프로젝트의 게시글 쓰기를 하다가 발생한 오류를 기록한 글이다. 오류 글쓰기를 하면 모든 한글이 다 이렇게 나옴(+나중에 보니 회원가입할때도 똑같이 한글 깨지더라) 원인 추론 1. summer note 관련 오류인가? 이유 : 딱 그거 추가했을때부터 안되서 라이브러리 끄고 시도해봄 결과 : 아님 2. db에 인코딩이 안됬나? utf-8로 잘되있었지만 혹시 몰라서 변경 후 다시 시도 강제로 데이터를 넣었더니 한글이 아주 잘보임... db는 문제없음 3. 파일 인코딩 검색했더니 저 부분을 utf-8로 바꿔보란다..했는데 안됨 4.yml 파일 수정 server.servlet.encoding.force-response: true 추가하기 부..
11. 스프링 시큐리티 로그인 과정 로그인 요청이 오면 1. SecurityConfig.class의 loginProcessingUrl => /auth/loginProc이 가로챔 2.가로챈 정보를 PrincipalDetailServiced의 loadUserByUsername이 username을 findByUsername로 비교해서 principal 객체를 만들고, 값을 리턴하기 전 3. 다시 SecurityConfig.class의 사용자가 입력한 패스워드를 encodePWD()로 암호화 후 , db의 값과 비교해서 정상인지 확인 후 4. 그 값을 스프링 시큐리티 영역의 user정보를 저장함. PrincipalDetailServiced의 PrincipalDetail 로 감싸져서 저장이 됨 (PrincipalDetail가 UserDetails를..
xss, csrf공격이란? 1. xss 공격자의 Javascript 코드를 입력해놓으면 실제 사용자가 동적인 웹 페이지를 클릭하거나 열람할 때 페이지에 의도하지 않은 악성 스크립트가 실행되는 공격 방식 중 하나 게시판 글 작성시 script를 작성하면 , 저 글이 열리면 alert 가 5만번 작동해서 사이트 고장 => 네이버 제공 오픈소스 : lucy 필터 등으로 스크립트 작성 못하게 거를 수 있음 2.csrf 공격 CSRF란 사이트 간 요청 위조 (Cross-site request forgery)의 줄임말로 사용자가 의지와는 무관하게 공격자가 의도한 행위를 특정 웹사이트에 요청하는 공격을 의미. 차이점: XSS 공격은 javascript로 클라이언트에서 발생. CSRF 공격은 서버로의 공격. 하이퍼 링크 속에 관리자만 접속할 수..
10.비밀번호 해쉬화 후 회원가입하기 그 전에, ddl-auto를 create로 바꾸고 한번 실행시켰다가 다시 update로 바꿔줌(데이터 날리기 위해) 이제 비번 해쉬화된거아니면 안되게 할거임 해쉬의 특징
9. 스프링 시큐리티 로그인+ 커스터마이징 pom.xml org.springframework.security spring-security-taglibs org.springframework.boot spring-boot-starter-security org.springframework.security spring-security-test test 추가! 그리고 UserApiController의 전통적인 로그인 (이전 글 참고) 그리고 실행하면 스프링 시큐리티가 어떤 페이지를 들어가든 가로채서 로그인을 하게 한다 아이디는 그냥 user고 비번은 저 위에있는 해쉬넘버 => 기본적으로 스프링이 세션을 만들어서 저장해줌(principal에) 그리고 스프링 시큐리트 태그라이브러리를 사용해줌 header의 윗부분에 넣어준다 principal을 여기서 쓸수 있..