반응형

TODO는 간혹 사용해왔는데 알고 있던 TODO와 다른 TODO도 있길래 신기하기도 하고 error라는 것도 처음 보길래 새로 알게 된 겸 적어놓으려 한다.


TODO() | TODO( reason: String)
TODO()

TODO("reason")

https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-t-o-d-o.html

 

TODO - Kotlin Programming Language

 

kotlinlang.org

 

 

 

로그 확인

TODO를 사용하면 파라미터 값으로 전달한 String과 함께 출력되며 Exception을 발생시킨다. 파라미터 값이 없어도 기본 내용으로 출력될 뿐 동일하게 실행된다. 당연히 해당 함수 이후에 실행되도록 해둔 코드들은 실행되지 않는다.(return을 생각하면 된다.)

 

 

error(message: Any)

로그 확인

TODO와 동일하다. 다만 error는 파라미터 값이 null일 수가 없다. 개인적으로는 테스트할 때는 파라미터 값으로 String을 전달했는데 나중에 보니 파라미터 값이 Any타입이길래 함수를 넣어줘 봤는데 Exception 발생 이전에 함수를 실행시켜주더라. 물론 그 이후의 코드는 TODO와 동일하게 실행시켜주지 않지만 신기하다.

 

 

// TODO: Text
// TODO:  여기서 작업 멈췄음. 이어서 하자.

 

코드 내에 추가
TODO 탭에서 확인 가능

말머리에서 언급했었지만 내가 알고 사용하던 TODO는 이 TODO였다. 안드로이드 스튜디오에서 'todo'라고 적으면 자동완성으로 편리하게 사용할 수 있다. 위에 사진에서 처럼 작업하다가 나중에 구현하려거나 다음 날 작업을 이어서 하려 할 때 어디서 중단되었는지 등을 적어두는 데 사용하곤 했었다. 함수가 아니어서(?) 코드 내에 클래스 건 함수건 상관없이 아무 곳에나 적어 넣을 수 있다.

테스트하다가 알게 된건데, 오늘 정리하고 있는 TODO()도 표시되더라. 처음 알게 되었다.


모르던 함수이기도 하고 신기하기도 해서 정리하는 거지만 개인적으로는 어디에 쓰라고 만들어 둔 건지 잘 모르겠다. 지극히 내 스타일이긴 하지만 디버깅을 위한 부분들은 전부 Log로 표시하거나 주석처리시키는데 TODO()나 error()는 강제로 Exception을 발생시켜서 어플리케이션 실행 중 중단을 시켜버리기 때문에 이후의 코드는 실행되지 않기 때문에 테스트에 사용하기도 애매해 보인다.

 

TODO()는 이름으로 생각해봤을 때 로그처럼 해당 부분을 개발자에게 알려주고 넘어가는 기능 정도로 사용하는 건가 싶었지만 Exception을 발생시켜버리고...

그나마 error()는 파라미터 값이 Any여서 그나마 어떻게든 사용할 일이 있을지도? 싶은데 역시나 실제로 사용하기에는 글쎄? 싶다.

대규모 프로젝트나 협업하게 되면 또 사용되려나 싶긴 하지만 아직까진 필요처를 잘 모르겠다.

 

 

왜지

여담이지만 내가 아는 'todo'의 뜻은 '해야 하는 일'정도의 느낌인데, TODO() 함수의 파라미터는 'reason'으로 되어있더라. 무슨 뜻인가 알아보니 '이유', '까닭'이던데 error()의 파라미터랑 바뀐 거 아니야...? 왜 TODO는 이유가 필요하고 error에는 메시지가 필요한 건지 모르겠다. 변수명이야 만드는 사람 마음이지만 피식거리면서 알아보았다.

반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기