이번 포스팅은 layout에서 View를 가져올 때 findViewById() 함수를 사용하지 않고 더 깔끔하게 , 더 안전하게 가져올 수 있는 ViewBinding에 대해서 소개합니다.

findViewById의 문제점

Boilerplate code

Activity에서 가져와야 할 View가 10개라면 10줄의 findViewById()가 있고, 20개라면 20줄의 findViewById()가 있을 겁니다.

만약 100개라면...?

만약 100개라면...?

Null Pointer Exception

findViewById()는 setContentView()에 파라미터로 전달한 layout에 있는 View를 가져오는 함수 입니다. 그래서 layout에 없는 View의 id로 View를 가져오려고 하면 null을 반환합니다.

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/adc0051e-e0ff-4de1-b413-042e0fec8038/Untitled.png

하지만 이렇게 코드에서는 에러가 발생하지 않고

https://s3-us-west-2.amazonaws.com/secure.notion-static.com/d8b70882-5eda-4d9a-ae1a-a300bc03d5a4/Untitled.png

이렇게 직접 실행을 해야 문제가 있는 것을 알 수 있습니다.

findViewById의 대체재

findViewById의 문제점을 보완한 여러가지 대체재가 많이 있습니다.