Programming
-
안드로이드 Q 버전, IMEI 접근 Deprecated에 대한 마이그레이션 대응기Programming/Android 2020. 4. 3. 01:50
얼마 전 안드로이드 리뉴얼 작업을 마친 후, 데모 버전으로 테스트를 보냈는데 갤럭시 20 유저의 로그인이 되지 않는다는 이슈를 보고받았다. 정확히 확인해보니, 안드로이드 버전 10 (이하 Q 버전)의 유저에게서 로그인 이슈가 발생했다. 에러가 발생하는 부분을 찾아 디버깅을 해보니 로그인 및 회원가입에서 필수적으로 들어가야 하는 IMEI 코드가 null 값으로 들어오는 것이 문제였다. 이에 대한 문제를 더 정확히 파악하기 위해 안드로이드 Q 버전 업데이트 시 변동사항을 안드로이드 도큐먼트에서 확인했다. 도큐먼트를 확인해보니 문제가 명확해졌다. 기존 앱에서는 회원가입과 로그인시 getDeviceId()를 이용하여 IMEI 코드를 가져왔다. 그러나 앱 내에서는 이 IMEI 코드를 사용하는 부분을 찾을 수 없었..
-
백준 #4344 평균은 넘겠지.Programming/Issue 2020. 3. 26. 00:54
입력 첫째 줄에는 테스트 케이스의 개수 C가 주어진다. 둘째 줄부터 각 테스트 케이스마다 학생의 수 N(1 ≤ N ≤ 1000, N은 정수)이 첫 수로 주어지고, 이어서 N명의 점수가 주어진다. 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. 출력 각 케이스마다 한 줄씩 평균을 넘는 학생들의 비율을 반올림하여 소수점 셋째 자리까지 출력한다. 배운점 ( 나중에 더 공부해서 보강하기) 알고리즘 문제에서 Scanner보다 BufferedReader + StringTokenizer 가 더 효육적인 이유. 자바에서는 Scanner 또는 BufferedReader를 이용하여 키보드 상에서의 입력을 받을 수 있다. Sacnner의 경우 정규식을 이용한다. 따라서 반복적인 작업을 실행할 경우, 시간적으로..
-
Eclipse에서 Spring + Maven 연동Programming/Spring 2020. 1. 8. 00:42
먼저 Spring을 연동해보자. 상단의 [Help] - [Eclipse Marketplace] 선택한다. 그리고 'Spring'으로 검색해서 두번번째 [Spring Tools 3 Add - On for Spring Tools 4]를 Install한다. Install을 누르고, [Confirm] 클릭 - [ I accept them ... ] 선택 - [Finish]를 클릭하면 STS 설치는 끝난다. 다음으로는 Maven 설치를 해보자 일단 아래의 주소로 들어간다. https://maven.apache.org/download.cgi 불러오는 중입니다... 그리고 apache-maven-3.6.3-bin.zip을 다운받는다. 다운을 다 받았다면 maven에 대한 환경 변수 설정을 해주어야 한다. 시스템 속성..
-
TIL_setTimeout()Programming/CS 2019. 11. 29. 01:52
functoion A가 있다. 그리고 그 안에, functoin B와 function C가 있다. function A를 호출하였을 때, function B를 실행시킨뒤 3초 뒤, function C를 실행시키려고 한다. 어떻게 구현할 수 있을까? 일단, B와 C를 실행하기 전에 3초 동안의 지연을 주어야하기 때문에 특정시간 이후에 동작하도록 하는 자바스크립트 내장 함수인 setTimeout()을 떠올릴 수 있다. setTimeout('실행할 함수' , 지연시간); setTimeout() 은 이러한 파라미터를 가지고 첫번째 인자의 함수 (callback fn) 가, 두번째 인자만큼의 일정 시간이 지나면 실행(delay) 될 수 있도록한다. 그런데, 이는 단순히 '몇초 지연 되었다가 실행' 의 의미를 갖고 ..
-
leetcode_Two City SchedulingProgramming/CS 2019. 11. 16. 02:18
오늘은 leetcode의 Two City Scheduling을 풀어보았다. There are 2N people a company is planning to interview. The cost of flying the i-th person to city A is costs[i][0], and the cost of flying the i-th person to city B is costs[i][1]. Return the minimum cost to fly every person to a city such that exactly N people arrive in each city input : [[10,20],[30,200],[400,50],[30,20]] outpupt : 110 인터뷰를 위해 회사로 가야하..
-
TIL_간단한 여행 플래너(?) 제작기_다섯번째Programming/React 2019. 11. 13. 00:56
#오늘 할 일 (19.11.12)📚 다음날 버튼 눌렀을 때 1일차 -> 2일차로 변경하기 지금까지는 음식점, 명소, 숙소의 버튼을 누르면 그에 맞게 이미지가 변경 되도록하고, 입력폼에서 입력한 내용을 리스트에 반영하는 기능까지 구현했다. 이제는 몇일차의 일정인지를 표시하기 위한 '다음날' 버튼을 구현해보고자 한다! 상단의 음식점, 명소, 숙소, 다음날 (이하 type 버튼)은 App.js에서 다음과 같이 정의되어있다. const types= [ {key:'food', value:'음식점'}, {key:'place', value:'명소'}, {key:'stay', value:'숙소'}, {key:'nextday', value:'다음날'} ]; 그리고 이것을 PlanForm.js로 넘겨서 const Type..
-
TIL_간단한 여행 플래너(?) 제작기_네번째Programming/React 2019. 11. 11. 00:04
#오늘 할 일 (19.11.10)📚 확인 버튼을 눌렀을때, 인풋 값이 초기화 안되는 현상 해결하기 # 문제 발생 🤮 ▪ 인풋 값이 초기화 안되는 현상? 확인 버튼을 누르면, 아이템이 리스트에 추가되고 인풋 값은 초기화 되는 기능을 구현하고자 한다. 이를 구현하기 위해 확인 버튼을 눌렀을 때 발생하는 이벤트에서 state 값을 ''로 세팅해주었다. 하지만 결과는 바뀌지 않았다. state 값이 바뀐다고 해도, input의 value을 따로 지정해주지 않아 영향을 미치지 않았기 때문이다. 그래서 state가 변할 때마다 input의 value값이 변할 수 있도록 value={this.state.price} 이와 같이 state 값을 value 값으로 지정해 주었다. 이렇게 시도해보니 초기화 기능은 잘 구현 ..
-
TIL_간단한 여행 플래너(?) 제작기_세번째Programming/React 2019. 11. 10. 01:33
#오늘 할 일 (19.11.09)📚 여행 리스트에 아이템 추가할때 발생하는 에러 수정하기 - 버튼 여러번 누르면 warning 발생 - 확인 버튼을 눌렀을 때, 값이 업데이트 되지 않는 이유? -(번외) commit을 했는데 잔디가 안 심어지는 이유? # 문제 발생 🤮 ▪버튼을 여러번 누르면 warning? 버튼을 여러번 누르면 key값이 'NaN'인 아이템이 중복된다는 warning이 개발자 도구에 찍혔다. 분명 나는 새로운 아이템이 추가될 때마다 컴포넌트에 id++로 key 값에 id를 주었는데, 왜 key 값이 NaN(숫자아님) 이 나오는 걸까? . . 알고보니, id++를 하면서 각각 고유의 값을 key로 부여하긴 했지만 초기 id값을 설정하지 않았다. 없는 값에 +연산을 하려다보니 NaN 가 발..