본문 바로가기
IT

사용자 경험에서의 디버깅의 중요성 : 프로그래밍 버그(Bug) / 예외(Exception) / 예외처리(Exception Handling)

by EunjiBest 2022. 5. 22.

사용자 경험에서의 디버깅의 중요성 : 프로그래밍 버그(Bug) / 예외(Exception) / 예외처리(Exception Handling) 

 

 

 

 

버그(Bug)와 예외(Exception)

 

 

- 버그

 

컴퓨터 프로그래밍에서 버그란?

코드가 원하는대로 동작하지 않는 모~든 경우이다.

 

1. 프로그램이 응답하지 않는경우

2. 프로그램이 예상보다 느리게 동작하는 경우

3. 잘못된 결과를 출력하는 경우

4. 그 외 기타 일어나면 안되는 상황들이 일어난 경우

 

 

-예외

 

버그의 조금 작은 의미이다.

일반적인지 않은 코드의 동작으로 예외가 일어났다고 반드시 버그가 일어난 것은 아니다.

개발자가 해결하지 못하는 일반적이지 않은 예상치 못한 상황들이다.

 

1. 사용자가 프로그램을 강제종료하는 경우

2. 분수의 분모에 0이 들어가는 경우

3. 열고자 하는 파일이 존재하지 않는 경우

4. 인터넷이 불안정한 경우

5. 핸드폰의 배터리가 부족하거나, 고양이가 컴퓨터 멀티탭의 버튼을 누른경우

 

 

 

-예외 처리(Exception Handling)

 

개발자가 해결하지 못하는 상황들이라고 손놓고 있을수는 없다.

예상을하여, 적당한 처리를 해주어야한다.

 

예를들어,

 

인터넷이 불안정하여 로딩이 느리다면 -> 불러오는 동안 로딩화면을 띄워준다. 

블로그를 포스팅하다가 정전이났다 -> 작성했던 포스팅이 자동저장되어 불러와진다.

 

이런식으로 예외처리를 함으로서, 사용자에게 불편감을 느끼지않도록 해줘야한다.

즉,

개발자는 사용자의 다양한 상황을 예측하는 능력이 필요하다.

 

 

 

 

 

디버깅

 

사용이나 테스트 중 찾아낸 버그를 없애나가는 과정.

de + bug => 버그를 없애다.

 

 

1. 원인찾기

 

-어떤 상황에서, 어떤 조작을 했을 때 일어나는가?

-> 다양한 상황에 노출시켜보아야 원인을 찾을 수 있다.

-얼마나 잦은 빈도로 발생하는가?

-> 다수가 아닌 소수만 겪는 버그라면 버그의 중요도를 확인할 수 있다.

-에러 메세지가 뜬다면 내용이 무엇인가?

-> 프로그램이 버그의 원인을 알려주기 때문에, 에러메세지를 읽는 법을 알아야한다.

 

 

2. 버그 해결하기

 

- 버그가 발생한 원인을 해결하려면 어떻게 해야하는가?

- 새로운 코드가 일으킬 새로운 버그는 없는가?

 

 

3. 재발을 방지

 

- 버그를 일으킨 코드가 다른 곳에서 사용되는가?

- 비슷한 설계를 이용한 다른 코드는 없는가?

- 고친코드의 약점은 없는가?

- 코드를 지속적으로 검증할 방법은 무엇일까?

 

 

 

 

디버깅이 중요한 이유

 

앞서 잠시 언급했듯이,

사용자 경험과 직결되기 때문이다.

 

결국 프로그램을 사용하는 최종 사용자가 좋은 경험을 할 수 있도록 하는 것이

프로그래머, 디자이너, 기획자 모~든 개발자들의 임무이다.

 

사용자의 입장에서는

다양하고 새로운 기능이 많은 것보다 <<<<< 조잡한 버그로 인한 불쾌한 경험이

더 기억에 남는다.

 

프로그래머의 입장에서는,

새로운 기능을 넣는것도 중요하지만 기존의 기능들을 잘 다듬고 버그가 없게 만드는 것이 더 중요하다.

 

따라서.

버그가 생겼을 때에 빠르게 문제를 파악하고

해결하는 능력이 매우 중요하겠다

 

 

 

 

 


 

 

상업적인 모든 것은

제품이든, 서비스이든 결국 최종 사용자의 경험이 중요하다는 것에 매우 공감한다.

 

디자이너의 관점이아닌,

프로그래머의 관점에서 바라보는 UX는 비슷하면서도 색다르고 흥미롭게 느껴졌다.

 

표현의 방식과 포지션이 조금 다를 뿐

결국에 서비스를 완성해야하는 목적은 똑같기에

이 분야에서 일을 하는 것도 내 적성에 맞는 것같다!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글