전체 글 211

[Jetpack Compose] LaunchedEffect란?

LaunchedEffect가 뭘까? 코루틴을 사용하기 위한 suspend function을 호출하기 위해 필요하다. 좀 더 쉽게 말하자면 중간에 멈추고자 하는 함수를 넣기 위해서 존재한다. 이게 무슨소린가 싶을거다. 이전에 내가 작성한 Delay함수 관련 글이 있다. 이것처럼 도중에 멈추고 싶을때 LaunchedEffect를 사용한다. https://naemamdaelo.tistory.com/entry/Jetpack-Compose-%08Delay-%EC%A3%BC%EB%8A%94-%EB%B0%A9%EB%B2%95 [Jetpack Compose] Delay 주는 방법 개발을 하다보면 특정 초 지난 후 에 기능이 작동하면 좋겠다는 생각을 할 때가 있다. 그러면 Delay를 줘야하는데 어떻게 줄 수 있을까?..

[Kotlin] Programmers Lv.1 문자열 내림차순으로 배치하기

https://school.programmers.co.kr/learn/courses/30/lessons/12917 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Code class Solution { fun solution(s: String): String = s.toCharArray().sortedArrayDescending().joinToString("") } 이 문제의 핵심은 Asicii 코드를 이해하고 있는 것이다. 처음에는 fun solution(s: String): String = s.filter { it.isLowerCase() }.toMut..

Programmers/Lv. 1 2023.09.07

[Jetpack Compose] local.properties에 값 숨기는 방

왜 숨겨야할까? 개발을 하다보면 외부 기능을 사용하고자 api연결을 위한 key를 발급받을 때가 있다. 무료인 기능도 있지만 부분유료, 유료인 상품들이 있다. 만약 내 Key가 유출되어 다른사람이 사용한다면 그 돈도 전부 내가 내야한다. 요즘 외국에서 매크로로 이런거 뽑아낸다더라... api key값이면 그나마 낫다고 쳐도 aws같은거는 진짜 조심해야한다. 그럼 아무데도 안올리면 되지않냐? 싶을 수도 있다. 물론 혼자서 개발할때는 괜찮다. 하지만 팀단위로 개발을 하게 되면 git을 사용할 것이다. private로 작성하면 상관이 없긴 하다. 그렇지만 public으로 공개를 하고자 할때는 값이 나타나면 안되기 때문에 숨겨야 한다. 어떻게 해야할까? 가장 먼저 설정해야 하는 것은 git의 gitignore ..

[Kotlin] zip - 배열을 묶어서 써보자

알고리즘 문제를 풀다보면 리스트 두개가 나올 때가 있다. 그 두개의 같은 Index를 참조해서 문제를 푸는 경우가 더러 있다. 그때마다 for문으로 같은 index를 참조해서 문제를 자주 풀었었다. 하지만, kotlin에는 zip이라는 함수가 있고, 이를 활용하면 편하게 해결할 수 있다. 그래서 zip함수를 소개하고자 한다. zip은 무슨 기능을 할까? 제목에 있는 것 처럼 두개의 배열을 묶어서 Pair타입의 배열을 리턴해주는 것이다. array나 list 둘다 사용 가능하다. 두개의 배열을 묶어서 하나의 배열처럼 사용 가능하게 해주는 함수로, 같은 index에 접근할 때 유용하다. 그럼 어떻게 쓸까? var list1 = listOf(1,2,3,4,5) var list2 = listOf(1,2,3,4,..

[Kotlin] Programmers Lv.1 내적

https://school.programmers.co.kr/learn/courses/30/lessons/70128 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Code /* class Solution { fun solution(a: IntArray, b: IntArray): Int { var answer: Int = 0 for (i in 0 until a.size){ answer += a[i] * b[i] } return answer } } */ class Solution { fun solution(a: IntArray, b: IntArray): Int..

Programmers/Lv. 1 2023.09.04

[Jetpack Compose] Delay 주는 방법

개발을 하다보면 특정 초 지난 후 에 기능이 작동하면 좋겠다는 생각을 할 때가 있다. 그러면 Delay를 줘야하는데 어떻게 줄 수 있을까? 두가지 방법이 있다. 1. Handler Handler(Looper.getMainLooper()).postDelayed({ // do something },1000) 하단에 있는 , 뒤에있는 숫자만큼 딜레이를 주고 중괄호 내부에 있는 코드를 실행시킨다. 1000은 1초를 의미한다. 2. LaunchEffect LaunchedEffect(Unit){ delay(1.seconds) // do something } delay 내부에 있는 시간만큼 시간이 지난 후 밑에있는 코드를 실행시킨다. Handler와 마찬가지로 1000을 적으면 1초가 되고, 위 예시처럼 1.seco..

[Kotlin] Programmers Lv.1 수박수박수박수박수박수?

https://school.programmers.co.kr/learn/courses/30/lessons/12922 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Code class Solution { fun solution(n: Int): String = "수박".repeat(n/2) + if (n % 2 == 0) "" else "수" } 사실 정말 간단한 방법은 "수박수박...수박" 길이가 10000짜리 스트링을 만들어두고 n만큼 잘라서 return 하는 방법일거다. 근데 너무 무식한 방법이라서 하기가 싫었다. 그리고 이런 식의 문제가 나왔을 때 더 ..

Programmers/Lv. 1 2023.09.02

[Kotlin] Programmers Lv.1 가운데 글자 가져오기

https://school.programmers.co.kr/learn/courses/30/lessons/12903 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Code class Solution { fun solution(s: String): String = s.slice(s.length - s.length/2 - 1 .. s.length/2) } 다들 처음으로 생각하는 아이디어는 if-else문을 사용해서 길이의 홀수 / 짝수에 따른 처리 방법일 것이다. 이때 주목해야 하는 것은 두가지다. int타입의 나누기 연산 방식 4/2 = 2이지만 5/2 = ..

Programmers/Lv. 1 2023.09.01

[Kotlin] Programmers Lv.1 제일 작은 수 제거하기

https://school.programmers.co.kr/learn/courses/30/lessons/12935 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr Code class Solution { fun solution(arr: IntArray): IntArray = if(arr.size == 1) arrayOf(-1).toIntArray() else arr.filter { it != arr.minOf {min -> min } }.toIntArray() } array에서 특정 값을 빼는 방법을 몰라서 해당 값을 뺀 배열을 새로 만드는 방법으로 진행했다..

Programmers/Lv. 1 2023.08.31

[Jetpack Compose] Android Localhost 접속하기

기존에 웹을 했던 사람들이라면 localhost에 접속하고자 할 때 "http://localhost:8080"으로 주소를 설정할 것이다. 그런데 안드로이드는 다르다. 안드로이드에서 애뮬레이터를 돌릴 때, localhost에 접속하려면 "http://10.0.2.2:8080"과 같이 주소를 설정해야한다. 아 물론 8080은 포트번호기때문에 8080포트가 아닌 다른 포트를 쓴다면 바꿔서 넣기만 하면 된다. Base URL을 "http://10.0.2.2:8080"으로 설정하고, api 주소를 뒤에 붙여서 사용하면 된다 ex) http://10.0.2.2:8080/login 나는 이런식으로 사용한다. 정말 헷갈리는게 또 swagger를 보려면 웹으로 접속하기때문에 http://localhost:8080 로 접..