본문 바로가기

Programming

(21)
[Java] Cipher.doFinal(Byte) Error 해결 발생한 문제 - Cipher.doFinal(Byte)로 생성되는 값이 비정상적인 값이 생성되어 문제 발생 발생 원인 - Java에서는 대칭키 알고리즘을 사용하여 데이터의 암, 복호화를 수행할 때 javax.crypto.Cipher 클래스를 사용 - 해당 클래스의 경우 인스턴스를 가져올때 Cipher.getInstance()를 호출하는데 호출시 사용할 알고리즘, 운용모드, 패딩방식을 인자로 넘겨주어야 함 - 여기서 문제가 발생한 부분이 인자로 넘겨준 부분인데 기존 설정은 Cipher.getInstance("RSA") 로 설정되어 있었는데 이경우 Provider가 제공하는 기본설정을 따라가게 됨 - 서버의 환경이 Provider가 제공하는 기본 설정 적용시에 문제가 발생한 케이스로 운용모드, 패딩방법 2가지..
[Java] Illegal embedded minus sign 에러 해결 발생한 문제 - java.lang.NumberFormatException: Illegal embedded minus sign (잘못된 마이너스 기호가 들어감) 에러 메시지 java.lang.NumberFormatException: Illegal embedded minus sign at java.math.BigInteger.(BigInteger.java:302) 발생 원인 1. BigInteger에는 숫자만 들어가야 하지만 해당 값에 '-' 부호가 들어가 있어서 발생 2. 해당 에러메시지는 java 1.6 버전이나 그 이하의 버전에서 발생 (java 1.8 확인결과 1.8 버전에서는 Illegal embedded sign character 에러 발생) 해결방법 1. BigInteger의 값이 정상적으로 들..
[React-Native] react-native-webview 에러 해결 발생한 문제 - react-native 환경에서 웹뷰 테스트를 위해 프로젝트를 생성하여 App.js 내부에 를 작성하였으나 webview를 사용할 수 없다고 에러 메시지 발생 에러 메시지1 : react-native link react-native-webview not working 해결방법 1. 프로젝트 생성시 react-native 버전을 0.69 이하 버전으로 설정(0.69 버전부터 webview가 삭제되었다고 함) - 명령어 : react-native init andProject --version=0.68.1 에러 메시지2 : react-native-webview could not be found within the project or in these directories (react-native..
Google Play 정책 위반 관련 참고사항 발생한 문제 몇달 전에 Google Play에 출시중인 앱에서 Insecure Hostname Verification 정책 위반에 관련된 메일이 도착하여 해당 내용을 수정하였습니다. 수정 후 업데이트시에도 문제가 없었는데 2~3주 후에 다시 동일한 정책을 위반하였다고 메일이 도착하였습니다. 수정한지 얼마 되지도 않았고, Google Play Console에 들어가서 버전을 확인해봐도 문제가 없어서 그냥 넘어갔습니다. 그런데 몇주 후에 갑자기 앱이 마켓에서 내려가는 문제가 발생했습니다. 부랴부랴 다시 의심가는 부분을 수정하여 배포했고, 정상적으로 플레이 스토어에 올라갔습니다. 이렇게 해결되었다고 생각하고 있었는데 다시 2주후에 동일한 정책을 위반하였다고 메일이 도착하였습니다 해결 방법 * 저는 아래의 순서..
AAB(Android App Bundle) 생성 방법 Android App Bundle 관련 문제가 발생하는 바람에 aab에 대해서 공부하게 되어 정리하기 위해 작성하게 되었습니다. 간단하게 정리하긴 했는데 자세한 내용은 Android 개발자 페이지를 보는게 가장 좋다고 생각합니다. 1. aab(Android App Bundle)란? -> 앱의 모든 컴파일된 코드 및 리소스를 포함하여 APK 생성 및 서명을 Google Play에 맡기는 게시형식 -> aab로 생성시 선택된 디바이스에 필요한 파일만 추출하여 apks 파일 생성 가능 -> 새로운 앱을 구글플레이에 올릴 때 반드시 aab형식으로 올려야 함 (https://android-developers.googleblog.com/2020/11/new-android-app-bundle-and-target-ap..
Stack 직접 구현하기(Java) Stack이란? - 한 방향에서만 자료를 삽입, 삭제가 가능한 선형구조(LIFO - Last In First Out - 후입선출) 형태의 자료구조 - push(삽입), pop(삭제)을 사용하여 데이터의 추가 및 삭제가 가능 코드 작성 방식 1. 작성할 Stack의 크기를 입력받음 2. 입력받은 크기만큼의 배열 생성 3. 현재 위치를 표기할 index 변수 생성 후 -1로 초기화 3. 반복문을 사용하여 사용자에게서 exit명령을 입력받을 때 까지 반복하여 명령 수행 4. pop 명령 입력시 현재 배열의 인덱스값을 출력한 후, null로 초기화 - Exception 발생시, 인덱스의 범위관련 예외이므로 StackUnderflow 발생 메시지 출력 5. push 명령 입력시 현재 배열의 인덱스 값에 1을 더한..
정수형태 문자열 변환(String->int, int->String) 문제 설명 => 문자열을 입력받고, 입력받은 문자열을 int형으로 변환 => int형으로 변환된 내용을 다시 String형으로 변환 코드 작성 방식 1. 사용자에게 정수형태 문자열을 입력 받음 2. 입력받은 문자열을 strToInt 메소드에 반환 3. 문자열을 char형 배열에 나누어 입력 4. 잘못된 값이 입력되었는지 확인하고, 정수형태라면 정수로 변환 5. char형 배열의 크기만큼 4번 과정을 반복하며 계산 -> for( ; ; x) 형태에서 x의 위치에 2개의 증감식을 입력하는 것도 가능 6. 결과값 리턴 및 출력 7. 위의 결과값을 매개변수로 intToStr메소드 호출 8. 매개변수를 10으로 나눈 나머지를 구하고 문자열 변수에 더하고, 매개변수를 10으로 나눔 9. 매개변수가 0보다 클경우 8..
피보나치 수열(재귀O) 문제 설명 => 피보나치 수열의 갯수를 입력받고, 합계, 전체 수열을 열거하시오 => 피보나치 수열은 이전 값과 현재 값을 더한 결과가 다음 값이 되는 수열입니다.(첫수열 값은 1입니다) ex) 5번째 피보나치 수열을 구하시오 1번째 : 1 / 2번째 : 0 + 1 = 1 / 3번째 : 1 + 1 = 2 / 4번째 : 1 + 2 = 3 / 5번째 : 2 + 3 = 5 그러므로 5번째 피보나치 수열의 값은 5입니다. 코드 작성 방식 1. 피보나치 수열 갯수를 입력받음 2. 수열의 갯수만큼 반복되는 for문 작성 3. 반복문 내에서 fibo 메소드 호출 4. fibo의 매개변수가 0또는 1일 경우 해당 값을 반환 5. 2이상일 경우 fibo(num-1) + fibo(num-2)를 반환 -> num이 0또는 ..