일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 운영체제 멀티 태스킹
- 운영체제 커널모드
- spring dynamic query sql injection
- spring exceptionHandler reposnse stackTrace
- spring exception cause remove
- 운영체제 개념
- 운영체제 자원관리
- 운영체제 작동방식
- spring sql injection 방지
- OS 자원관리
- 운영체제 공룡책
- spring paging sort sql injection
- 개발 직무 변경
- 운영체제 다중모드
- android 타이머
- Android Timer
- 백엔드 직무 변경
- spring exception stackTrace remove
- spring sql injection
- aws ec2 scp 파일 전송
- spring responseEntity response cause
- spring exceptionHandler response cause
- 백엔드 포지션 변경
- ec2 scp 파일 전송
- IT 포지션 변경
- 운영체제 멀티 프로그래밍
- spring 동적 쿼리 주의사항
- spring responseEntity response stackTrace
- IT 직무 변경
- 개발 포지션 변경
- Today
- Total
목록분류 전체보기 (60)
오늘도 삽질중
필자는 1년 6개월차 안드로이드 초보개발자입니다.1년간 블록체인 회사에서 일하고, 개인적인 사정으로 프리랜서 6개월을 진행했습니다.출시한 앱은 총 4개이며, 출시후 디테일하게 유지보수까지 한 앱은 2개입니다. 해당 내용은 제가 지금까지 개발하면서 느낀 개인적인 견해입니다.사람마다 생각이 다르듯이 저의 디자인패턴에 대한 생각을 제 경험을 토대로 작성하였습니다. 예전엔 위 질문에 "별로 중요하지 않은거 같은데?" 라는 생각을 자주 했다. 하지만 지금은 "매우 중요하다, 다만 모든 유스케이스에 꼭 적용 할 필요는 없다." 라고 생각이 바뀌게 되었다. 왜 이렇게 생각이 바뀌었느냐....직접 실무에서 개발을 해보니까 필요성을 느끼게 되었다.필자는 지금까지 MVC 패턴으로만 개발을 했기 때문이다. 물론 MVC패턴으..
Android 버전 Q부터 저장소 정책이 변경되어현재 많은 블로그에 있는 기존 카메라 및 앨범예제가 작동되지 않습니다. 저 또한 현재 서비스중인 앱에 카메라와 앨범기능이 존재하기 때문에 급하게 찾아봤지만 제가 원하는 카메라 및 앨범예제는 존재하지 않았습니다. android:requestLegacyExternalStorage="true" 임시방편으로 위 플래그를 추가하면 기존 소스도 정상동작하지만 Q 이후 버전부터는 해당 플래그를 무시한다고 해서 대응을 해줘야 합니다. 실제로 위 플래그를 제거하면 Q 버전에서도 에러가 발생합니다. 그래서 정리목적으로 직접 샘플소스를 구현했습니다.해당 소스는 APi 23레벨(6.0) 기종은 테스트가 안될수 있습니다.단순히 SAF로 인해 바뀐 저장소 정책에 대응한 소스입니다...
circleView.setImageDrawable( new ColorDrawable( Color.parseColor( "#191F28" ) ) ); 별것도 아닌걸로 삽질했네...
FCM 관리자 계정을 바꿔야 해서 새로 프로젝트를 만들고 안드로이드 스튜디오에서 새로 발급받은 google-services.json 로 교체하고 서버키 또한 새로운 키로 교체한 뒤 푸쉬가 가지 않는 상황이 발생했습니다. 포스트맨으로 테스트해보니 MismatchSenderId 에러가 발생했는데, 구글 검색을 해보니 새로 바뀐 서버키로 교체해줘라, Sender Id 를 확인해 보라 등등 여러 답변이 많았지만 다 적용되지 않았습니다. 그래서 혹시나 하는 마음에 안드로이드 스튜디오 에서 Build -> Clean Project 후에 새로 토큰을 발급받고 해보니 정상동작했습니다. 왜 이런 문제가 발생했는지 정확한 원인은 모르지만 아마 이전에 사용했던 google-services.json 파일이 캐시에 남아있어 새..
안드로이드 팝업메뉴 기본사용법 및 스타일 적용방법입니다. popup_menu.xml popup_menu.java import android.os.Bundle; import android.view.Gravity; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.ImageView; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; import androidx.appcompat.widget.PopupMenu; public class PopupMenuActivity ..
BigDecimal 이나 BigInteger를 쓰다보면 값을 비교하는 compareTo를 자주 사용하곤 합니다. 매번 자주 사용하지만 쓸때마다 리턴값이 헷갈려서 정리목적으로 글을 작성합니다. 실행Log.e( "1 compareTo 2 :", "" + new BigDecimal( "1" ).compareTo( new BigDecimal( "2" ) ) ); Log.e( "1 compareTo 1 :", "" + new BigDecimal( "1" ).compareTo( new BigDecimal( "1" ) ) ); Log.e( "1 compareTo 0 :", "" + new BigDecimal( "1" ).compareTo( new BigDecimal( "0" ) ) ); 결과1 compareTo 2 ..
Intent 를 이용한 이메일 전송입니다.이메일과 관련된 앱만 보여지게 됩니다.테스트기종은 갤럭시 노트8,A8,S6 에서 진행했으며os 는 nougat 부터 pie 까지 정상작동을 체크했습니다. Intent emailSelectorIntent = new Intent( Intent.ACTION_SENDTO ); emailSelectorIntent.setData( Uri.parse( "mailto:" ) ); final Intent emailIntent = new Intent( Intent.ACTION_SEND ); emailIntent.putExtra( Intent.EXTRA_EMAIL, new String[]{ "보낼 이메일 주소 입력 ex) 123123@hanmail.net" } ); emailInte..
text 중에서 일부분만 컬러를 바꾸고 싶을 경우에 사용하시면 됩니다. 기초적인 틀만 잡혀있으니 다양하게 변형해서 사용하시길 바랍니다. 전체소스 및 결과화면입니다. MainActivity.classpublic class MainActivity extends AppCompatActivity { TextView textView; @Override protected void onCreate( @Nullable Bundle savedInstanceState ) { super.onCreate( savedInstanceState ); setContentView( R.layout.activity_main ); textView = findViewById( R.id.textview ); textView.setText( ..
흔히 모바일에서 문자인증을 하게되면 이런 화면을 많이 보셨을껍니다.android 에서는 Timer 나 CountDownTimer 또는 스레드와 핸들러 조합으로 타이머 구현이 가능합니다. 하지만 CountDownTimer는 간헐적으로 시간이 맞지 않는 증상도 있고 스레드와 핸들러를 조합하면 로직이 복잡해지는 단점이 있습니다.그래서 간단하게 직접 구현해 봤습니다. java파일을 추가해 주시고 TimerView.javaimport android.animation.ObjectAnimator; import android.content.Context; import android.util.AttributeSet; import android.view.animation.LinearInterpolator; public c..
android 에서 개발을 하다보면 랜덤하게 값을 섞는경우가 있습니다. ArrayList에서 값을 다시 랜덤하게 배치하고 싶을때는 Collections.Shuffle를 사용하게 되는데요. 보통 기존의 값과 재배열한 값을 비교하는 로직을 구현할 때 많이 사용하게 됩니다. 이런상황에서 조심해야할 점을 알려드리고자 합니다. public class MainActivity extends AppCompatActivity { private ArrayList array_1; private ArrayList array_2; @Override protected void onCreate ( Bundle savedInstanceState ) { super.onCreate( savedIn..