오늘은 집중해서 만들고 있는 프로젝트에 진도를 많이 쭉 뺐다. mysql과 연동을 위해 볼리를 많이 이용했는데, 잘하다가 다음과 같은 문제가 생겼다. 다음과 같이 사진에서 위에 테두리도 밑에 둥글기와 같이 둥글게 나와야 하는데, 직각으로 저런 식으로 표시되는 것이다. 물론 이미지를 넣지 않을 때는 xml 속성으로 설정해놓아서, 이런 식으로 나온다. 아 물론 scaleType을 fitCenter로 하면 다음과 같이 잘 나오지만, 내가 원하는 것은 centerCrop속성이었다. 이상하게 이 속성으로 이미지 뷰에 이미지를 넣으면, 저렇게 둥글기가 사라지는 것이었다. 커뮤니티에 물어보니 원래 이미지 뷰에 이미지를 넣으면 저런 상태가 된다는 것이다. 그래서 비트맵으로 변환해서 크기를 조정해 넣으라는데... 잘 몰..
한 주가 지나갔다. 이제는 초조하고, 마음이 답답해서 하루빨리 이곳을 나가고 싶지만, 침착해야 한다. 거의 앱은 완성되었고, 아직 나는 부족하다. 하지만, 더 배우기 위해서는 현장에 나가보고 사람들도 만나봐야 한다고 생각한다. 오늘은 만들고 있는 앱에 일기 기능을 위해서 한 칼럼에 내용을 모두 가져오는 php구문과 그 값을 안드로이드 스튜디오에서 받는 법을 쓸 생각이다. 해결법 나 같은 경우는 각 회원마다 고유의 번호(num)를 주고, 그 번호가 붙어있는 개인의 Diary테이블을 만들어서 일기 내용을 따로 저장하는 법을 사용했다. 그 과정에서 일기를 쓴 날짜를 모두 가져와야 할 상황이 생겼다. 그래서 sql문을 $query = "SELECT startdate FROM `Diary$num`"; 이런 식으로..
며칠 동안 프로젝트 만드는 데 고전하느라, 빨리빨리 넘어가서 이것저것 쓸 것이 많다. 오늘은 시간이 늦어서 간단하게 배운 사실을 쓰려고 한다. 끝내주는 캘린더뷰 라이브러리를 사용 중인데, 나중에 참고해서 올리려고 한다. 오늘 소개할 내용은 ArrayList 안에 값이 있는지 없는지 확인해야 하고, 만약 있다면, 어떤 동작을 실행할 수 있을지, 결정할 수 있는 메서드입니다. 바로 contain() 메서드입니다. 사용법은 간단합니다. // 어레이 리스트에 {"안녕", "누구", "세요"}가 들어있을때, ArrayList aL = new ArrayList(); aL.contain("안녕"); // 값이 있으면 true// 아니면 false; //if문으로 나타내보자 if(aL.contain("안녕")){ //..
오늘은 아쉬운 점이 있던 부분을 보안하여 새로운 방법을 알아냈기에 글을 써본다. 금연 앱도 거의 마무리했고, 현재 금연일기를 만드는 중이다. 사실 저번 글에서 mysql에 blob을 통해 이미지를 저장하는 법을 올렸는데, 디비에 저장하는 법을 알았지만, 그 저장된 것을 가져오는 부분을 공부하던 중, 커뮤니티에서 그런 방법보다는 서버에 이미지를 올려서 그 url를 연동하는 법이나, 파이어 베이스에 스토리지를 올리는 편이 간단하고, 효율이 좋다는 이야기를 듣게 되었다. 마침 잘 안 풀리기도 했고, 그래도 끝까지 blob으로 이미지를 가져오게 하는 법을 알고, 마무리하고 싶었지만, 뜻대로 된 것 같지는 않다. ㅠㅠ 그래서 이 blob은 이 정도 까지만 알고(언젠가 배울 날이 올 것이다.) 더 효율적이라는 파이..
오랜만에 글을 쓴다. 최근 주말 동안 비트코인이라는 신세계에 빠져서 안드로이드의 신경을 많이 쓰지 못했다. 그래서 그런지 막상 하려니까 머리가 복잡해지고 힘들었지만, 금방 다시 집중이 되어서 무사히 이미지 BLOB이란 기술을 오늘 알게 되었다. 사실 오늘도 삽질을 오래 하게 되었는데, 원래는 저번시간에 phpmyadmin에 디바이스에 사진 경로만 저장해서 보는 법을 올렸다. 2021.03.10 - [Programing/Android Studio With Java] - 안드로이드 phpmyadmin 연동 / 이미지 경로를 phpmyadmin에 올려보자. / 데이터 베이스 이미지 저장하고 불러오기 TIL # 14 안드로이드 phpmyadmin 연동 / 이미지경로를 phpmyadmin에 올려보자. / 데이터 ..
뒤늦게 수정합니다 이미지 경로만 저장하여 하나의 디바이스에서만 불러 올 수 있습니다. 이 부분을 저도 착각하여 다음시간에 이미지 저장 후 불러오기 mysql편으로 올리겠습니다 오늘 프로필 이미지를 만들었지만, 또 하나 고전했던 것이 기존에 쓰던 데이터베이스에 이미지를 저장하고 불러오는 법을 알아내는 것이었다. 이렇게 복잡한 일이었을까? 아직 내가 초보라서 그런지, 정말 복잡한 방법들이 많았다. 나 같은 경우는 우분투 서버를 AWS EC2로 사용하고 있었기에, 구글링을 통해서 얻은 정보는 파이어 베이스를 사용해라.. 리눅스 서버를 사용해라 등등 지금 내 상황에 맞지 않는 답변들 밖에 없었다. 그래서 준비했다. 정말 간단히 이미지를 저장하고 불러오는 방법이다. 우선 phpmyadmin을 구축을 한 상태에서 ..
프로필을 만드는 중에 갤러리에서 이미지만 가져오려고 여러 기능 들을 찾아보았다. 권한도 주고, 복잡한 기능들이 많았는데, 나는 간단히 갤러리에 사진만 가져올려고 했기 때문에, 이 정도로 힘든 작업인가.. 하고 망설여졌다. 그러다가 방법을 알아냈다. 해결책 정말 간단하다. 우선 갤러리에서 이미지를 가져올때, 이미지가 회전되어서 이미지 뷰에 담기는 현상이 있는데, 이러한 현상은 기기마다 다르다고 한다. 해결하는 방법은 글라이드 라이브러리를 통해서 이미지뷰에 이미지를 넣는 방법이 있다. 우선 라이브러리를 설치하자. dependencies { implementation 'com.github.bumptech.glide:glide:3.7.0' } 그리고 난 후 MainActiviy.java public class ..
주말을 보내고 다시 빡세게 코딩 준비중이다. 오늘 잠시 로딩창을 간단하게 구현하기 위해 구글링을 하면서 알게 된 사실들을 적어본다. andro-jinu.tistory.com/entry/androidstudio2 [안드로이드 스튜디오] 로딩창 구현 (ProgressBar) 이번 포스팅에서는 커스텀 프로그레스바를 만들텐데 대기시간이 필요할때 주로 사용되는 로딩창을 프로그레스바로 구현해보도록 하겠습니다. 먼저 새로운 프로젝트를 생성합니다. 템플릿은 andro-jinu.tistory.com 출처를 밝힙니다! 로딩창 만들기 public class ProgressDialog extends Dialog { public ProgressDialog(Context context) { super(context); // 다이..
이번주의 마무리가 되었다. 벌써 금요일이다. 개발을 하면서 하루하루 시간이 정말 빨리 가는 것 같은 느낌이다. 오늘은 만들고 있던 앱이 프래그먼트에서 프래그먼트로 이동할 때, 값이 초기화 되고 있다는 사실을 깨달았다. 값을 주고 프래그먼트 생명주기에 하나씩 값을 주면서 연구해 보았지만, onAttach가 제일 먼저 생성이 됨에도, 초기화를 막을 방법이 없다는 사실을 깨달았다. 그래도 포기하지 않고, 액티비티의 생명주기에도 손을 댔는데, 프래그먼트가 이상하게 먼저 생성이 되어서 액티비티에 값이 전달이 되질 않았다. 물론 번들로 하였다. 하지만, 볼리를 이용한 작업이 내 생각처럼 되질 않았다. 그래서 찾아내고 찾아내니 프래그먼트를 그냥 재생성 하지 않고, 다른 프래그먼트를 왔다갔다 해도 그대로 값이 남아있고..
오늘은 살짝 힘들었다. 만들고 있는 앱이 계속 말썽을 부렸기 때문이다. 기존에 프래그먼트 A 위에 뷰 페이저를 통해 프래그먼트 B를 올렸는데, 프래그먼트 A에서 B에 있던 버튼을 참조해서 버튼을 누를 일이 생겼는데, 누르게 되면 B에서는 버튼이 반응 없는 것이었다. 그렇다고 같은 코드를 두 프래그먼트에 쓰는 건 오류도 나고, 너무 비효율적이라고 판단하여 B프래그먼트에 있는 코드를 모두 B로 옮기고 몇 가지 수정을 했다. 그런데, 갑자기 뜨는 오류 위와 같은 오류가 뜨는 것이었다. did not then call Service.startForeground(): Service에서 startForground() 메서드를 호출하지 않았다는 거 같은데, 웃긴 게 앱은 켜졌지만, 한 10초 지나서 앱이 종료가 되었..
오늘로 세 번째 글이다. 아까 올렸던 ConnectivityManager이다 이것을 이제는 extends로 이용해보자. 우선 Service를 이용해야 하는데, 나는 아직 Service에 대해서 깊게 이해하지는 않았다. 대충 알고 있는 어느 정도 개념은, 눈에 보이지 않은, 디바이스의 백그라운드에서 실행할 수 있다고 들었다. 우선 메인 액티비티에서 Intent로 서비스에게 요청하면, 서비스는 네트워크 콜백 클래스에서 값을 받아서 화면에 값을 출력하는 정도로만 알고 있고, 오늘 예제에도 그 정도만 써보고자 한다. lcw126.tistory.com/278 안드로이드 NetworkCallback(실시간 네트워크 체크) NetworkCallback에 자세한 사항은 아래 안드로이드 개발자 사이트를 참고 바랍니다. ..
오늘로 두 번째 글이다. 오늘 배운 것 중에 유용한 녀석 중 하나였다. 간단하게 설명하면, 네트워크가 켜져있는지 안 켜져 있는지 정보를 얻고, 그에 맞게 실행할 수 있다. ConnectivityManager connManager = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); NetworkInfo networkInfo = connManager.getActivityNetworkInfo(); if (networkInfo != null ) { if (networkInfo.geType() == ConnectivityManager.TYPE_WIFI) { // Wi-Fi일때 작업 } else if (networkInfo.getType()..
오늘도 빡세게 코딩을 하며 시간을 보냈다. 하나하나 배운걸 말하기에는 너무나 부족한 시간.. 조금씩 나누어서 짧게 짧게 정리하기로 했다. 사실 오늘 이 기능을 알기 전까지, 이런 기능이 있었으면 좋겠다는 생각을 했다. 텍스트가 바뀔때마다 무언가 실행되는 메서드는 없을까? 하고 말이다. 사실 API문서 읽는 것도 서툰 나로써는 누군가에게 물어보거나 우연히 구글링 중 발견한 기술들이 전부기 때문이다. 하지만 이제 API문서는 완벽하진 않지만, 어느정도 읽고 있다. 이야기가 길어졌다. TextWatcher를 한번 살펴보자 사용법 textView.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequen..
뜨문뜨문 글을 쓰게 된다. 요즘 급속도로 앱에 대해서 배우고 있는 중이다. 중요하게 생각되고, 다음에도 쓸 것 같은 기능을 위주로 글을 쓰려한다. 아무래도 시간은 유한하기 때문에 모든 정보를 쓰는 데에는 한계가 있음은 확실하다. phpmyadmin 이란 sql을 편리하게 관리할 수 있는 php로 만들어진 그래픽 사용자 인터페이스이다(GUI). 한 달 전쯤 로그인 기능을 구현 중에 phpmyadmin을 다루는 법을 배워서 편하게 쓰게 되었다. 동시에 sql문으로 테이블도 짜면서, 한 층 더 성장하는 계기가 되었다. 오늘은 저번 시간에 배운 putty를 이용하여 AWS ec2 인스턴스를 만들고, 서버를 연동해서 phpmyadmin까지 만들어 보았다. 2021/02/28 - [Programing/AWS] - ..
드디어 글을 쓰게 된다. 저번 주부터 골머리를 앓아가지고.. 바로 이 녀석을 제대로 습득하지 못해서... 나 서버를 만들 수 있을까?.. 하는 걱정으로 이어지게 만든 AWS.. 이 아마존 웹 서비스에 대해서 공부해볼까 한다. 우선 나에 경우는 안드로이드 어플을 만들던 도중 무료 호스팅 서버인 닷홈을 이용해 서버 연동으로 phpmyadmin으로 아주 신나게 공부를 하고 있는데, 서버 접속도 원활하지 않고, 이제 무료 버전이 끝나가기에 주변 지인의 추천으로 AWS를 배우게 된다.(1년 첫 유저는 프리티어로 무료로 사용할 수 있다고 한다) 그래서 우선 아마존에 가입을 하고 어떤 식으로 서버를 만드는지 차근차근 보도록 하겠다. 사실 이 과정이 매우 오래걸려서 지루할 수 있다. 여러 편으로 나누고 싶은 생각이 없..
하하 오늘 자바의 정석 강의 영상에서 얻은 영상 중에서 캡처한 사진이다. super() 메서드가 이해가 잘 안 갔었는데, 정말 이해가 잘 가는 영상이다. 보통은 부모한테 상속받은 자식 클래스안에 메서드 인자가 부모 클래스에도 있을 때, 사용하는 것이라고 한다. 밑에 super(x, y)처럼 표기해주면 된다. 아무튼 오늘은 이 사실도 배웠지만, 더 중요한 것을 해보려고 한다. 보통 fragment 끼리 정보를 전달할 때는 보통 번들을 사용하지만 실험을 해본 결과 Viewpager위에 프래그먼트 끼리 번들로 데이터 전송이 안된다.(방법이 있을 것인데, 아직 내가 초보라 모르겠다.) 그러다가 ViewModel을 이용한 데이터 전달 방법을 알게 되었다. 해결법 우선 저번에 사용하던 뷰 페이저를 똑같이 응용하겠습..
오늘도 열정적으로 개발하는 자팍이입니다. 오늘 배웠던 이 타이머는 어디서도 구하지 못해.. 직접 물어보고, 한참을 보다가 구현해낸 누군가에겐 별거 아니지만, 저에게는 값진 발견입니다.. 헤헤 금연 타이머 앱을 만들던 중.. 어떻게 하면, 입력한 시간과 날짜대로, 시간이 입력될까? 라는 생각이 들었습니다. 커뮤니티에 물어보니, 날짜나 시간을 계산하고, 그것을 초(밀리세컨드)로 변환하면, 그것이 가능하다고 했습니다. 하지만 처음에는 도저히 이해가 되지 않았습니다. 우선 예제를 보여드리겠습니다. 이 기능을 사용하시지 않더라도, 예제에 포함된 Calculate_Date.java안에 날짜 차이 구하기, 시간 차이 구하기, 현재 날짜와 시간 나타내는 메서드가 있으므로, 잘 활용하시길 바랍니다. 코드들 MainAct..
일단 제목이 어렵다. 이게 무슨 소리인가 할 수도 있겠다. 해답을 겨우 찾을 수 있어서 다행이었다. 아무리 찾아도 스택오버플로우에도 가도 알 길이 없던 중에, 콜백 리스너!라는 방법을 알게 되었고, 바로 사용을 해보았다. 우선 나는 자바에 대한 지식이 깊지도 않고, 안드로이드에 대해 아직 공부한 지 3달이 조금 넘은 새내기라 정확하지 않을 수도 있다는 점을 명시한다. 우선 상황은 이러했다. 스택오버플로우에 올리기 위해서 영어로 썼던 것이다. 우선 상황은 이러했다. 프래그먼트에서 뷰 페이저를 두고 그 위에 여러 가지 프래그먼트가 있는데, 다이얼로그에서 버튼을 클릭하면, 저 뷰 페이저에 프래그먼트로 내용이 전달되는 액션을 취하려고 했다. 다이얼로그에서 프래그먼트로 전달하고, 프래그먼트로 전달도 해보고, 어뎁..
서론이 길어서 급하신 분들은 구분선부터 봐주세요! 꽤나 오랜만에 글을 쓴다. 요즘 프로젝트를 만드느라 정신이 없기 때문이다. 거의 매일 일기를 쓰다시피 했는데, 이제는 일기 쓰는 시간에도 코딩을 하고 싶어서, 일기를 자연스레 쓰지 않았던 것 같다. 그러다가 문득 영상을 보았는데, Today I Learned라고 오늘 나는 무엇을 배웠는지, 기록해나가는 연습이라고 한다. 이게 참 좋은게 복습을 하는 중요한 효과로 작용을 할 거라는 기대를 한다. 그냥 단순히 개발 포스팅보다는 정확하진 않더라도, 내가 나중에 누군가에게 설명하고 배운 것을 정리할 수 있는 시간이 되었으면 한다. Fragment 만들기 본론으로 넘어가겠다. 우선 나 같은 경우는 프로젝트를 만들던 도중 프래그먼트 위에서 뷰 페이저를 사용해서 또 ..
●해당 JavaScript 관련 글 들은 제가 알아보기 쉽게 메모장 형식으로 쓴 것이며, 실제 내용과 상이할 수 있으며, 제가 알아보기 쉽게 쓴 글로써, 읽으실 때 참고만 하시길 권장드립니다. 대부분의 내용은 생활코딩을 참고하였습니다. 출처를 밝힙니다. 버튼을 누르면, html의 속성이 바뀌게 할 수 있는 것이 바로 제목에 나와있는 명령어로 가능하다. html css javascri1pt 최진혁 최유빈 한이람 한이은 우선 화면에 나와 있는 강조 버튼을 누르면 html css javascript부분에만 밑줄이 그어지는데, 어떤 원리인지 설명하려고 한다. 일단 강조를 클릭하게 되면 onclick이라는 속성이 작용이 되면서 document.getElementById가 ()안에 있는 타깃을 제어하므로, 타깃(임..
●해당 JavaScript 관련 글 들은 제가 알아보기 쉽게 메모장 형식으로 쓴 것이며, 실제 내용과 상이할 수 있으며, 제가 알아보기 쉽게 쓴 글로써, 읽으실 때 참고만 하시길 권장드립니다. 대부분의 내용은 생활코딩을 참고하였습니다. 출처를 밝힙니다. 도큐먼트 카테고리 안에 getElmentById(프로그래밍적으로 무언가를 제어하기 위한 함수이다)라는 함수로 인해 user_input이 한 마디로 유저가 입력한 text로 입력한 값이 경고창(alert)으로 뜨게 된다. 사용자가 텍스트 필드안에 어떠한 정보를 입력하면 value라는 값을 통해 알 수 있다. 아래와 같이 value를 입력한다. 이런 식으로 필드에 쓰게 되면, 자신이 입력한 값을 누르고, white버튼을 누르면 자신이 입력한 값이 나온다.
이 글은 제가 공부하기 위해 여러 사전이나, 책, 그리고 다른 개발자 분의 내용을 타이핑하여 학습한 내용이므로, 이 원본은 출처를 꼭 남깁니다. 원래내용과 살짝 다를 수 있는 점 양해바랍니다. 출처: 위키백과, http://www.ktword.co.kr/abbr_view.php?m_temp1=1067 scientific notation, scientific form, standard index form, standard form 등 여러 이름으로 불리고 있다. 과학적 기수법(과학적 표기법)은 너무 크거나 너무 작은 숫자들을 십진법으로 편하게 작성하여 표현하는 방법이다 과학자, 수학자, 공학자들이 공통적으로 사용하는데, 부분적인 이유는 특정한 산술을 단순화시켜 주기 때문이다.
이 글은 제가 공부하기 위해 여러 사전이나, 책, 그리고 다른 개발자 분의 내용을 타이핑하여 학습한 내용이므로, 이 원본은 출처를 꼭 남깁니다. 원래내용과 살짝 다를 수 있는 점 양해바랍니다. 출처 : https://m.blog.naver.com/PostView.nhn?blogId=ryu091011&logNo=110032726404&proxyReferer=https:%2F%2Fwww.google.com%2F, 위키백과 유효숫자 유효숫자(Significant figures)는 수의 정확도에 영향을 주는 숫자이다. 보통 다음의 경우를 제외하고 모든 숫자는 유효숫자이다. 0.00012의 1 앞에 있는 0들처럼 자릿수를 표시하기 위한 0 유효숫자가 아닌 자리의 숫자와 연산하여 영향받은 자리의 숫자 유효숫자의 개..
이 글은 제가 공부하기 위해 여러 사전이나, 책, 그리고 다른 개발자 분의 내용을 타이핑하여 학습한 내용이므로, 이 원본은 출처를 꼭 남깁니다. 원래내용과 살짝 다를 수 있는 점 양해바랍니다. 출처 : https://m.blog.naver.com/PostView.nhn?blogId=ryu091011&logNo=110032726404&proxyReferer=https:%2F%2Fwww.google.com%2F, 위키백과 부동소수점 부동소수점(floating point) 또는 떠돌이 소수점이라고 부른다. 방식은 실수를 컴퓨터상에서 근사하여 표현할 때, 소수점의 위치를 고정하지 않고, 그 위치를 나타내는 수를 따로 적는 것으로, 유효숫자를 나타내는 가수(假數)와 소수점의 위치를 풀이하는 지수(指數)로 나누어 ..
이 글은 제가 공부하기 위해 여러 사전이나, 책, 그리고 다른 개발자 분의 내용을 타이핑하여 학습한 내용이므로, 이 원본은 출처를 꼭 남깁니다. 원래내용과 살짝 다를 수 있는 점 양해바랍니다. 출처 : gsmesie692.tistory.com/94 이진 기수법 컴퓨터는 0과 1로 이러어진 기계어를 사용한다는 사실은 이미 알고 있다. 인간은 수를 표현할 때 기본적으로 10진법을 사용하지만, 컴퓨터는 이를 0과 1인 이진법으로 저장하게 된다. 그러므로 컴퓨터가 수를 표현하는 법에 대해서 이야기하려면 10진수를 2진수로 바꾸는 방법에 대해서 알아둘 필요가 있다. 정수의 경우는 간단한 편이고, 2진수라는 걸 접해봤다면 대부분 알 내용이다. 0, 1, 10, 11, 100, 101, 111, 1000,... 이런..
*구글링을 통해 참고한 공부자료입니다. 접근 지정자 접근 지정자란 클래스 내에서 접근을 제한한다는 의미에서 붙여진 이름이다. 한마디로 클래스 내에 멤버의 접근을 제한하는 역할을 수행하는데, 무슨 소리인지 모르겠다... 한 번 천천히 살펴보자.. 우선 public, protected, default, private를 자바를 사용할 때 많이 보았을 것이다. 하나하나 설명해보겠다. 우선 public 모든 접근을 허용하고, 어떠한 클래스가 와도 모두 허용. protected 상속받은 클래스 또는 같은 페이지에서만 접근이 가능하다. default 기본 제한자로, 아무것도 붙지 않고, 자신 클래스 내부와 같은 패키지 내에서만 접근이 가능. priavate 외부에서 접근이 불가능하다. 즉, 같은 클래스 내에서만 접근..
●해당 JavaScript 관련 글 들은 제가 알아보기 쉽게 메모장 형식으로 쓴 것이며, 실제 내용과 상이할 수 있으며, 제가 알아보기 쉽게 쓴 글로써, 읽으실 때 참고만 하시길 권장드립니다. 대부분의 내용은 생활코딩을 참고하였습니다. 출처를 밝힙니다. HTML같은 정적인 요소와는 다르게 자바 스크립트는 동적인 요소인 프로그래밍 언어이다. 명령을 내릴 때는 시작하고 끝낸다. document.write()는 자바스크립트에서 화면에 출력할 때 쓰는 코드이다. Ex) https://github.com/qjsqjsaos qjsqjsaos - Overview I want to be an Android developer who makes an impact on the world. I'll do my best. Ac..
The device needs more free storage to install the application (extra space is needed in addtion to APK size). 갑자기 이런 오류가 떴다. 무엇이 문제일까? 보아하니 안드로이드 예물 레이터에 대한 내용인 거 같다. (device)에서 유추... 구글링을 해보니 용량이 부족하면 발생한다고 한다. 역시 항상 C드라이브나 D드라이브의 용량을 많이 확보해두는 편이 좋을 듯싶다. 사실 간단한 방법은 에뮬레이터를 삭제했다가 다시 설치하는 방법이다. 하지만, 매번 이럴 수도 없고... 하지만 방법은 있다. C:\Users\[사용자]\.android\avd\Pixel_2_API_30.avd\userdata-qemu.img 다음과 같은 ..