Debug Log

    Git submodule 사용시gradle 의존성 명시 누락으로 인한 오류(contextLoads() FAILED, java.lang.IllegalArgumentException)

    Git submodule 사용시gradle 의존성 명시 누락으로 인한 오류(contextLoads() FAILED, java.lang.IllegalArgumentException)

    상황 submodule로 application.yml 파일을 관리하려고 구현하였지만, build에 실패하였다. test 수행시 IllegalStateException으로 인해 contextLoads에 실패하였고 UrlumberjackApplicationTests > contextLoads() FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:142 Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:800 Caused by: org.springframework.beans..

    [짧]WSL 에러( Error: 0x80040326 Error code: Wsl/Service/0x80040326)

    [짧]WSL 에러( Error: 0x80040326 Error code: Wsl/Service/0x80040326)

    어제 잘 쓰다가 오늘 WSL를 실행하는데 아래 에러가 뜨더라구요 Error: 0x80040326 Error code: Wsl/Service/0x80040326 Press any key to continue... 관리자 권한으로 터미널 실행 후, wsl --update 명령어로 wsl 업데이트 실행해주시면 됩니다. 업데이트 완료 전엔 실행 안되므로 조심해야 합니다. 따로 업데이트 완료 문구를 터미널로 띄워주는게 아니라, 알림센터를 통해서 업데이트 완료를 알려줍니다. 참고 : https://superuser.com/questions/1776464/ubuntu-crashes-on-windows-0x80040326-wsl-error

    AWS) EC2 SSH 접속시 Permissions 0644 for '~.pem' are too open.

    AWS) EC2 SSH 접속시 Permissions 0644 for '~.pem' are too open.

    1. 발단 팀프로젝트 진행을 위해 ec2 인스턴스를 생성, pem키를 사용해 ssh접근시 발생 2. 상황 3. 실패원인 에러명에 나와있는 대로, pem파일의 permission 문제 4. 힌트 5. 처리 chmod 400 ooo.pem 을 입력해 권한을 변경 6. 결과 정상적으로 접속 성공 7. 느긴점

    Spring boot) 빌드 실패 오류 (org.gradle.plugin.api-version ...)

    Spring boot) 빌드 실패 오류 (org.gradle.plugin.api-version ...)

    1. 발단 팀프로젝트를 위해 spring boot 빌드중에 자꾸 빌드가 안되고 있었음 start.spring.io로 만들었으며, 의존성도 문제 없고, gradle 버전과 java sdk버전 문제도 없었음 2. 상황 빌드가 계속 실패. 에러문구는 다음과 같았음. A problem occurred configuring root project 'core'. > Could not resolve all files for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.0.0. Required by: project : > org.springframework.boot:org.spring..

    mybatis) int 자료타입 if test 무조건 안타던 문제

    mybatis) int 자료타입 if test 무조건 안타던 문제

    1. 발단 app단에 자료 목록을 paging해서 주기 위해 limit-offset값도 받는 api 개발 2. 상황 0번째부터 10개값 (limit 0, offset 10)을 출력하는데 모든목록이 다 출력됨 3. 실패원인 mybtis에서 if조건 대상이 int형이고 값이 0이면 param != '' 조건을 통과를 못하고 있었음 4. 힌트 처음 테스트당시 자료가 페이징될 갯수보다 많았었는데 놓쳤던듯 5. 처리 if-test 조건문 변경 6. 결과 정상적으로 페이징처리된 값들을 출력함 7. 느긴점 ... 이거 자료형을 다 string으로 받아서 처리하는게 맞을까 생각이 듬

    mysql)전화번호 masking 작업

    mysql)전화번호 masking 작업

    1. 발단 전화번호를 마스킹해서 내려주는 비즈니스 로직이 필요 ex) 010-1111-2222 -> 010-1**1->2222 2. 상황 마스킹처리를 서버에서 할지, DB에서 처리할지에 대한 고민 마스킹 관련 자료 검색시 방법이 다양 3. 실패원인 DB가 마스킹 연산해서 서버로 내려주게끔 개발. 하지만, 리소스 관리 측면에서 DB에서 값을 정제해서 내려주기보단, 서버단에서 처리하는게 맞았음. 4. 힌트 이전에 컬럼 합성 데이터 처리에 대해 어느부분에서 처리하는게 맞는지 다양한 곳에 문의해본 결과, 서버단에서 처리하는게 정석이라는 얘기를 들었었다. 5. 처리 검색해본 자료중에 replace를 사용하는 방법도 있었지만, 만약 해당 문자열 패턴이 반복되면, 정책과 다르게 마스킹처리가 되는 부분이 있어 conc..

    mysql-mybatis)일정기간별 검색

    mysql-mybatis)일정기간별 검색

    1. 발단 기간별 검색 구현 2. 상황 between A and B 까지 하면 A~B까지 출력하겠지 라고 낙관적인 생각 3. 실패원인 A~B까리이지만, A가 포함인지 미포함인지, B가 포함인지 미포함인지 고려 안함 동료분이 23:59:59까지 조건으로 하면 될거같은데요~ 를 너무 쿨하게 참조만 함 (...) 쉬운 작업이라 생각하고 테스트 케이스를 너무 빈약하게 잡았음 (당일만 검색 고려 안함 + 산출값 확인 미흡) 3. 힌트 30일전부터 오늘까지의 데이터를 뽑아올 때, between A and B and NOW() 를 사용했었음. 4. 처리 DATE_FORMAT(CREATE_DT, '%Y-%m-%d') =]]> #{startDt} AND DATE_FORMAT(CREATE_DT, '%Y-%m-%d') #{..

    [Spring/Intelij]Please set the JAVA_HOME variable in your environment to match thelocation of your Java installation.

    상황 spring boot을 intelij로 개발중, .\gradlew.bat clean 명령어를 사용했을때 발생 원인 환경변수 JAVA_HOME이 유요하지 않은 위치를 가르켰다. 해결 JAVA_HOME이 ~\bin까지 되어있길래 \bin을 제거 후 재시작하니 정상동작

    'other' has different root

    상황 aab 마는중에 에러 발생 원인 프로젝트, 키, 산출물이 같은 드라이브에 위치하도록 해야한다고 함. 참고 : https://stackoverflow.com/questions/62089862/generate-signed-bundle-errors-while-building-bundle-file-other-has-different 대처 용량문제로 SSD를 추가해, 폴더정리를 했어서 발생했었다고 판단하였음. aab 산출물만 프로젝트가 있는 드라이브로 위치를 지정했을때는 실패, 키와 산출물 디렉토리까지 프로젝트가 있는 드라이브로 이동시켰다. 결과 키와 산출물, 프로젝트를 동일한 드라이브에 위치시켜 에러없이 성공

    [Android] 패키지가 잘못되어 앱이 설치되지 않았습니다. 해결

    상황 proguard 테스트중, 릴리즈 apk 설치시에만 '패키지가 잘못되어 앱이 설치되지 않았습니다' 문구 출력. debug apk는 설치 및 구동이 잘 되는 상황. 휴대폰 설정에서 출처없는앱 설치 허용하고, 구글 프로텍트는 해제한 상황이였는데 이랬음ㅁ 원인 unsigned apk여서.. proguard 설정 문제가 아니였다. 해결 서명한 apk를 빌드해서 설치하니 해결되었다. --- ...? 보안설정이 하나가 더 있나...? 뭐지...?;;;;

    W/BroadcastQueue: Background execution not allowed: receiving Intent

    W/BroadcastQueue: Background execution not allowed: receiving Intent

    상황 브로드 캐스트 테스트를 위해서, 액션명을 커스텀 해 암시적 브로드캐스트를 생성하였다. 그리고 송신했을때, 수신측에서 해당 에러를 출력하며 브로드캐스트를 수신하지 못하였다. 원인 백그라운드 정책이 강화됨에 따라, 예외적인 몇가지 암시적 브로드캐스트를 제외하고 암시적 브로드캐스트는 매니페스트에 브로드캐스트 수신기를 등록해서 수신할 수 없고, Context에 수신기를 구현해야 한다. 해결 송신시 명시적인 브로드캐스트를 보내도록 수정하였다. intent.putExtra("data", "This is just broadcast test B") intent.addFlags(Intent.FLAG_INCLUDE_STOPPED_PACKAGES); sendBroadcast(intent) 에서 intent.putExt..

    Your app contains exposed Google Cloud Platform (GCP) API keys. Please see this Google Help Center article for details

    Your app contains exposed Google Cloud Platform (GCP) API keys. Please see this Google Help Center article for details

    상황 google player cosole로 앱 게시중 오류 발생 원인 fcm api-key를 그대로 project에 노출한것 해결 어쩔수없이 직접 주입해서 썻어야 했음. local.propertise에 값을 저장하고 buildConfig에 선언해 꺼내썻지만, 어차피 빌드되면서 접근이 가능하므로 실패 1. 4토막으로 나눠 더한채로 입력한다. ex) key = 123456789라면, "123"+"456"+"789" 2. 암호화한걸 디코딩한 값을 입력한다. ex) base64로 apikey를 인코딩한 값이 Constant.API_KEY라 하면, .setApiKey(new String(Base64.decode(Constant.API_KEY, 0))) 처럼 사용한다.

    Build was configured to prefer settings repositories over project repositories but repository 'flatDir' was added by build file 'app\build.gradle'

    Build was configured to prefer settings repositories over project repositories but repository 'flatDir' was added by build file 'app\build.gradle'

    상황 aar을 import하기 위해 작업도중 발생 원인 모르겠음. api 30과 31의 차이라기도 뭐한게.. taget api 30인 project가 설정한 대로 똑같이 해도 설정되지 않음. 시도한 방법 //app 또는 project gradle에 아래내용 추가 repositories { flatDir{ dir 'libs' } } //app gradle의 다음의 내용 추가 implementation(name:'AAR_NAME', ext:'AAR_EXTENSION_NAME') -> 실패 //app 또는 project gradle에 아래내용 추가 repositories { flatDir{ dir 'libs' } } //app gradle의 다음의 내용 추가 implementation fileTree(dir:..

    Manifest merger failed : Attribute application@theme

    상황 aar을 import하기위해 app gradle에 implements를 한 상황에서 clean - rebuild project를 실행시키니 발생 원인 모르겠음... 아마 aar의 manifest와 내 project의 manifest의 theme가 충돌되었다고 의심됨. 해결 manifest.mxl에 다음 다음과 같이 추가 1. manifest 태그 내에 추가 xmlns:tools="http://schemas.android.com/tools" 2. application 태그 내에 추가 tools:replace="android:theme" 이후 성공적으로 잘 빌드 되었음.

    Work Manager : "Could not instantiate Wroker"

    상황 WorkManager에 workrequest을 enqueue했는데 오류 뿜음 원인 worker를 inner class로 작성하면 안 됨 해결 worker class 별도 분리 참고 https://haero.tistory.com/20 [Android] WorkManager 'Could not instantiate Worker' 해결법 Android JetPack Component 에 'WorkManager' 라는 친구가 있다. 초기 안드로이드는 백그라운드 실행 정책이 느슨했기 때문에 여러 앱이 각자 백그라운드 태스크를 수행하면서 스마트폰의 자원을 엄청 소비 haero.tistory.com https://stackoverflow.com/questions/52657196/android-work-manag..

    Code=3840 "Invalid value around character

    Code=3840 "Invalid value around character

    상황 MySQL사용을 위해 xcode에서 jsp에 접근해야 했음 원인 해당 파일이 없을 경우에 위 에러 발생 해셜 jsp path에 오타를 수정해서 해결

    Sqlite3 - database is locked

    상태 insert한 값을 바로 사용해야 했던 상황입니다. insert 후 select로 rowid를 조회해 가장 최근에 추가된 값을 불러왔었습니다. 원인 쿼리를 연속실행하니 종료-실행시점이 겹쳐서 후속작업이 실행되지 않음 해결 sqlite3_finalize(OpaquePointer?)로 stmt를 초기화 시켜주거나 sqlite3_close(OpaquePointer?)로 db를 닫아준다.

    project.pbxproj 에러 처리 (Dictionary missing, Build input file cannot be found)

    project.pbxproj 에러 처리 (Dictionary missing, Build input file cannot be found)

    이번 팀프로젝트는 Ios 프로젝트였는데요, 시작부터 엄청나게 충돌이 일어나고 빌드가 안되고 파일을 못찾고... 난리도 아니였습니다. ios에 통달한 분이 계셔서 충돌을 해결해주고 구조적으로 충돌안나게끔 관리해주면 좋았겠지만... 없는데 어떻하겠습니까. ㅋㅋㅠ 이미 문제는 일어났고 처리법도 알아내서 포스팅 합니다. 0. 뭐하는 친구인가? 프로젝트의 설정이 적혀있는 파일입니다. 프로젝트 내부에서 생성된 파일들을 파일 유형에 따라 reference를 저장합니다. 파일 네비게이션에 있는 그룹과 파일의 reference를 가지고 있으며, 그룹으로 정렬되있는 정보도 저장하고 있고 그 외 특수한 경우도 저장하고 있습니다. 굳이 비슷한걸 따지자면... 안드로이드가 Activity를 추가하면 매니페스트에 추가가 되지요?..

    The type Date is ambiguous

    The type Date is ambiguous

    상황 안드로이드에서 톰캣 서버에 파일 업로드중 java.sql.*을 임포트하니 갑자기 잘되던 date타입이 먹통 원인 java.util.* 과 java.sql.*은 둘다 date를 참조함 해결 둘중 어떤 라이브러리의 date타입을 사용할지 명시 new Date -> new java.util.Date()

    Custom ListView OnItemClickListener가 작동하지 않음

    Custom ListView OnItemClickListener가 작동하지 않음

    상황 CustomListView를 만든 후 OnItemClickListener 이벤트를 입력하였으나 작동하지 않음 원인 기본적으로 제공하는 리스트뷰가 아닌경우 리스트를 클릭하는게 아닌 리스트뷰 내부의 아이템을 클릭하는것으로 인식. 왜냐하면 리스트뷰의 아이템 레이아웃을 별도로 만들어 리스트뷰에 붙였기 떄문임. 해결 리스트뷰에 클릭이벤트를 붙이는게 아닌 어댑터의 getview에서 converterview에 클릭이벤트 생성