반응형

전체 글 32

유클리드 호제법(ft. 최대공약수)

호제법이란 말은 두 수가 서로(互) 상대방 수를 나누어(除)서 결국 원하는 수를 얻는 알고리즘을 나타낸다. 2개의 자연수(또는 정식) a, b에 대해서 a를 b로 나눈 나머지를 r이라 하면(단, a>b), a와 b의 최대공약수는 b와 r의 최대공약수와 같다. 이 성질에 따라, b를 r로 나눈 나머지 r'를 구하고, 다시 r을 r'로 나눈 나머지를 구하는 과정을 반복하여 나머지가 0이 되었을 때 나누는 수가 a와 b의 최대공약수이다. ㅊㅊ : 위키피디아 예시1071과 1029의 최대공약수를 구하면,1071은 1029로 나누어 떨어지지 않기 때문에, 1071을 1029로 나눈 나머지를 구한다. ≫ 421029는 42로 나누어 떨어지지 않기 때문에, 1029를 42로 나눈 나머지를 구한다. ≫ 2142는 21..

알고리즘 2024.06.03

코루틴

스레드 (Thread) 스레드는 프로그램 범위 내에서 예약하고 실행할 수 있는 코드의 최소 단위.. 멀티스레딩을 지원함으로써 사용자에게 원활한 실행을 제공한다. 하지만 한정된 시간안에 UI를 준비하고 그려야하는데 이것이 복잡해지면 앱이 멈춰버린다. 또한 여러 스레드가 동시에 메모리의 동일한 값에 액세스하려고 할 때 경합 상태가 발생할 수 있다. 그래서 스레드를 직접 사용하는 것을 권장하지 않는다. 코틀린 코루틴(Kotlin Coroutine)  백그라운드 작업을 위한 스레드를 만들고 사용하는 것은 android에서 이루어지지만 코틀린은 동시 실행을 더 유연하고 쉽게 관리할 수 있는 코루틴도 제공한다.  코루틴 기능1. 상태를 저장하여 중단했다가 재개할 수 있음2. 코루틴은 실행되거나 실행되지 않을 수 있..

Android 2024.05.24

동기 / 비동기

동기(synchronous)동기 작업은 연산이 완료될 때까지 해당 작업을 호출한 스레드가 기다리는 방식이다. 즉, 작업이 완료될 때까지 다음 작업이 시작되지 않는다. 안드로이드에서는 주로 UI 스레드(Main Thread)에서 실행된다. 동기 작업의 예로는 파일 읽기/쓰기, 네트워크 요청 등을 들 수 있다.특징:블로킹(Blocking): 작업이 완료될 때까지 다른 작업을 차단한다.직관적: 코드가 순차적으로 실행되므로 이해하기 쉽다.잠재적 성능 문제: 긴 시간이 걸리는 작업(예: 네트워크 요청)을 UI 스레드에서 동기적으로 실행하면 애플리케이션이 응답하지 않을 수 있다. 비동기(asynchronous)비동기 작업은 작업을 요청한 후 그 결과를 기다리지 않고, 다른 작업을 계속해서 수행하는 방식이다. 작업이..

Android 2024.05.20

Json / 직렬화 / 역직렬화

serialization : 직렬화 객체를 json 포맷으로 바꾼다 => 직렬 json 데이터를 받아올 때, 객체로 변환해야 한다. => 역직렬화 Gson -> Java 100%https://github.com/google/gson GitHub - google/gson: A Java serialization/deserialization library to convert Java Objects into JSON and backA Java serialization/deserialization library to convert Java Objects into JSON and back - google/gsongithub.com dependencies { implementation 'com.google.code..

Android 2024.05.16

Android 리사이클러뷰

