[Kotlin] 코딩 준비하기

[Kotlin] 코딩 준비하기

로그에 대해서 알아봅시다!


1) 핵심 키워드

  • 코딩 준비하기의 핵심 키워드는 로그(Log)와 로그캣(Logcat) 이다.

  • 앱을 실행하면 많은 양의 로그가 생성된다.

  • 원하는 로그를 찾기 위해 안드로이드 스튜디오의 Log 클래스를 코드 중간중간에 적절하게 사용해야 한다.

    –> 앱의 실행 흐름 혹은 결괏값을 확인할 수 있음

2) Log 클래스의 다섯가지 함수

  • v(verbose)
  • i(information)
  • d(debug)
  • w(warning)
  • e(error)

3) 새 프로젝트 생성하기

  1. 안드로이드 스튜디오 실행 후 “Empty Views Activity” 선택

img

  1. Name에 “BasicSyntax”를 입력, Package name은 프로젝트명(Name)에 따라 자동 생성된다. Minimum SDK는 API 30을 사용한다. Finish 버튼을 클릭하여 다음 화면으로 넘어간다.

img

4) 로그의 활용

  • 이제 기본 문법을 코딩할 준비가 되었다!
  • 작성할 소스 코드의 실행결과는 에뮬레이터(또는 스마트폰) 화면 대신 안드로이드 스튜디오가 제공하는 로그에 정의되어 있는 함수를 사용해서 확인하겠다.
Log.d("태그", "출력 메세지");
  • Log.d에서 d는 debug를 의미한다.
  • 첫 번째 인자: 검색 용도로 사용되는 “태그”를 입력한다.
  • 두 번째 인자: ‘실제 출력할 메세지’를 입력한다.

실습

  • 먼저 소스 코드를 작성해서 안드로이드 스튜디오 내에 있는 로그캣(Logcat) 창에 출력해 보겠다.
  1. 다음 코드를 넣도록 한다.
Log.d("BasicSyntax", "로그를 출력합니다. method = Log.d")
  1. MainActivity.kt 파일을 열고 다음 코드를 setContentView… 밑에 입력한다.
package net.flow9.thisiskotlin.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")
    }
}
  1. 이제 앱을 에뮬레이터에서 실행하기 위해 안드로이드 스튜디오 상단 툴바의 [Run ‘app’ 아이콘]을 클릭한다.

img

  1. 에뮬레이터를 통해 앱 화면을 보면 다음 그림과 같이 ‘Hello World!’라고만 적혀 있고 아무런 동작을 하지 않는다.

img

  1. 안드로이드 스튜디오 하단의 [Logcat] 탭을 클릭해서 창을 열어본다.

로그 내용이 많은데, 소스 코드의 Log.d 함수에 입력했던 클래스의 d를 의미하는 debug를 package:mine 뒤에 level:debug라고 입력 후 “태그”로 입력했던 BasicSyntax를 의미하는 tag:BasicSyntax를 필터창에 입력한다.

“package:mine level:debug tag:BasicSyntax”

img

5) 정리

  • 로그(Log): 코딩을 할 때 코드의 흐름을 파악하기 위해 앱 외부에 출력하는 정보이다. 디버거를 사용할 수도 있지만 매번 디버깅할 포인트를 지정해야 하는 불편함이 있는 반면, 로그를 사용하면 한 번 설정으로 항상 해당 코드의 흐름을 확인할 수 있다.
  • 로그캣(Logcat): 출력되는 로그를 모아서 보는 도구이다. 내가 작성한 앱의 로그만 볼 수도 있고, 태그를 잘 활용하면 해당 태그를 필터로 사용해서 특정 로그만 확인할 수도 있다.

앞으로 자주 접할 로그 사용법

함수의미내용
Log.v()verbose상세한 로그 내용을 출력하기 위해 사용합니다.
Log.d()debug개발에 필요한 내용을 출력하기 위해 사용합니다(개발자용).
Log.i()information정보성의 일반적인 메시지를 전달하기 위해 사용합니다.
Log.w()warning에러는 아니지만 경고성 메시지를 전달하기 위해 사용합니다.
Log.e()error실제 에러 메시지를 출력하기 위해 사용합니다.

© 2023. All rights reserved.

AgileCatch