'코딩 준비하기'의 핵심 키워드는 로그(Log)와 로그캣(Logcat).
안드로이드 스튜디오의 Log 클래스를 코드 중간중간에 적절하게 사용하면 앱의 실행 흐름 혹은 결괏값을 확인할 수 있음.
Log 클래스에서 주로 사용하는 다섯 가지 함수 v(verbose), i(information), d(debug), w(warning), e(error) 의 사용 방법을 알아보자.
1. 코딩 준비하기
1.1. 새 프로젝트 생성하기
- Empty Activity 생성
1.2. 로그의 활용
Log.d("태그", "출력 메시지");
Log.d에서 d는 debug를 의미하며 첫 번째 인자에는 검색 용도로 활용되는 '태그' 입력, 두 번째 인자에는 '실제 출력할 메세지'를 입력.
package kr.co.iceblend.basicsyntax
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
Log.d("BasicSyntax", "로그를 출력합니다. method = Log.d")
}
}
위 코드를 에뮬레이터에서 실행한 후 [Logcat] 탭을 클릭, 'BasicSyntax'를 검색
위 이미자와 같이 태그를 검색을 할 수 있음.
(Logcat : 출력되는 로그를 모아서 보는 도구)
함수 | 의미 | 내용 |
Log.v() | verbose | 상세한 로그 내용을 출력하기 위해 사용 |
Log.d() | debug | 개발에 필요한 내용을 출력하기 위해 사용 |
Log.i() | information | 정보성의 일반적인 메시지를 전달하기 위해 사용 |
Log.w() | warning | 에러는 아니지만 경고성 메시지를 전달하기 위해 사용 |
Log.e() | error | 실제 에러 메시지를 출력하기 위해 사용 |
2. 변수
변수를 사용하는 방법과 데이터 작성(자료형), 작성 규칙(코딩 컨벤션)에 대해 알아 보자.
2.1. 변수 var
변수 앞에 var를 붙여서 변수를 선언하고 사용함.
var 변수명(이름) = 값
2.2. 데이터 타입
구분 | 데이터 타입 | 설명 | 값의 범위 및 예 |
숫자형 | Double | 64비트 실수 | -1.7E+308의 근삿값 ~ 1.7E+308의 근삿값 |
Float | 32비트 실수 | -3.4E+38의 근삿값 ~ 3.4E+38의 근삿값 | |
Long | 64비트 정수 | -2E63 ~ 2E63-1 | |
Int | 32비트 정수 | -2,147,483,648 ~ 2,147,483,647 | |
Short | 16비트 정수 | -32,768 ~ 32,767 | |
Byte | 8비트 정수 | -128 ~ 127 | |
문자형 | Char | 1개의 문자 | '글' (외따옴표) |
String | 여러 개의 문자 | "여러 개의 글자입니다" (쌍따옴표) | |
불린형 | Boolean | true, false 두 가지 값 | true 또는 false |
2.3. 읽기 전용 변수 val
한 번 입력된 값은 변경할 수 없음.
val 변수명(이름) = 값
2.4. 상수 const
주로 기준이 되는 변하지 않는 값을 입력해둘 때 사용, 읽기 전용 변수인 val 앞에 const 키워드를 붙여서 만듬.
const val PI = 3.141592
컴파일 시에 값이 결정되기 때문에 Int, Long과 같은 기본형과 String만 입력 가능.
2.5. 코딩 컨벤션
각 프로젝트별 코드를 작성하는 규칙을 코딩 컨벤션이라고 함.
클래스명
첫 글자 대문자, 나머지 글자는 소문자.
새로운 단의 첫 글자도 대문자
함수명과 변수명
캐멀 케이스와 동일
상수명
모두 대문자 작성
3. 조건문
3.1. 조건문 if
C++과 같음. 읽고 넘김.
3.2. 조건문 when
C++에서는 switch 였던 것.
콤마로 구분해서 사용하기
특정 값을 비교하는데 결과 처리가 동일하다면 콤마(,)로 구분하서 한 번에 비교할 수 있음.
var now = 9
when(now) {
8,9 -> {
Log.d("when", "현재 시간은 8시 또는 9시입니다.")
}
else -> {
Log.d("when", "현재 시간은 9시가 아닙니다.")
}
}
범위 값을 비교하기
in을 사용해서 범위 값을 비교할 수 있음.
var ageOfMichael = 19
when(ageOfMichael) {
in 10..19 -> {
Log.d("when", "마이클은 10대 입니다.")
}
!in 10..19 -> {
Log.d("when", "마이클은 10대가 아닙니다.")
}
else -> {
Log.d("when", "마이클의 나이를 알 수 없습니다.")
}
}
파라미터 없는 when 사용하기
when 다음에 오는 괄호를 생략하고 if 문처럼 사용할 수 있음.
var currentTime = 6
when {
currentTime == 5 -> {
Log.d("when", "현재 시간은 5시입니다.")
}
currentTime > 5 -> {
Log.d("when", "현재 시간은 5시가 넘었습니다.")
}
else -> {
Log.d("when", "현재 시간은 5시 이전입니다.")
}
}
3.3. if 문과 when 문은 언제 사용할까?
범위가 넓고 값을 특정할 수 없을 때는 if문 사용.
범위가 제한되고 값도 특정할 수 있다면 when 사용.
4. 배열과 컬렉션
4.1 배열