2024-1 모바일프로그래밍 수업
교재 - 이것이 안드로이드다 whit 코틀린 (개정 3판)
개발 환경 - android studio
Chapter 3 - (1) 로그의 활용
로그(Log)
: 코딩을 할 때 코드의 흐름을 파악하기 위해 앱 외부에 출력하는 정보.
로그캣(Logcat)
: 출력되는 로그를 모아서 보는 도구.
▷로그를 통해 애플리케이션의 실행 중 상태를 모니터링하고, 오류 식별, 디버깅에 도움이 된다.
tag 로그캣에서 검색용도로 사용하는 태그 이름
message 로그캣을 통해 실제 출력할 메세지
📍로그 함수
▷Log.v()
(verbose) 상세한 로그 내용 출력
▷Log.d()
(debug) 개발에 필요한 내용 출력 - 개발자용
▷Log.i()
(information) 정보성의 일반적인 메세지를 전달
▷Log.w()
(warning) 에러는 아니지만 경고성 메세지를 전달
▷Log.e()
(error) 실제 에러 메세지를 출력
*로깅(logging) : 소프트웨어 실행 중에 발생하는 이벤트나 상태를 기록하는 것.
Chapter3 - (2) 변수
변수(variable)
: 임시로 메모리(저장공간)에 저장하고 그 저장 공간에 이름을 부여한 것.
*변수는 최초 선언 시 타입 결정.
1) 변수 선언과 동시에 값 넣기
var 변수명 = 값
2) 값으로 초기화하지 않고 선언만 하고 사용하기
var 변수명: 타입
변수명 = 값
데이터 타입의 종류는 다른 언어들과 동일한데,
안드로이드 스튜디오에서 주의해야 할 점은
Float의 경우 숫자 끝에 'F'를 붙여주고,
Long 타입의 경우 숫자 끝에 'L'을 붙여줌.
char의 경우 ''(작은따옴표) 사용,
string의 경우 ""(큰따옴표) 사용.
문자열 내부에서 달러($) 기호를 넣으면 해당 영역이 문자가 아닌 코드로 인식.
읽기 전용 변수 val
: var과 다르게 한 번 입력된 값은 변경할 수 없음.
*상수와 비슷하지만 상수는 아님.
val 변수명 = 값
*val로 정의된 변수는 값을 변경할 수 없으므로 변경 시 에러 발생.
상수 const
: 변하지 않는 값을 입력해둘 때 사용.
읽기 전용 변수인 val 앞에 const 키워드를 붙임.
🛠️
val vs. const
상수는 컴파일 시간에 결정되고 변경 불가능,
val은 실행 시간에 결정되고 변경 불가능.
즉 val은 클래스나 생성자 호출로 초기화 가능하지만
const val 은 컴파일 시간에 결정되기 때문에 기본 자료형, 문자열만
입력할 수 있음.
*컴파일(Compile) : 프로그래밍 언어로 작성된 소스 코드를
컴퓨터가 실행 가능한 형태인 기계 코드로 변환하는 과정.
코딩 컨벤션(Coding Convention)
: 각 프로젝트별로 코드를 작성하는 규칙.
▷클래스명
-첫 글자는 대문자
-새로운 단어의 첫 글자도 대문자
(즉, Camel Case 적용)
▷함수명과 변수명
-첫 글자는 소문자
-새로운 단어의 첫 글자만 대문자
(Camel Case 적용된 것)
▷상수명
-모두 대문자로
-2개 이상의 단어일 시 언더바(_)로 구분
(즉, Snake Case 적용)
Chapter3 - (3) 조건문
if문
( if - else if - else )
구조는 다른 문법들과 동일하므로
따로 설명 X.
단, 변수에 직접 if문을 사용할 때는
if문 마지막 줄에 있는 값이 변수 값으로 지정됨.
*문자열 템플릿: 문자열 안에서 수식 사용하기
변수가 하나인 경우에는 $변수 의 형태로 사용,
추가적인 연산식이 필요한 경우에는 ${코드 블록} 안에 수식 입력
"문자열은 ${변수 + 1} 이다."
when
코틀린에서는 다른 언어에서 사용되는 switch문과 같은
선택문이 when 구문 역할을 한다.
코틀린에서 when 문은 특정 값을 선택할 수 있는 switch의 사용법에
if문의 범위 비교 기능이 더해진 if문 확장판 느낌임.
▷특정 값의 결과 처리가 동일하다면 비교값은 ',' 를 사용해서 한 번에 비교할 수 있음.
▷in으로 범위 값을 비교할 수도 있음. ( 예를 들어, 10..19 )
▷파라미터 없이 if문을 사용할 수 있음. ( 예를 들어, a==5->{ } )
Chapter3 - (4) 배열과 컬렉션
배열(Array)
: 여러 개의 값을 담을 수 있는 대표적인 자료형.
▷먼저 개수를 정해 놓고 사용해야 함.
var 변수 = Array(개수)
▷배열 객체는 Int, Long, Char 등과 같은 기본 타입 뒤에 Array를 붙여서 만듦.
IntArray(), LongArray(),DoubleArray()...
1) 문자 배열에 빈 공간 할당하기
: String은 기본 타입이 아니므로
다음과 같이 숫자 만큼의 빈 문자열로 된 배열 공간을 할당.
2) 값으로 배열 공간 할당하기
: arrayOf 함수를 사용해서 String 값을 직접 할당.
3) 배열에 값 입력하기
배열명[인덱스] = 값 or
배열명.set(인덱스, 값)
4) 배열에 있는 값 꺼내기
배열명[인덱스] or
배열명.get(인덱스)
*배열의 인덱스 범위를 벗어났을 경우 Exception 발생 후 프로그램 종료.
컬렉션(Collection)
: 여러 개의 값을 넣을 수 있는 자료형이면서
다른 이름으로는 동적 배열이라고함.
▷배열과 달리 공간의 크기를 처음 크기로 고정하지 않고 임의의 개수를 담을 수 있음.
컬렉션은 크게 List, Map, Set 이 있음.
▷코틀린에서는 동적 자료형을 사용할 때 뮤터블(Mutable)이라는 접두어를 붙임.
mutableList, mutableMap, mutableSet
🪄코틀린은 컬렉션 데이터 타입을 설계할 때
모두 이뮤터블(변할 수 없는 데이터 타입)로 설계되어
원래 용도인 동적배열로 사용하기 위해 뮤터블 접두어를 붙여 사용해야 함.
리스트(list)
: 저장되는 데이터에 인덱스를 부여한 컬렉션이며 중복 값을 입력할 수 있음.
add() 변수 추가하기
*입력 순서대로 인덱스 지정.
get() 리스트에 입력된 값 사용하기
set() 리스트 값 수정하기
removeAt() 리스트에 입력된 값 제거하기
<> 빈 리스트 사용하기
*제네릭(Generic)
: <> 컬렉션이 사용하는 값의 타입을 지정하기 위한 도구.
size() 컬렉션 개수 가져오기
🪄괄호의 유무에 따라 함수와 프로퍼티 구분
괄호가 있으면 함수(set, get 등),
괄호가 없으면 프로퍼티(size 등)
셋(set)
: 중복을 허용하지 않는 리스트.
▷리스트와 유사하지만 인덱스로 조회할 수 없고,
get 함수 지원X.
String 타입으로 값 입력받기(빈 셋으로 초기화)
셋 사용하기
▷인덱스로 조회하는 함수가 없으므로
특정 위치의 값을 직접 사용할 수 없음.
remove() 셋 삭제하기
*셋은 값이 중복되지 않으므로 직접 조회해서 삭제 가능.
맵(map)
: 키(key)와 값(value)의 쌍으로 입력되는 컬렉션.
맵 생성하기(빈 맵 생성)
*맵은 제네릭으로 키와 값의 데이터 타입을 지정해줘야 함.
put() 맵에 값 추가하기
get() 맵 사용하기(value 꺼내기)
put() 맵 수정하기
remove() 맵 삭제하기
▷리스트와 다르게 인덱스에 해당하는 키의 값이 변경되지 않고 그대로 유지됨.
→key를 직접 지정해주기 때문, 리스트는 자동 지정이라 삭제 시 인덱스 값이 하나씩 당겨짐.
*컬렉션 값의 단위 = 엘리먼트
컬렉션에 입력되는 값은 각각 엘리먼트라고 지칭.
(맵의 값과 혼동될 수 있기 때문)
list 엘리먼트 → 리스트의 값
map 엘리먼트 → 맵의 키와 값
이뮤터블 컬렉션(Immutable Collection)
: 크기를 변경할 수 없으면서 값 또한 변경할 수 없는 컬렉션.
▷입력 값을 변경할 수 없으므로 add나 set 함수는 지원하지 않음.
→최초 입력된 값을 사용만 할 수 있음.(배열과 달리 값의 변경도 불가능)
기존 컬렉션에서 mutable 접두어를 제거하면 됨.
mutableListOf() → listOf()
*이뮤테이블 컬렉션을 저장할 때는 val로 선언하고 변수명을 대문자로 표시.
Chapter3 - (5) 반복문
for문
: 시작값부터 종료값까지 반복.
: until은 종료값 이전까지만 반복.
: 3씩 증가.(건너뛰기)
: 시작값부터 종료값까지 감소시키기
: 배열이나 컬렉션을 엘리먼트의 개수만큼 반복.
while문
다른 언어들과 동일함.
do-while문은 조건과 상관없이 처음 한 번 로그 무조건 출력.
반복문 제어
이것도 다른 언어들과 동일함.
break 반복문 탈출.
(반복문을 완전히 벗어나기 위해 사용)
continue 다음 반복문으로 이동.
(반복문 도중에 다음 반복문으로 넘어가기 위해 사용)
🪄for문 vs. while문
for문
정해진 범위만큼 코드를 반복하기 위해 사용.
while문
for문과 달리 정해진 범위가 아닌,
특정 조건을 만족할 때까지 코드를 반복하기 위해 사용.
Chapter3 - (6) 함수
: 함수는 fun으로 정의하고, 반환값이 있는 함수는 내부에서 return으로 값을 반환함.
*함수는 코드를 사용할 수 있는 최소 단위.
*파라미터와 반환값이 없을 경우에는 둘 다 작성하지 않음.
▷코틀린에서 함수 파라미터를 통해 입력되는 모든 값은 변하지 않는 이뮤터블임.
∴코틀린에서의 함수 파라미터는 모두 읽기 전용 키워드 val이 생략된 형태.
'전공수업 > Kotlin' 카테고리의 다른 글
[Kotlin] 모바일프로그래밍 7주차 (1) | 2024.10.12 |
---|---|
[Kotlin] 모바일프로그래밍 6주차 (0) | 2024.10.12 |
[Kotlin] 모바일프로그래밍 5주차 (0) | 2024.10.12 |
[Kotlin] 모바일프로그래밍 4주차 (0) | 2024.10.12 |
[Kotlin] 모바일프로그래밍 2-3주차(2) (1) | 2024.10.12 |