java ZoneId.getAvailableZoneIds() 전체 타임존 리스트 확인하기 TimeZone Asia/Seoul
2024. 3. 8. 09:43
Java
가끔 타임존을 확인할 때가 있다 GMT+8인지 확인이 필요하다. 그래서 자바소스 코드를 이용해 아래 데이터를 추출하였다 필요한 분은 가져다 쓰길 바란다 GMT+03:00(3) : Asia/Aden GMT-04:00(-4) : America/Cuiaba GMT-09:00(-9) : Etc/GMT+9 GMT-08:00(-8) : Etc/GMT+8 GMT+03:00(3) : Africa/Nairobi GMT-04:00(-4) : America/Marigot GMT+05:00(5) : Asia/Aqtau GMT+12:00(12) : Pacific/Kwajalein GMT-06:00(-6) : America/El_Salvador GMT+07:00(7) : Asia/Pontianak GMT+02:00(2) : Af..
Springboot OncePerRequestFilter를 이용한 HttpServeletRequest의 body 값 무제한으로 읽어보기, request body 한번만 읽어올수 있는 문제 해결
2023. 7. 10. 18:05
Java/Spring
우선 다양한 방법으로 request body 한번만 읽어올수 있는 문제를 해결 할 수 있지만 내가 해결 한방 법중에 가장 심플한 방법을 소개한다. 필터를 만든다. 끝!!!너무 간단해서 할말을 잃었다. 그럼 코드를 보면서 한번 이해해 보자 커스텀 필터를 아래와 같이 만든다!!! Order는 1번으로 최상단!! /** * JSON Body를 여러번 읽을 수 있게 커스텀 필터를 추가 */ @Component @Order(1) public class RequestBodyFilter extends OncePerRequestFilter { @Override protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,..
[Java] Google OTP 개발기 - 구글OTP 쉬워요!
2023. 7. 6. 13:01
Java
구글 OTP 백엔드 관리 시스템에 2차 인증이 필요해서 알아보게 되었다. 생각보다 어렵지 않았다. 리서치 조금 해보니 답이 나와있었다. 제일 신기한건 서버를 타는것이 아니였다. 알고리즘을 통한 검증인거다 은행에서 사용하는 OTP도 결국 이와같은 방식일 것 이라 생각된다. 그럼 지금부터 코드를 살펴보자 java로 작성했다 @Service @RequiredArgsConstructor public class OtpService { private final UserMapper userMapper; private final SecurityService securityService; private boolean validOtp(String code, String encodedKey) { try { // 키, 코드,..
java 무엇이 제일 빠른가? StringBuilder vs StringBuffer vs concat vs plus(+)
2023. 4. 26. 10:58
Java
java 무엇이 제일 빠른가? StringBuilder vs StringBuffer vs concat vs plus(+) 아래와 같이 퍼포먼스 테스트를 진행해 보았다. 500_000번 for 문을 돈다 내가 알고 있던 지식과 상반된 결과를 보였다 모든 블로그와 책들은 거짓말을 하는걸까? 결론 요약 퍼포먼스 테스트 결과 제가 잘 못 알고 있었네요! concat이 제일 느리네요! StringBuffer -> String Builder -> +연산 -> concat 수행코드 public class StringConcatTest { private final Long MAX_VALUE = 500_000L; @Test public void 스트링빌더에_대한_퍼포먼스를_테스트() { StringBuilder sb =..
[Springboot] 안드로이드에서 애플 로그인 Callback 처리 - Apple login in springboot
2022. 10. 24. 12:08
Java/Spring
애플로그인 콜백 처리를 위한 스프링 코드를 공유한다. 아무곳에서도 찾을 수 없어 직접 개발하였다. @CrossOrigin(origins = "https://appleid.apple.com") @PostMapping(value = "/user/login/apple/callback", consumes = MediaType.APPLICATION_FORM_URLENCODED_VALUE) public ResponseEntity userLoginAppleCallback(EchoAppleLogin body) throws URISyntaxException { // intent://callback?code=c22daf3b4d1ed47a2be2508e49098b519.0.rtsv.vxFiYrvlMm0TOfWtFI77yQ&..