본문 바로가기
728x90
반응형

Java33

[Spring] Chrome 양식 다시 제출 확인 ERR_CACHE_MISS 해결방법 Chrome에서 POST 요청으로 페이지 이동후 뒤로 가기를 하면 아래와 같은 확인 페이지를 제공하도록 되어있습니다. ​ ​ ​Spring security를 사용하면 headers cacheControl를 disabled 처리함으로써 해결합니다. @Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) { http // ... .headers(headers -> headers .cacheControl(cache -> cache.disable()) ); } } Cache Control.. 2020. 10. 31.
[Java8] 중복 데이터 제거를 위한 Stream distinct 중복 데이터를 제거하기 위해 Stream distinct를 사용합니다. 동일한 객체의 판단하는 기준은 Object.equals(Object)의 결과 값이다. String 객체의 경우 equals()가 이미 구현되어 있습니다. ​ - Stream.distinct() : Returns a stream consisting of the distinct elements (according to Object.equals(Object)) of this stream. List strings = Arrays.asList("hello", "world", "hello", "java", "hello"); strings.stream().distinct().forEach(System.out::println); // "hello".. 2020. 10. 31.
[java] StringBuffer getChars (Chars to String) https://www.tutorialspoint.com/java/lang/stringbuffer_getchars.htm Java.lang.StringBuffer.getChars() Method - Tutorialspoint Java.lang.StringBuffer.getChars() Method Description The java.lang.StringBuffer.getChars() method copy the characters from this sequence into the destination character array dst. The first character to be copied is at index srcBegin. The last character to www.tutorialspoin.. 2020. 10. 31.
[spring] @ResponseBody Annotation vs ResponseEntity @ResponseBody annotation을 사용하면 스프링이 반환 객체를 http response body로 변환합니다. ResponseEntity는 @ResponseBody annotation과 유사하게 작동합니다. 그러나 ResponseEntity 객체를 생성할 때 response header를 http response에 추가할 수도 있습니다. responseEntity를 반환 객체로 사용하는 경우 @ResponseBody annotation을 사용할 필요가 없습니다. 예제) @ResponseBody annotation 사용 @ResponseBody @RequestMapping("/getData") public ResJsonVO getData(DataVO param) { try { return t.. 2020. 10. 31.
[java] 임시 비밀번호 생성 (Random vs SecureRandom vs RandomStringUtils) java.util.Random 클래스는 난수를 생성할 때 seed값으로 시간을 이용합니다. 그래서 동일한 시간에 Random 클래스를 사용하여 난수를 사용하면 동일한 값이 리턴됩니다. 예측 가능한 난수를 사용하는 경우 공격자가 SW에서 생성되는 다음 숫자를 예상하여 시스템을 공격할 수 있습니다. 시큐어코딩 가이드 - SW 보안약점 47개 항목 중 적절하지 않은 난수 값 사용 (Use of Insufficiently Random Values)에 해당됩니다. 반면에 java.security.SecureRandom 클래스는 예측할 수 없는 seed를 이용하여 강력한 난수를 생성합니다. 임시 비밀번호 생성 getRamdomPassword(10)를 호출하면 10 글자의 임시비밀번호가 생성됩니다. import ja.. 2020. 10. 31.
[springboot] REST API 적용하기 REST(Representational State Transfer) WWW과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식. 자원을 이름으로 구분하고 해당 자원의 상태를 주고받는 모든 것이 REST라고 할 수 있지만, 일반적으로 REST라고 하면 좁은 의미로 HTTP를 통해 CRUD를 실행하는 API를 뜻한다. HTTP METHOD에서 PUT과 PATCH의 차이점은 아래 포스트에서 확인하세요. [HTTP METHOD] PUT vs PATCH 차이점 HTTP 메소드 중 PUT 과 PATCH가 있다. 뭔 차이여... PUT : 자원의 전체 교체, 자원내 모든 필드 필요 (만약 전체가 아닌 일부만 전달할 경우, 전달한 필드외 모두 null or 초기값 처리되니 주의!!) PATCH : �.. 2020. 10. 14.
[springboot] h2-console 접속이 안될 경우 문제 해결 h2-console 접속이 안될 경우 해결 방법을 알려드리겠습니다. http://localhost:8080/h2-console/ 1. h2-console enabled h2-console 접속이 안된다면 application.yml에 아래 내용을 추가합니다. spring h2: console: enabled: true 2. Spring Security + H2 잘 작동하던 H2 데이터베이스가 Spring Security를 적용하자 작동을 하지 않는 이유는 Spring Security에서 H2 데이터베이스 콘솔 접근을 차단했기 때문입니다. 다음과 같이 Java Security Configuration을 설정해줍니다. @Configuration @EnableWebSecurity public class Web.. 2020. 10. 14.
[java] 예외처리 Exception handling 이 글은 Java의 정석 (남궁성/도우출판) 기반으로 작성되었습니다. 1. 프로그램 오류 컴파일 에러(compile-time error): 컴파일할 때 발생하는 에러 런타임 에러(runtime error): 실행할 때 발생하는 에러에러(error) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류예외(exception) : 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류 (처리 가능한 오류) 2. 예외처리의 정의와 목적 에러(error)는 어쩔 수 없지만, 예외(exception)는 처리해야 합니다. 예외처리(exception handling)는 프로그램 실행 시 발생할 수 있는 예외의 발생에 대한 코드를 작성하는 것입니다. 예외처리의 목적은 프로그램의 비정상 종료를 막고, 정상적인 실행상.. 2020. 10. 11.
[java] 자바 컴파일 : 향상된for이 while로 변경? java 파일을 build 후 class 파일을 디컴파일러 해본적이 없어서 몰랐는데 향상된 for문이 빌드 후 while문으로 변경된다고 해서 컴파일에 대해 끄적여보겠습니다. ​ ​ 일단 자바의 컴파일 절차는 이렇습니다. 자바 소스 코드 파일(.java) -> javac 컴파일러 -> JVM 바이트코드(.class) ​ 컴파일의 세부 단계는 어휘 분석, 구문 분석, 의미 분석, 중간 코드 생성, 중간 코드 최적화로 구성됩니다. ​ 향상된 for문이 빌드 후 while문으로 변경되는 것은 중간 코드 최적화 때문입니다. 중간 코드 최적화(Code Optimization)는 중간 코드가 더 효율적인 기계어로 변환되도록 최적화하는 과정이 수행됩니다. ​ 1.핍홀(Peephole) 최적화 중복 명령어 제거 도달 .. 2020. 10. 11.
[java] 자바에서 split("|") 사용하기 - 이스케이프 처리 Splitting string with pipe character ("|") ​ 아무생각없이 자바 내장함수 split로 "|" 문자를 기준으로 자르다가 이 글을 쓰게됐습니다. 우선 아래 코드를 보시면, String str = "abc|def|ghk"; String[] s = str.split("|"); for (int i=0; i 2020. 10. 11.
728x90
반응형