1-3. 코딩 준비하기
공부/안드로이드

1-3. 코딩 준비하기

'코딩 준비하기'의 핵심 키워드는 로그(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 배열