회사에서 수습 프로젝트가 끝나고 업무보조로 선배가 개발중인 프로젝트의 웹페이지 스타일 입히는 것을 일부 맡게 되었다. 웹은 웹해킹만 해봤지 프론트 개발 경험은 전무해서 하나하나 찾아가며 공부하고 익히며 진행했다. 일부 영역에 스타일을 입히기 위해 태그를 사용하였는데 자꾸 의도치 않은 줄바꿈이 생기는 거다. 그 이유는 아래와 같다. div의 display 기본 설정은 block 이기 때문 div 태그와 함게 많이 쓰이는 태그도 있는데 둘의 차이점은 div의 display는 block, span은 기본 inline 따라서 div를 사용 하는데 줄바꿈을 금지 하기 위해서는 아래와 같이 해주면 된다. 만약 div에 크기 지정을 해줄 때에는 inline-block 옵션을 사용해야 한다. inline옵션에서는 크기..
개발을 하다보면 일정시간이 지난후에 함수나 동작을 실행시켜야 하는 경우가 있다. 그럴 때 사용 하는 것이 Handler.postDelayed() 이다. 아래와 같이 사용한다. Handler handler = new Handler(); handler.postDelayed(new Runnable() { @Override public void run() { Log.d(TAG, "setImg_water: thread water 후"); img_water2.setVisibility(View.INVISIBLE); img_water.setVisibility(View.VISIBLE); } },700);//700밀리 초 동안 딜레이 run() 함수 안에 딜레이 후 동작 시킬 행위를 작성하고, 700 자리에는 몇 밀리 초..
오늘은 잘 쓰고 있는 크롬 확장 프로그램 몇가지를 소개하고자 한다. 1. Dark Reader https://chrome.google.com/webstore/detail/dark-reader/eimadpbcbfnmbkopoojfekhnkhdbieeh Dark Reader 모든 웹사이트에 다크 모드를 적용합니다. 밤이나 일상적인 웹 브라우징을 할 때 어두운 테마를 사용하여 눈을 보호하십시오. chrome.google.com 컴퓨터 화면을 많이 들여다 봐야하는 입장에서 하얀 바탕 화면으로 이루어진 브라우저를 오래 쓰다보면 금방 눈부심과 눈의 피로감을 느끼게 된다. 그래서 Dark Reader 를 사용 하는 편인데, 다양한 Dark Mode 용 확장 프로그램들을 시도해봤지만, 그중 가장 좋다고 느꼈던 프로그램..
프로젝트 진행 중에 Fragment에서 SharedPreferences를 사용하여 하였으나 작동하지 않는 문제가 발생하였다. 왜 그런지 알아보니, getSharedPreferences() 는 Context 객체의 메소드이므로 Activity가 아니라 Context 가 없는 Fragment에서는 사용 할 수 없는 것. 따라서 이를 사용하려면 아래와 같이 액티비티를 통해 가져와야 한다. SharedPreferences preferences = this.getActivity().getSharedPreFerences Fragment에서 SharedPreferences를 다루는 것은 이것 말고도 다른 문제를 발생 시킨다. 그것에 대해서는 다음의 글을 참고 하여 코드를 작성 하는 것이 좋다. 2021.06.03 -..
개발 중에 java.lang.ClassCastException 이 발생 하였다. 왜 발생하는 에러인지, 어떻게 해결 하면 되는지 알아보자. |ClassCastExceptoin -객체의 형을 반환 할때 객체 타입이 적절하지 않을 때 발생하는 에러 위에서 설명 하였듯 이 에러는 객체 타입이 적절하지 않을 때 발생하는 에러이다. 클래스 단위의 에러이기 때문에 이 에러가 고쳐지려면 Class의 객체 타입을 변경 하거나 내 소스 코드의 객체 타입을 변경 하여야 한다. 이 에러는 실제로 객체 타입을 변경 해야만 하는 경우에도 발생하지만, 잘못된 클래스는 extends 하였을 때도 발생한다. |에러 경우 예시 나의 경우 개발 중 Fragment 에서 SharedPreferences 를 사용 하기 위해 Preferen..
소스코드상에서 리소스를 가져올때 어떻게 해야 하는지 까먹을 때가 많다. 따라서 간단하게 정리 하고자 한다. |이미지 리소스 변경 img_drink.setImageResource(R.drawable.drink_water); 이미지 소스는 ImageView에 setImageResource() 함수를 사용하여 설정 해준다. |Drawable 에 리소스 연결 Drawable drawable = ContextCompat.getDrawable(context, R.drawable.temp_waterac_1); Drawable 에 리소스를 연결 할때는 ContextCompat.getDrawable()을 사용한다. |String 가져오기 water = getString(R.string.drink_water_korean)..
기존에 작업을 잘 하고 있던 안드로이드 프로젝트가 갑자기 import가 안되서 갑자기 수십개의 에러가 발생하며 프로젝트가 실행이 안될 수 있다. 잘 실행되던 모든 부분들이 빨간 줄이 뜨며 빨갛게 변해버리고 아주 많은 에러 메시지를 보게되었다면 안드로이드 스튜디오-File-Invalidate Caches/Restart로 해결 하면 된다. 위의 방법을 써도 되지 않는 다면 아예 안드로이드 스튜디오를 껐다가 재시작을 하면 정상적으로 import가 되는 것을 확인 할 수 있다.
오늘은 모바일 앱 개발 프로젝트를 진행하면서 겪었던 doInBackGround 진입 문제에 대해서 다뤄보고자 한다. 내가 겪었던 문제는 AsyncTask를 사용하여 비동기식으로 동작을 실행 시킬때 백그라운드에서 돌아가는 부분인 doInBackGround() 함수가 진입이 되지 않는 다는 것이었다. 문제의 원인을 몰라서 한참 헤맸는데, 원인은 두가지이다. |원인 1. 해당 비동기 클래스가 실행 될때 다른 비동기 클래스의 작업이 동시에 실행되는 경우 (일반적) 2. AsyncTask 를 extends한 비동기클래스 doInBackGround 내에서 또 다른 비동기 클래스를 호출하여 실행 시키는 경우. |케이스 별 해결 방법 1. 원인 1의 경우 일반적으로 주로 쓰이는 해결 법이다. 아래는 문제가 있던 나의 ..
BackGroundDrawable을 설정해줘야 할 때도 있지만, 변동될 경우 제거를 해야 할 때도 있다. 그럴때에는 아래와 같이 BackGround를 투명색으로 지정해 주면 된다. view.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); +) 참고로 안드로이드에서 레이아웃의 글자나 개체를 투명색으로 지정하고 싶을때는 @android:color/transparent 를 이용하면 된다. -xml에서 호출 할 때에는 @android:color/transparent -소스코드에서 호출할때는 위와 같이 사용한다.
- Total
- Today
- Yesterday
- pwnable.kr
- 앱분석
- reversing.kr풀이
- NumberFormatException
- 리버싱기초
- 뷰모델
- 동적분석
- AndroidX
- 모바일리버싱
- MVVM
- exception
- 칼리리눅스
- 리버싱.kr
- 스프링부트
- 웹 MVC
- reversing.kr
- 코드로 배우는 스프링 부트
- androidstudio
- 정보보안
- DataBinding
- Spring
- 펌웨어 분석
- 자바
- writeup
- 에러
- Android
- CTF
- 안드로이드
- 포너블.kr
- Java
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |