Android Studio 공부 시작

[Ch2-2] Android Studio Debugging (안드로이드 스튜디오 디버깅) Types of Break Points (브레이크 포인트의 종류)

공급망관리 최선생 2019. 6. 4. 19:17

디버깅 하기에 앞서 브레이크 포인트(break point)를 활용해보자.

 

1. Line Break Point (라인 브레이크 포인트)

Break point 활용

setContentView(R.layout.activity_main); // 왼쪽에 빨강색 땅콩이 Break Point 이다.

※ 브레이크 포인트란? - 안드로이드 스튜디오에게 잠시동안만 코드를 멈추고 기다려달라는 지점을 설정하는 방법이다. 따라서 어떤 에러가 발생될 때, 내가 의심하는 지점에 LBP를 두고, 그 앞에서 에러가 발생되는지 또는 그 뒤에서 발생되는지 등을 확인하기 용이하다.

 

설정하는 방법은 왼쪽에 보면 널빤지 같은 공간이 있는데, 해당 공간을 의심하는 눈초리로 클릭하면 된다.

(눈초리가 중요하다!)

다시 없애려면 한번 더 클릭

 

2. Method Break Point (메서드 브레이크 포인트)

Method Break Point 활용

    protected void onCreate(Bundle savedInstanceState) { // 왼쪽의 빨강색 다이아가 메서드 브레이크 포인트이다.

라인 브레이크 포인트와 다르게, 어느 라인에 정확하게 브레이크 포인트를 걸어야 할지 모를 때 사용하는 브레이크 포인트다.

 

내가 생각하는 코드 줄이, 특정한 메서드 (기능의 단위라고 생각하자)가 실행될때 나온다고 판단이 선다면

마우스로 내가 MBP 를 걸고 싶은 곳을 한번 클릭 한 뒤, 상위 탭 메뉴에 Run -> Toggle Method Break Point (토글 메서드 브레이크 포인트)를 클릭하면 된다.

단축키로 Ctrl+Alt+Shift+F8 이 있다. 이게 단축킨가??! 뭘 단축한건가!?

(여기서 커밍아웃하자면 난 오랜 엑셀 작업으로 인한 단축키 충이다)

 

※ 메서드 브레이크 포인트 - 이걸 사용하면 디버깅 작업이 엄청나게 느려진다더라. 내가 BP를 걸은 메서드가 다른 쪽에서 사용되는지 아닌지 계속 체크해야되서 그런건가? 혹시나 아시는분 있으시면 말씀 부탁드립니다

 

3. Temporary Break points (일시적 브레이크 포인트)

말 그대로 브레이크 포인트를 일시적으로만 사용한단다. 다른것도 내가 사용한뒤 없앨꺼니까 일시적인거 아닌가?

루프 문을 돌 때, 또는 어떤 라인이 전체 프로그램이 돌 때 실행되는가 (구절이 타는가??) 등의 한정적으로 사용할 때 유용하단다.

※ 루프 문 (Loop Statement) - Loop 란, 코드로 일련의 작업을 반복적으로 시키는 것을 말한다. Statement 는 그냥 코드를 쓰면 그게 statement 다.

 

예를들어, 1부터 100까지 세는 프로그램이 있다면, 어떤 구절이 문제가 있는지 또는 타는지를 확인하기 위해, 일반적인 BP를 걸어뒀다면 1부터 100까지 프로그램이 돌면서 거기서 계속 멈칫멈칫 (두둠칫 두둠칫) 할꺼다. 이런걸 방지하기 위해 Temporary Break Point 를 사용하여, 해당 구절에서 한정적으로만 멈추도록 하는것이다.

 

사용하는 방법은 Run -> Toggel temporary Line Break Point 를 클릭하면 된다.

단축키로 Ctrl+Alt+Shift+F8 이 있다. 이게 단축킨가??! 뭘 단축한건가!?

(여기서 커밍아웃하자면 난 오랜 엑셀 작업으로 인한 단축키 충이다)

 

4. Conditional Break Point (조건부 브레이크 포인트)

기본적인 Line Break Point 를 걸어둔 뒤 조건을 설정하여, 해당 조건이 맞을때만 BP가 작동되도록 하는 방법이다.

브레이크 포인트의 빨강색 땅콩을 오른쪽 클릭하여 조건을 설정하면 된다.

 

 

-------------

 

자, 여기까지 읽으셨다면 정말 고생많으셨습니다.

 

나도 안다.... 나도 코드도 모르는데 지금 이거 알아서 뭐하나 이런생각이 든다는거

이 글을 읽으시는 분들과 마찬가지로 나도 자바 코드 한줄 못본다 (아직까지는!)

하지만 과거에 Macro VBA 를 공부할 때, 디버깅이 없었다면 정말 완성하지 못했을 기능이 정말 수도 없이 많다.

 

남들이 (특히 이미 잘 하고 있는 개발자들)이 강조한다면, 그만한 이유가 있지 않을까?

 

더구나 책의 도입부는 보통 가장 중요한 것들을 적어두는데, 이 디버깅은 고작 챕터 2에서 나올만큼 중요하다!

다들 힘내보자