728x90

TIL/selfpractice 10

mvvm 패턴 계산기

mvvm 패턴을 이용해서 간단한 계산기를 만들어보았다. mvvm 개념이 중요해서 https://velog.io/@kyeun95/%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4-MVVM-%ED%8C%A8%ED%84%B4%EC%9D%B4%EB%9E%80 [디자인 패턴] MVVM 패턴이란? 개념 :MVVM (Model-View-ViewModel) 패턴은 Model View, View, Model의 약자로 프로그램의 비지니스 로직과, 프레젠테이션 로직을 UI로 명확하게 분리하는 패턴입니다.데이터를 다루는 부분. 비즈니스 로직을 velog.io 해당 블로그를 보고 이해했다. mvvm은 기본적으로 내 코드를 분리된 모듈로 관리한다고 보면 되는데 MODEL(data) VIEWMOD..

TIL/selfpractice 2024.03.20

3월5일 스파르타 코딩클럽 lv1과제 및 깃허브 업로드

스파르타 코딩클럽에서 주차별 과제 수행 후 깃에 업로드 하기위해 메인 브랜치에서 내 브랜치를 생성해서 업로드 하려고했으나 계속 에러가 났다. 하지만 "git checkout -b eun"이라는 명령어를 입력했더니 브랜치 변경이 되었다. 아직도 깃이 익숙치 않다. 앞으로 익숙해지기위해 더 노력해야겠다. 그 후 eun이라는 브랜치를 없애기 위해 eun 브랜치에서 git branch main이라는 브랜치를 생성 후 [eun-> main] git check out main eun 을 지우려고하는거라서 main으로 브랜치를 옮긴후 [main삭제실행] git branch -d eun 명령을 실행했더니 성공적으로 지워졌다. 그 후 배쉬창을 빠져나가기위해 exit명령어를 입력했고 성공적으로 logout이 일어났다.

TIL/selfpractice 2024.03.05

깃허브 좌충우돌기

깃을 사용한적은 있지만 아직까지도 헷갈리고 어렵다. 다행히도 스파르타 코딩클럽에서 깃강의를 해주셔서 어려운부분이 조금이나마 해소되고, 아직 완벽하진 않지만 복습을 위해서 앱을 업로드 해봤다. https://github.com/ellycrab/roomdataMemoSimpleApp GitHub - ellycrab/roomdataMemoSimpleApp: 룸 데이터를 활용한 심플 메모앱 룸 데이터를 활용한 심플 메모앱. Contribute to ellycrab/roomdataMemoSimpleApp development by creating an account on GitHub. github.com https://github.com/ellycrab/androidCamera GitHub - ellycrab/a..

TIL/selfpractice 2024.02.28

스코프 함수

스코프함수는 코드를 축약해서 표현할 수 있도록 도와주는 함수이다. -영역함수라고도 한다. -사용법은 함수처럼 쓰지 않고 run,let 처럼 괄호 없이 일종의 키워드 같이 사용할 수 있다. -lateinit과 함께 safe call 남용을 막아주는 역할도 하기 때문에 많이 사용하는 요소 -스코프 함수에는 run,let,apply,also,with 가 있다. run과 let으로 보는 스코프 함수 run과 let은 자신의 함수 스코프 안에서 호출한 대상을 this와 it로 대체해서 사용할 수 있다. run -스코프 함수 안에서 호출한 대상을 this로 사용할 수 있다. -클래스 내부의 함수를 사용하는 것과 동일한 효과이기 때문에 this는 생략하고 메서드나 프로퍼티를 바로 사용할 수 있다. -다음 예제에서는 ..

TIL/selfpractice 2024.01.19

지연 초기화

lateinit 변수만 Nullable로 미리 선언하고 초기화를 나중에 해야 할 경우 Nullable로 선언하는 일반적인 방법 일반적인 선언 방식으로 처음에 null 값을 입력해두고, 클래스의 다른 메서드 영역에서 값을 입력 위 방식은 변수에 입력된 값의 메서드나 프로퍼티를 사용할 때 Safe Call(?.)이 남용되어 가독성을 떨어트리는 문제가 있다. lateinit을 사용하는 방법 lateinit을 사용하면 Safe Call을 쓰지 않을 수 있기 때문에 코드에서 발생할 수 있는 수많은 ?를 방지할 수 있어서 가독성이 좋아진다. lateinit의 특징은 다음 세 가지를 들 수 있다. 1. var로 선언된 클래스의 프로퍼티에만 사용 2. null은 허용되지 않음 3. 기본 자료형 Int, Long, Do..

