// onpageshow의 경우 page 호출되면 무조건 실행됨
window.onpageshow = function (event){
//뒤로가기로 페이지 접근했는지 확인
if(event.persisted || (window.performance && window.performance.navigation.type == 2)){
//쓰고 싶은 코드
}
}
이렇게 하면 지금 해당 페이지가 뒤로가기로 접근했는지 확인할 수 있다!
하지만 막상 코드를 입력해보면 navigation.type == 2 부분이deprecated 되어 취소선이 그어져있는 걸 볼 수 있다.
그대로 써도 기능은 하지만 영 찝찝하다면 밑에 내용으로 쓰면 된다!
// onpageshow의 경우 page 호출되면 무조건 실행됨
window.onpageshow = function (event){ //뒤로가기로 페이지 접근했는지 확인
if(event.persisted || (window.performance && window.performance.navigation.type == 2) || (window.performance.getEntriesByType("navigation")[0].type == "back_forward")){
//쓰고 싶은 코드
}
}
if문 안에 새롭게 window.performance.getEntriesByType("navigation")[0].type == "back_forward" 가 추가된 걸 볼 수 있다.
프로젝트를 진행하며 수많은 고난과 역경을 겪었지만 그중 가장 곤란했던 문제는 달러 상품 가격을 설정하는 과정에서 발생했다.
소수점 단위의 숫자들을 연산하는 과정에서 미세한 수치지만 오차가 발생했고,
해결 방법을 열심히 찾아본 결과 이 오차는 부동소수점을 사용하는 double 자료형의 문제점인 것으로 확인했다.
오차가 왜 생겼을까?
컴퓨터는 0과 1로 이루어진 2진법을 사용하여 연산을 수행한다. 그렇기 때문에 10진법으로 이루어진 수를 2진법으로 변환하는 과정에서 오차가 발생할 확률이 존재한다.
0.2 를 2진법으로 변환할 경우 0.001100110011... 과 같이 0011 이 무한으로 반복되는 수가 된다. 0.3 을 2진법으로 변환할 경우도 마찬가지로 0.01001100110011... 과 같이 0011 이 무한으로 반복되어 컴퓨터는 0.2 0.3 과 같은 숫자들을 정확한 값으로 저장하지 않고 근사치로 저장하게 된다.
비교하려는 수가 비교되는 수 보다 클 경우 1, 같을 경우 0, 작을 경우 -1 을 리턴한다.
BigDecimal a = new BigDecimal("2");
BigDecimal b = new BigDecimal("1");
BigDecimal c = new BigDecimal("1");
System.out.println(a.compareTo(b));
System.out.println(b.compareTo(a));
System.out.println(b.compareTo(c));
/***
private String soliloquy() throws Exception {
return "속으론 여러번 고민한게 있었는데 이거는 그냥 쓸데없는거같지만 뭐랄까....
메모리를 사용하는 레디스 캐시를 사용하면 1유저의 세션을 저장한다고 했을때 용량산정에
대한?? 이게 고민 할 문제가 맞을까요 ...? .. 암튼";
}
***/
버전은 자유겠지요 ... 저는 https://mvnrepository.com/ 에서 종속성을 검색한 후에 최근 몇개월간 중 많이 사용된 버전을 주로 사용 합니다. 전세계 테스터들이 좋으니까 썻겟죠?