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 { // 키, 코드,..
나를 사랑하는 사람들이 '꼭' 지키는 8가지 습관
2023. 6. 20. 16:33
ETC
나를 사랑하는 8가지 습관 TLDR 나를 사랑하는 8가지 습관을 소개합니다. 삶의 우선순위를 정하고, 나 자신을 대하는 방식을 바꾸고, 경계선을 설정하며, 감정을 느끼고, 현재에 집중하며, 내 마음을 편안하게 하며, 욕구에 솔직해지고, 나 자신을 중심으로 생각하는 것이 중요합니다. 🌟 삶의 우선순위를 정하고 가치를 실현하는 선택을 한다. 🌟 나 자신을 상냥하게 대하고 원하는 것을 선택한다. 🌟 경계선을 설정하고 내 에너지를 보호한다. Summary 우리는 아이를 키울 때 각자 다른 양육 방식을 가지고 있습니다. 나 자신을 사랑하며 살아가는 습관에 대해 이야기하고 싶습니다. 나는 나를 사랑하기 시작하면서 몇 가지 습관을 가지게 되었습니다. 나를 사랑하는 습관 8가지는 다음과 같습니다. 첫째, 삶의 우선순위..
[ios] 카카오 로그인 오류 the provided scheme is not valid. a scheme should not include special characters such as \":\" or \"/\".
2023. 5. 31. 00:59
카테고리 없음
해결방법 직접 카카오 sdk의 pod 파일을 열고 수정한다. ASWebAuthenticationSession.init 카카오 로그인시 이 부분에서 앱이 자꾸 크래쉬남 SDK버전을 올릴 수 없어서 해결책을 찾아서 해결함기존 let authenticationSession = ASWebAuthenticationSession.init(url: url, callbackURLScheme: try! KakaoSDKCommon.shared.redirectUri(), completionHandler:authenticationSessionCompletionHandler) 수정 본 let scheme = URL(string: try! KakaoSDKCommon.shared.redirectUri())?.scheme ?? ""..
mac에서 cron tab 동작 안한다면 권한 설정 문제로 해결
2023. 5. 9. 13:16
OS/Mac
MAC 맥에서 crontab 를 설정해놨는데 안돌아 간다. 이유는 권한 문제 설정에서 cron에 대한 풀엑세스를 지정해야 한다. 아래와 같이 해결 가능하다. 설정 -> 개인정보 보호 및 보안 -> 전체 디스크 접근 권한 -> + 버튼을 눌러 cron을 추가한다. 방법 click the + button ⌘⇧G 단축키 하고 /usr/sbin 경로 입력 더블 클릭해서 cron 파일 추가 원문글 아래 링크를 체크하여 해결하였다. https://apple.stackexchange.com/questions/378553/crontab-operation-not-permitted In your case you have to add cron as "parent" app to the user's Security & ..
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 =..
java.lang.NullPointerException: MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct and pass an instance in order to retain the old behavior.
2023. 3. 16. 00:20
Flutter
Flutter video player 개발중에 아래와 같이 에러가 발생했다 E/MethodChannel#better_player_channel(29539): Failed to handle method call E/MethodChannel#better_player_channel(29539): java.lang.NullPointerException: MediaSource.Factory#setDrmSessionManagerProvider no longer handles null by instantiating a new DefaultDrmSessionManagerProvider. Explicitly construct and pass an instance in order to retain the old behav..
: java.lang.IllegalArgumentException: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality ..
2023. 3. 14. 10:27
ANDROID
안드로이드 targetSdkVersion 31를 변경하였다. 일단 변경을 하지 않으면 스토어에 올라가지 않는다. 변경 후 아래와 같이 크레쉬가 발생하기 시작했다. Fatal Exception: java.lang.IllegalArgumentException: com.abc.client.traveler: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent. Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on th..
flutter Class 'SoundStreamPlugin' is not abstract and does not implement abstract member public abstract fun onRequestPermissionsResult
2023. 3. 11. 00:13
Flutter
flutter에서 sound_stream: ^0.3.0 추가한후에 아래와 같은 안드로이드 빌드 오류가 발생했다. Androd에서 코드만 수정해주면 된다. Class 'SoundStreamPlugin' is not abstract and does not implement abstract member public abstract fun onRequestPermissionsResult 실기기에서 동작했으며, 아래와 같이 오류 코드 발생 Launching lib/main.dart on SM G998N in debug mode... Running Gradle task 'assembleDebug'... e: /Users/qualson/.pub-cache/hosted/pub.dev/sou..
xcode /Pods/Target Support Files/Pods-Project/Pods-Project.release.xcconfig:1:1 unable to open configuration settings file
2023. 3. 10. 17:19
IOS
XCode에서 프로필 설정한 후에 아래와 같이 에러가 나타났다. 해결책 pod deintegrate pod install 프로필을 추가했다면 pod을 다시 install 한다.