부스트코스
-
[ Kotlin ] return, break, continue문Kotlin 2020. 12. 9. 16:56
이 글은 부스트코스에서 코틀린 강의를 들으며 정리한 글 입니다 Index return break continue retrun ^ return으로 Unit 반환 람다식에서 return 사용하기 람다식 함수 외부의 함수까지 빠져 나가 비지역 반환이 일어난다.따라서 아래의 코드에서 아무것도 출력되지 않는다. 람다식에서 라벨과 함께 return 사용하기 인라인(inline)으로 선언되지 않은 람다식 함수에서 return을 사용하는 경우, 그냥 사용할 수 없고 라벨(@label) 표기와 함께 사용해야 한다. label 이란 코드에서 특정한 위치를 임의로 표시한 것으로, @ 기호에 이름을 붙여서 사용한다. (라벨이름)@ : 람다식 블록의 시작 부분에 라벨을 지정 @(라벨이름) : 라벨을 사용한 블록의 끝부분을 지정..
-
[ Kotlin ] 조건문 / 반복문Kotlin 2020. 12. 4. 16:07
Index 조건문 ( if ~ else ) 범위 연산자 ( in..범위 ) when 반복문 ( for / while / do~while ) 조건문 ( if ~ else ) ^ 범위 연산자 ^ 포함 여부를 확인하는 in 연산자와 두 개의 점(..)으로 구성된 범위(range) 연산자 when ^ 다른 언어에서 흔히 사용되던 switch~case를 대체하는 코틀린에서만 제공되는 문법 Java에서와 달리 break나 return 을 따로 적어주지 않아도 된다! 인자가 있는 경우 인자가 없는 경우 반복문 ^ for문 코틀린에서는 Java와 C++과 같은 세미콘론 표현식을 사용하진 않는다. while문 do ~ while문 untile 과 0..(input-1)이 똑같이 작동한다. 출처 1. 부스트코스 - 코틀린
-
[ Kotlin ] 중위함수와 꼬리재귀 함수Kotlin 2020. 12. 3. 18:50
Index 중위함수 재귀 꼬리재귀 중위함수 ^ 중위 함수의 조건 1. 멤버 메서드 또는 확장 함수여야 합니다. 2. 하나의 매개변수를 가져야 합니다 3. infix 키워드를 사용하여 정의합니다. 재귀 ^ 재귀는 스택 영역을 이용하기 때문에 호출 횟수가 많아지면 문제가 발생할 수 있다. ( 스택오버플로우가 발생 할 수 있다 ) 코드를 복잡하지 않게 해야 한다. 꼬리 재귀 함수 ( Tail Recursive Function ) ^ 스택오버플로우를 예방할 수 있다. 스택에 계속 쌓이는 방식이 아닌 꼬리를 무는 형태로 반복한다. ( 자기 자신을 덮어씌우면서 작동 ) 무한루프에 빠지지 않게 조심해야 한다. 코틀린 고유의 tailrec 키워드를 사용해 선언한다. 출처 1. 부스트코스 - 코틀린
-
[ Kotlin ] 익명 함수( Anonymous Functions )와 인라인 함수( Inline Functions )Kotlin 2020. 8. 4. 16:36
익명 함수 ( Anonymous Functions ) 익명함수란 일반 함수이지만 이름이 없는 함수입니다. 람다식과 구성이 비슷하지만 익명 함수의 경우 return, break, continue가 사용 가능하고 람다식에서는 사용하기 어렵습니다. 따라서 조건식에 따라서 함수를 중단하거나 반환해야 하는 경우 일반 익명 함수로 사용해야 할 필요가 있습니다. 인라인 함수 ( Inline Functions ) inline함수는 함수가 호출되는 곳에 코드를 복사해 넣어 함수의 분기 없이 처리됩니다. 코드의 복사로 인해 분기가 없다는 점에서 속도를 높일 수 있지만 복사할 코드가 긴 경우 프로그램의 용량도 늘어나고 속도 향상도 되지 않을 수 있습니다. 따라서 inline 함수는 대게 짧은 코드로 작성되고 람다식 매개변수..
-
[ Kotlin ] 람다식 ( Lambda )Kotlin 2020. 8. 4. 15:07
이 글은 부스트코스에서 코틀린 강의를 들으며 정리한 글 입니다 Index 변수에 지정된 람다식 람다식과 고차 함수 호출하기 값에 의한 호출 이름에 의한 호출 참조에 의한 호출 매개변수 개수에 따른 람다식 구성 매개변수가 없는 경우 매개변수가 1개인 경우 매개변수가 2개 이상인 경우 일반 매개변수와 람다식 매개변수를 같이 사용하는 경우 두 개 이상의 람다식을 매개변수로 가진 경우 변수에 지정된 람다식 ^ 람다식 표현의 예 ( 자료형 생략 ) 람다식을 표현할 경우, 위의 코드와 같이 자료형을 생략할 수 있습니다. 만약 선언 자료형과 매개변수 자료형이 모두 생략되어 있다면 추론이 불가능하여 Error가 발생합니다. // 추론이 불가능한 예 val multi = { x, y -> x * y } 마지막 표현식 반..
-
[ Android ] 스플래시 화면 ( 로딩 화면 )Android 2020. 4. 2. 15:40
이 글은 부스트코스 강의를 공부하며 요약한 글입니다. CatServant Splash Screen ( 로딩 화면 ) 앱이 실행되기 전에 잠깐 보였다 사라지는 화면을 Splash Screen이라고 부릅니다. 이 화면은 앱이 어떤 것인지를 알려주는 역할도 하고 메인 화면이 초기화될 때까지 시간이 걸리면서 사용자에게 주는 지루함을 없애주는 역할도 합니다. Splash Screen을 구현하는 방법은 2가지로 나눌 수 있습니다. 1. 로딩 화면을 메인으로 설정하는 방법 ( SplashActivity → MainActivity ) 2. 메인 화면에서 로딩 화면을 호출하는 방법 ( MainActivity → SplashActivity → MainActivity ) 아래의 코드는 앱의 시작점을 로딩 화면으로 설정하는 ..
-
[ Android ] ListViewAndroid 2020. 3. 31. 16:59
이 글은 부스트코스 강의를 공부하며 요약한 글입니다. CatServant ListView 최근 실무에서는 ListView 보다는 RecyclerView를 많이 사용합니다. 여러 개의 item 중에서 하나를 선택하는 방식을 가진 선택 위젯은 Adapter를 사용합니다. 화면에 보이는 View가 데이터를 관리하는 것이 아니라 Adapter가 데이터를 관리하는 방식으로 사용하게 됩니다. Adapter는 데이터를 관리하면서 동시에 위젯을 통해 보일 각각의 item을 위해 View를 만들어 줍니다. ListView는 여러 개의 Item을 위 아래로 스크롤 할 수 있게 해주면서 각각의 item을 순서대로 보여주는 역할을 합니다. 각각의 item은 독립적인 View로 만들어지게 되고 View들이 모여있는 형태를 유지..
-
[ Android ] 페이지 슬라이딩Android 2020. 3. 31. 16:18
이 글은 부스트코스 강의를 공부하며 요약한 글입니다. CatServant Page Sliding 페이지 슬라이딩은 버튼 등을 눌렀을 때 보이지 않던 뷰가 슬라이딩 방식으로 보이는 것으로 여러 뷰를 하나씩 전환하면서 보여주는 방식에 애니메이션을 결합한 것입니다. 겹쳐져 있는 여러 뷰를 하나씩 전환하면서 보여주기 위한 방법으로는 Frame Layout을 사용합니다. 참고 : ViewPager로 프래그먼트 간 슬라이드 Code res / anim / translate_left.xml tag는 View가 위, 아래 또는 좌, 우로 이동하도록 만듭니다. 여기서는 fromXDelta 속성과 toXDelta 속성이 사용되었으므로 X 방향 ( = 좌/우 ) 로 이동하게 됩니다. 만약 Y 방향 ( = 위 / 아래 )로 ..