TIL/selfpractice 2024.01.17

null safety

Kotlin에서 지정하는 기본 변수는 모두 null이 입력되지 않는다. null 값을 입력하기 위해서는 변수를 선언할 때 타입 뒤에 ?(Nullable, 물음표)를 입력한다. var variable: String? 변수에 null 허용 설정하기 변수의 타입뒤에 ?를 붙이지 않으면 null 값을 입력할 수 없다. 함수 파라미터에 null 허용 설정하기 함수의 리턴 타입에 null 허용 설정하기 함수의 리턴 타입에도 물음표를 붙여서 null 허용 여부를 설정할 수 있다. 안전한 호출: ?. 변수를 Nullable로 만들기 위해서 물음표를 사용함. Nullable인 변수 다음에 ?.을 사용하면 해당 변수가 null일 경우 ?. 다음의 메서드나 프로퍼티를 호출하지 않음 다음 코드에서처럼 문자열의 길이를 반환하는..

TIL/selfpractice 2024.01.17

클래스와 설계-2

익스텐션 kotlin은 클래스,메서드,프로퍼티에 대해 익스텐션을 지원한다. 이미 만들어져 있는 클래스에 다음과 같은 형태로 메서드를 추가할 수 있다. fun 클래스.확장할 메서드(){ } 상속이 미리 만들어져 있는 클래스를 가져다 쓰는 개념이라면 익스텐션은 미리 만들어져 있는 클래스에 메서드를 넣는 개념 자식이 만든 클래스에 사용하기보다는 누군가 작성해둔, 이미 컴파일되어 있는 클래스에 메서드를 추가하기 위한 용도로 사용 익스텐션을 사용한다고 해서 실제 클래스의 코드가 변경되는 것은 아니며 단지 실행 시에 도트 연산자로 호출해서 사용할 수 있도록 해줌 특별한 경우를 제외하고는 거의 메서드 확장 용도로 사용됨 위의 예시를 보면 자식 클래스를 이용해서 부모클래스안의 메서드를 출력할 수 있다. 접근 제한자 k..

TIL/selfpractice 2024.01.16

클래스와 설계-1

클래스를 정리하면 단지 변수와 함수의 모음이라고 생각하면 된다. 클래스의 기본구조 class 클래스명 { var 변수 fun 함수() { // 코드 } } 클래스와 인스턴스의 관계를 비교할 때 가장 많이 사용되는 예가 붕어빵의 틀과 붕어빵이다 붕어빵은 인스턴스이고 틀은 클래스이다. 클래스 내부에 정의되는 변수와 함수를 멤버 변수, 멤버 함수라고 부른다. 또 다른 용어로 프로퍼티,메서드라고도 부른다. -클래스의 변수>멤버 변수> 프로퍼티 -클래스의 함수>멤버 함수>메서드 ※클래스 안에 정의된 변수는 프로퍼티라고 하지만 함수 안에 정의된 변수는 프로퍼티가 아닌 변수(지역변수)라고 한다. class 클래스명{ var 변수A //프로퍼티: 함수 밖에 존재 fun 함수(){ var 변수B //변수(또는 지역변수)..

TIL/selfpractice 2024.01.16

kotlin 배열과 컬렉션

기본형과 달리 배열과 컬렉션은 대부분의 컴퓨터 언어들은 여러 개의 값을 하나의 변수에 저장할 수 있도록 타입을 제공한다. 변수에 배열 타입에 따라 배열의 공간을 만들고 변수에 담아주는 예시 var students = IntArray(10) var longArray = LongArray(10) var CharArray = CharArray(10) var FloatArray = FloatArray(10) var DoubleArray = DoubleArray(10) var intArray = IntArray(10) intArray[10] = 100 // Exception 발생. intArray의 마지막 인덱스는 9입니다. --> ArrayIndexOutOfBoundsException 발생 컬렉션 -컬렉션은 다..

TIL/selfpractice 2024.01.15
728x90