Search

#006

history 기능 페이지 역사를 기억한다.
.back() 이전 페이지로 가게 할 수 있다. .back(-1) / .back(-2) 으로 정할 수 있다. history back은 기록했던 것들이 다 남아있다.
.href =
안 한일 없나 살펴보는 것이 promise
eventLoop에 등록되어서 할일이 없을때 실행된다.
자바스크립트는 동기적으로 할일을 모두 등록하고 메인스레드가 다실행되고 나서 비동기적으로 EventLoop를 처리한다.
자바는 컨텍스트 스위칭 때문에 스크립트보다 느리다.
노드js는 단일 스레드 기반.
IO가 있는 프로그램은 전부다wait가 걸린다.
웹에 최적화 된 것은 단일 스레드 이다.
제티는 단일 스레드 기반
단일 스레드의 EventLoop기법이 빠르다.
일반 Controller는 파일로 리턴하고
@ResponseBody 가 붙으면 return을 문자열로 응답한다.
@ResponseBody에 대해서
View Resolver에 대해서
테스트하
에러와 페이지 응답을 섞는 방법???이 필요하다.
@Test public void back_test() { String result = Script.back("권한이 없어요"); System.out.println(result); }
JavaScript
복사
핸들러를 사용하는 이유는?? 스프링에서는 throws를 날리면 Dispatcher Servlet으로 가게되는데, 우리가 이걸 제어를 할 수가 없다. 그래서 @ControllerAdvice를 사용해서 throws를 핸들러가 받게 해서 핸들러를 직접 제어할 수 있게한다.
단방향과 양방향 암호
단방향은 Hash
Bcrypt도 단방향 Hash이다. SHA512
양방향에서 대칭키와 비대칭키가 있다.
대칭키 AES를 기억하자.
비대칭키 부인방지, RSA 디지털 서명 - 현존 최고의 알고리즘
대칭키의 단점은
키전달 문제
신원 인증 문제, 내가 잠궜다는 것을 증명할 수 없다.
BCrypt.checkpw()
public User findByUsername(String username) { Query query = em.createNativeQuery("select * from user_tb where username=?", User.class); query.setParameter(1, username); try { User user = (User) query.getSingleResult(); return user; } catch (Exception e) { throw new RuntimeException("아이디를 찾을 수 없습니다."); } }
JavaScript
복사