본문 바로가기

IT 정보 공유방

Kotiln 기초 3편 마지막 Kotlin 기초 3편에서는 1) 초기화 지연  2) data class  3) sealed class  4) object  5) companion object이 5개의 내용에 대해서 다룰 것입니다. 1. 초기화 지연- 선언, 지정은 나중에- null-Safe- 메모리 효율을 높임 lateInit varval by lazy변수 타입을 지정할 것선언과 동시에 초기화가 진행초기화 타입에는 사용하지 않는다.(대체: Delegate 쓸 것)[예시]1) private lateInit var age: Integer (Int X)2) private var age by Delegates.notNull()람다형태라 마지막 행이 정의 값[예시]val age: Int by lazy {    println("age 초.. 더보기
Kotlin 기초 2편 안녕하세요! Kotlin 기초 1편에 이어서 2편 진행해보겠습니다. 1. 반복문for문과 while문이 쓰이는데 while문은 기존 자바와 동일한 구조이기 때문에 부연설명은 하지 않고 for문에 대해서만집중해서 설명하도록 하겠습니다.  for(i in 1..10){ println("숫자: $i")} 1부터 10까지 값을 출력해주는 반복문입니다.  기본적으로 1씩 증가하며 1..10 으로 하게되면 1 ≤ .. ≤ 10 이란 구조를 갖게 됩니다. for(i in IntRange(1, 10)){ println("숫자: $i")}위와 동일한 결과입니다.  단, 표현하는 방법을 IntRange라는 함수를 사용하여 1부터 10까지의 범위를 만들어 출력하게 됩니다. for(i in 1 until 11){ .. 더보기
Kotlin 기초 1편 Kotlin을 처음 시작했을때 기초를 잘 다지고 가야 나중에 개발할 때 햇갈리지 않을 것 같아서 다시 정리해봅니다. Kotlin ↔ Java1) 안정성 확보: NPE(Null Pointer Exception 안정화)2) 상호운용성3) 실용성4) 간결성  Kotlin 코드를 보고 내용이 이해가 되지 않는다면 아래 그림처럼 선택하여 Java로 변경한 코드를 확인하면 됩니다.  Kotlin에서 알면 유용한 것들에 대해 먼저 알려드리겠습니다. 1) 함수의 오버로딩을 인자로 처리할 수 있다?fun main(){ val greet: String = GreetClass().Greeting(name = "성호", dayOfWeek = "월") val greet2: String = GreetClass().Gr.. 더보기
BottomNavigationView JetPack-Compose에 대해서만 정리를 하려다보니 Kotlin으로 개발을 어떻게 했었는지 상기하고 비교하고자Kotlin으로 잠시 돌아왔습니다.오늘 정리해 볼 것은 BottomNavigationView입니다.  보통 BottomNavigationView는 하단에 탭과 활용되는 경우가 많은데, 우선 이 부분을 Kotlin을 통해 구현한 다음, 하나의 프레임에 대해 구현된 Fragment에 RecyclerView를 두어화면 구성을 진행해보겠습니다. [libs.versions.toml][versions]navigationFragmentKtx = "2.7.7"navigationUiKtx = "2.7.7"[libraries]androidx-navigation-fragment-ktx = { group = "a.. 더보기
Jetpack Compose란..? UI 개발을 간소화하기 위해 설계된 최신 툴킷이며 반응형 프로그래밍 모델을 Kotlin 프로그래밍 언어의 간결함 및 사용 편의성과결합한 방식입니다.선언적인 접근 방식으로 데이터를 UI 계층 구조로 변환하는 일련의 함수를 호출하여 UI를 설명합니다.기존 데이터가 변경되면 프레임워크가 이러한 함수를 자동으로 다시 실행하여 UI 계층 구조를 업데이트 합니다.  정확히는 모르겠지만.. 데이터가 변경된다면 빠르게 적용하여 UI에 반영된다는 내용같고 선언을 통해서 간결하면서도사용에 편의성까지 갖춘다는 내용 같습니다.역시 예제가 있어야 좀 더 빨리 이해가 갈 것 같습니다.  class MainActivity : ComponentActivity() { override fun onCreate(savedInstanc.. 더보기
FCM 메시지가 최신화가 되지 않을때 FCM 푸시를 보내고 해당 인텐트의 데이터를 받을때 지속해서 이전 알림 내용을 가져오는 경우가 있습니다.분명 디버깅을 통해서도 sendNotification, onNewIntent 함수에서도 푸시 보낸 데이터가 유지되어 있는데delegatePushNotification 함수에서는 Intent값이 달라지는 경우가 발생합니다.정확히 말해서,, 최신화가 되지 않는 느낌입니다. 이러한 문제를 해결하려면 두 가지를 확인해야 합니다. class KBFirebaseMessagingService : FirebaseMessagingService() { companion object { private const val TAG = "FirebaseMessaging" } private var pendi.. 더보기
자바스크립트 개념정의 1. 배열 - 배열 선언은 [] 대괄호를 통해 하며, 배열의 원소 타입은 다양하게 받을 수 있습니다. const hobbies = ['Sports', 'Cooking', 1, 2, true]; for (let hobby of hobbies) { console.log(hobby); } 배열은 스택처럼 pop, push를 사용해서 원소를 빼거나 더할 수 있으며 map함수를 많이 사용하여 Kev:Value 형태의 배열 변환 할 수 있습니다. 2. 스프레드 연산자 & 레스트 연산자 - 배열 내 원소 또는 객체 내 속성을 접근할 때 사용하는 방법입니다. const hobbies = ["Sports", "Cooking", true, 1]; const copiedHobbies = [...hobbies] for(let.. 더보기
AWS - S3 Amazon S3 - 무제한 Scaling이 가능한 Storage - 객체 형태를 저장/관리하는 시스템이자 서비스로, 파일이 버킷 또는 디렉토리에 있음 S3-Bucket - 전역적으로 고유한 이름이며, Region 수준에서 관리되기에 같은 지역에 같은 이름의 버킷은 존재할 수 없음 Bucket Naming Convention 1) 대소문자 섞어서 사용 X 2) 3-63자 길이 3) IP주소는 들어가면 안됨 4) 소문자 or 숫자로 시작할 것 S3 Bucket은 파일을 객체로 가지며 키를 가집니다. 키는 파일의 전체 경로를 뜻하며 하나의 예를 들어 설명하자면 S3://my-bucket/my_file.txt 다음과 같은 경로를 가질때, key는 파일 이름인 my_file.txt가 됩니다. 단, 버킷 내 디렉.. 더보기

반응형