본문 바로가기
반응형

전체 글88

Gson과 JSON의 toString 회사에서 Json을 Gson으로 변경하는 작업을 시작한다고 합니다. 그래서 아무 생각 없이 JSONObject를 JsonObject로 바꾸는데 기본적으로 Json과 Gson에 대한 이해도가 부족하다는 것을 깨닫게 되었습니다. 솔직히 두 개의 차이점을 모르고 그냥 변경하고 있었을 때는 몰랐습니다. 이 두 개의 차이가 현저하다는 사실을요! 그러나 문제는 아래 부분의 코드에서 발생했습니다. nurl += "$t=${URLEncoder.encode(u.toString(), "utf-8")}&" 이 코드에서 u는 현재 JsonElement입니다. 하지만 원래 JSONObject를 사용할 때에는 아무런 문제도 없었죠. 하지만 이것을 Gson을 쓰기 위해 변경한 후에 자세히 보니 타입이 JsonElement로 변경되.. 2021. 1. 23.
디버깅과 릴리즈, 그리고 proguard 요즘 회사에서 코틀린으로 어플을 만들고 있는데(정확히 말하면 수정이지만), 디버깅 모드로 테스트하던 어플이 릴리즈 모드를 통해 다른 회사 사람들에게 테스트용으로 전달했더니 여러가지 기능들이 먹히지 않는 문제를 발견했습니다. 기본적으로 이것저것 검색해본 결과로는 디버그 모드가 릴리즈 모드보다 디버깅 관련 데이터를 포함하면서 실행이 되기 때문에 속도 차이가 현저하다는 얘기들이 있습니다. 실제로 제가 안드로이드 apk 파일을 만들었을 때, 디버깅 모드는 11Mb, 릴리즈 모드는 8Mb 정도로 데이터 크기부터 차이가 나는 것을 확인했습니다. 속도나 다른 부분에서는 큰 용량의 데이터를 주고 받지 않는다면 크게 체감할 수 없지만, 휴대폰의 사양을 낮췄을 때는 휴대폰이 데이터를 받지 못해 프로그램을 꺼버리는 등의 문.. 2020. 9. 3.
텐서란?(what is tensor from deep learning) 텐서는 미분 기하학을 만들면서 가우스가 도입했다고 알려져 있습니다. 뭐, 아무튼... 사실 누가 만들었는지는 중요하지 않습니다. 알고 싶지도 않구요. 하지만 이 텐서라는 개념은 물리학에서도 필수적이고, 인공지능을 하기 위해서도 필수적으로 사용되는 그러한 도구입니다. 현실 세계는 x, y, z축의 3차원과 time 축을 이용한 차원으로 총 4차원으로 표현된다고 합니다. 뭐, 제가 물리학을 전공하는 건 아니니 아무래도 그럴듯 합니다. 그리고 이러한 세계를 표현하는데에도 여러가지 방식이 존재합니다. x, y, z 축이라는 것만 봐도 학생때 공부했던 수학에 대한 지식을 끄집어 내 보면, 좌표로서 표현이 될 것 같다는 생각이 듭니다. 실제로 현실 세계를 표현하기 위해 좌표계를 쓰기도 하고, 그 좌표계의 종류 역시.. 2020. 6. 9.
안드로이드 권한 체크 액티비티의 구성(구버전) 안드로이드 스튜디오를 통한 애플리케이션 제작을 위해서는 여러 가지 기능을 이용해야 합니다. 그중, 권한 설정과 관련된 내용을 일반화해볼까 합니다. 제일 먼저 해야 할 일은 Manifests에 권한들을 추가해주어야 하는 것인데, 그것은 맨 마지막으로 떼고 먼저 자바 코드 먼저 작성해보겠습니다. if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //퍼미션 상태 확인 if (!hasPermissions(PERMISSIONS)) { //퍼미션 허가 안되어있다면 사용자에게 요청 requestPermissions(PERMISSIONS, PERMISSIONS_REQUEST_CODE); }else{ Intent intent = new Intent(this, RunningA.. 2020. 6. 9.
728x90