RecyclerView는 데이터 목록을 아이템 단위의 View로 생성해서 화면에 표시하기 위해 Adapter를 사용합니다. Adapter에 의해 생성된 View 객체를 어떤 방식으로 나열할지 결정하기 위해서 Layout Manager를 이용합니다. 끝으로 Layout Manager가 제공하는 형태로 Adapter가 생성한 View를 ViewHolder 객체에 저장되어 화면에 표시하게 됩니다. https://meal-coding.tistory.com/29 [Android] 홍드로이드 기초 강의 - 리사이클러뷰(RecyclerView)1. 안드로이드 리사이클러뷰(RecyclerView) "수많은 데이터의 집합을 지정된 영역 내에서 유연하게(flexible) 표시되도록 만들어주는 위젯"입니다. 안드로이드 개발..

Android 2024.05.06

함수 / 타입 추론 / 조건문 / 반복문

1. 타입 추론이란 무엇일까 변수나 함수들을 선언할 때나 연산이 이루어질때, 자료형을 코드에 명시하지 않아도 코틀린이 자동적으로 자료형을 추론 값의 형태로 해당 자료가 어떤 자료형을 가지는지 추론한다. 2. 함수란 무엇이고 어떻게 사용할 수 있을까 함수는 특정한 동작을 하거나 원하는 결과값을 연산하는데 사용 return 이 나오면 중간이더라도 값을 반환하고 함수를 종료하게 된다. https://github.com/pointmina/Kotlin GitHub - pointmina/Kotlin Contribute to pointmina/Kotlin development by creating an account on GitHub. github.com 3. forEach() forEach는 순서가 있는 데이터에 ..

Kotlin 2024.04.08

[삽질][Kotlin] Android Studio Google Social Login

플젝에서 공유 기능을 넣는다하여 소셜로그인이 필요하게 되었다. 프론트 팀원과 나 모두 처음이었기 때문에 서로 시도해보고 취합하기로 했는데 새벽에 오기가 발동해 혼자서 다 해버렸다. https://www.youtube.com/watch?v=H_maapn4Q3Q https://visualandroidblog.blogspot.com/2023/04/google-sign-in-firebase-android-kotlin-tutorial.html Step-by-Step Guide: Google Sign-In with Firebase in Android Studio Using Kotlin Securely implement Google Sign-In with Firebase in Android Studio using K..

Android 2024.04.07

Layout / View

View? 화면을 구성하는 모든 기본 화면의 구성 요소 Layout? - 뷰 중 눈에 보이지 않는 것들 - 뷰 중 눈에 보이는 것들 -> widget View의 기본 속성 - id : 뷰의 식별자 속성 - layout_width, layout_height : 뷰의 크기 지정(wrap_content, match_parent) wrap_content = 콘텐츠 크기에 맞추기 match_parent = 부모뷰에 맞추기 1. LinearLayout - 가로 또는 세로 단일 방향으로 모든 요소를 정렬하는 레이아웃 2. RelativeLayout - View끼리의 상대적 위치로 배치를 적용하는 Layout 3. Constraint Layout - 상대적 위치 관계에 따른 배치를 할 수 있다. - 다른거 거의 안쓰고..

Android 2024.04.02

변수와 상수 / 기본 자료형 / 형변환 / 배열

1) var과 val은 무엇이고 어떤 차이가 있을까? var로 선언하면 값을 다시 바꿀 수 있지만 (변수)val은 선언하면 값을 다시 바꿀 수 없다. => 그래서 기준이 되는 값을 선언할 때 사용한다. (상수)ex) 파이 3.14 val pi = 3.14 변수와 상수를 구분하기 위해서 상수는 대문자로 선언한다.   var a : Int? = null자료형 뒤에 ?을 붙이면 null을 허용하는 nullable 변수로 선언해 줄 수 있다.값이 null인 상태로 연산할시 오류가 날 수 있으므로 주의해야한다. lateinit: lateinit은 코틀린에서 나중에 초기화할 변수를 선언하는데 사용하는 키워드이다. 주로 var과 함께 사용되며, 초기화가 지연되는 것을 나타낸다. 이 키워드는 nullable 타입과는 ..

Kotlin 2024.04.01