전체 글

전체 글

    [TIL] 22.03.16

    공부한 것 안드로이드 강의 수강 Retrofit2, OkHttpLoggingInterceptor Shimmer Glide Content Resolver Unsplash API 알게된 것 1. Glide 오늘 공부를 하면서 Glide 가 생각보다 엄청 강력한 라이브러리라는 것을 깨달았다. Glide 를 사용한지는 꽤 됐지만 이를 제대로 사용하고 있지 않았다. 우선 그동안 Glide 를 사용할 때 아래처럼 써왔다. 그냥 단순히 이미지뷰에 이미지를 넣어주기 위한 용도로... private fun bindViews() { Glide.with(binding.root) .load(profileImageUrl) .into(binding.profileImageView) } 하지만 정말 다양한 기능을 제공하고 있었다. ..

    [TIL] 22.03.15

    공부한 것 안드로이드 강의 수강 알게된 것 1. OkHttpLogging Retrofit 을 사용해서 API 를 호출할 때 클라이언트의 문제인지 서버의 문제인지를 확인하기 위해 HTTP 의 로그를 봐야하는 경우가 있다. 이 때 사용할 수 있는 것이 OkHttp 의 HttpLoggingInterceptor 이다. // Retrofit Interface 를 구현한다. private val openApiService : OpenApiService by lazy { Retrofit.Builder() .baseUrl(Url.OPEN_API_BASE_URL) .addConverter(GsonConverterFactory.create()) .client(buildOkHttpClient()) .build() .crea..

    [TIL] 22.03.14

    공부한 것 안드로이드 강의 수강 카카오톡, 공공데이터 API Retrofit, OkHttpLoggingInterceptor FusedLocationProvider Coroutine AppWidgetProvider Service Lifecycle 알게된 것 1. FusedLocationProvider 안드로이드에서 위치 정보를 받아올 수 있는 방법에는 LocationManager 와 FusedLocationProvider 가 있다. 우선 LocationManager 은 getLastKnownLocation 또는 LocationListener 를 통해서 위치 정보를 가져올 수 있다. // LocationManager 를 정의한다. val locationManager = getSystemService(LOCA..

    [TIL] 22.03.13

    공부한 것 안드로이드 강의 수강 AppWidgetProvider 프로그래머스 1문제 알게된 것 안드로이드 위젯을 사용하기 위해서는 Manifest 에 Recevier 를 등록하고 이 때 action 과 meta-data 를 넣어준다. meta-data : 위젯 레이아웃의 크기, 초기 레이아웃 리소스, 업데이트 빈도 등 앱 위젯의 기본적인 특성을 정의한다. minWidth, minHeight : 위젯이 기본적으로 사용하는 최소 크기이다. updatePeriodMillis : onUpdate 메소드를 호출하여 위젯을 업데이트하는 빈도를 결정한다. 업데이트 시에 디바이스 대기모드가 해제되므로 백그라운드에서는 최소 30분, 이보다 짧은 시간 간격으로 업데이트하는 것을 금한다. previewImage : 앱 위젯..

    [문자열 / Kotlin] 2019 KAKAO BLIND RECRUITMENT - 오픈채팅방

    문제 풀이 언어 Kotlin 코드 class Solution { fun solution(record: Array): Array { val history = arrayListOf() val name = mutableMapOf() val result = arrayListOf() for (e in record.iterator()) { val act = e.split(" ") when (act[0]) { "Enter" -> { name[act[1]] = act[2] history.add(Pair(act[0], act[1])) } "Leave" -> { history.add(Pair(act[0], act[1])) } "Change" -> { name[act[1]] = act[2] } } } history.map ..

    [구현 / Kotlin] 2022 SK ICT Family 개발자 채용 챌린지 - 2번

    우선 간만에 알고리즘 문제를 접했던 터라 많이 어려웠다. FE / APP 개발 직군을 선택했고 총 4문제가 나왔는데 DP 1, 구현 1, 그래프 2 이렇게 나왔다. 사정이 있어서 30분 정도 뒤늦게 참석했고 2시간 동안 2번 하나만 풀었다. 시간이 더 있었어도 다른 문제를 풀지 못했을 것이다. 안드로이드 공부 때문에 알고리즘을 소홀히 했는데 앞으로는 편식하지 말고 알고리즘도 꾸준히 풀어야겠다. 문제 문제 저작권에 의해서 캡쳐는 하지 못했고 간단하게 설명하자면 주어진 배열을 재정렬하는 문제였다. 시계 방향, 반시계 방향으로 총 2가지의 방향이 있었으며 배열의 크기는 홀수와 짝수가 존재했다. 결과적으로 총 4가지 경우 대해 배열을 재정렬하는 문제였다. 풀이 언어 Kotlin 코드 class Solution ..

    [문자열 / Kotlin] 2020 KAKAO BLIND RECRUITMENT - 문자열 압축

    풀이 언어 Kotlin 코드 fun solution(s: String): Int { var minLength = s.length for (i in 0 until s.length / 2) { var subString = s.slice(0..i) var answer = "" var cnt = 1 var last = 0 for (j in i + 1 until s.length - i step i + 1) { // 마지막 Index 를 저장한다. last = j + i + 1 // 같은 SubString 인 경우 이를 카운트한다. if (subString == s.slice(j..j + i)) cnt += 1 // 다른 SubString 인 경우 else { if (cnt > 1) { // 숫자 + SubStri..

    [TIL] 22.03.10

    공부한 것 안드로이드 강의 수강 깃허브 API Retrofit2 Room SharedPreference 알게된 것 암시적 인텐트 를 사용할 경우 action 과 category 는 필수 요소이다. 외부 스킴 을 이용하여 특정 Url 일 때 액티비티가 호출되도록 구현할 수 있다. 외부 앱을 실행하고 다시 액티비티로 돌아온 경우 onCreate 가 아닌 OnNewIntent 가 호출된다. Room 을 사용할 때 Entity 에서 Primary Key 는 Null 이 될 수 없다. (당연) PreferenceManager 를 통해 기기 내부에 데이터를 저장할 수 있다. 공부할 것 코루틴 에 대해 아직 미숙하다. 공식 문서와 미디엄 블로그를 참고하여 공부하자. 느낀 점 배울게 너무 많다. 열심히 살아야겠다.

    [퍼듀 일기] 김치가 그립습니다

    드디어 마지막 일기! 여러 사진과 함께 두 달간의 미국 생활에서 느낀 점을 적어보려고 한다. 출국 전 마지막 쇼핑 인디애나 폴리스에 있는 아울렛을 갔다. 폴로에서 선물로 줄 옷을 사고 이곳 저곳 돌아다녔다. 미국 안녕~, 한국 안녕! 미국에 있으면서 한국 가고 싶다는 생각이 굴뚝 같았는데 막상 한국으로 돌아가려니 뭔가 아쉬웠다. 시카고나 뉴욕을 못 가서 그런건가.. 🥺 미국을 올 기회가 생기게 된다면 그 땐 대도시를 꼭 가봐야겠다. 그래서 어땠어요? 전에 얘기했던 것처럼 프로젝트를 진행하면서 개발과 논문을 모두 해결해야 했기에 생각보다 많이 바쁘게 움직였던 미국 생활이었다. 논문... 진짜 이 놈의 논문 때문에 나름대로 스트레스를 받았고 내가 생각했던 미국 생활과 조금 달랐기에 미국에 있을 때는 '한국 ..

    [퍼듀 일기] 적응 완료

    한국에서 쓰는 세 번째 퍼듀 일기! 클라이밍 한국에서 클라이밍을 하던 친구를 따라 클라이밍을 하러 왔다. 미국을 오기 전에 취미로 클라이밍 하는 친구들이 부쩍 많아졌는데 처음엔 잘 몰랐었다. 얼마나 재밌길래 그러지? 했는데 막상 해보니까 나도 빠져들어 버렸다. 뭔가 이번엔 꼭 깨야겠다는 이런 오기가 생겨서 계속 도전하게 된다. 아무튼 꿀잼 👍 어쩌다보니 병원... 의도치 않게 미국에서 병원을 가게 됐다... 난 항상 렌즈를 끼기 전에 세척액으로 한 번 더 세척을 하고 눈에 착용한다. 집에서 가져간 리뉴 세척액을 다 써서 근처에 있는 마트에서 세척액을 샀고 어느 때처럼 세척을 하고 눈에 꼈다. 근데 눈에 끼는 순간 난리가 났다. 넣자마자 눈을 뜰 수가 없었다. 너무 따가웠다. 머릿속으로는 이 렌즈를 무조건..