수요일, 4월 25, 2007

[2부 2번 수필] 버그, 오류, 결함

SC2.0을 읽다보면 이런저런 '잡스러운' 생각을 많이 하게 됩니다. 2장 2번 수필을 읽다가 메모해 둔 질문 중 하나입니다.

버그(bug)와 오류(error)와 결함(defect)의 차이는 무엇일까요?

대충 많이 쓰는 말이고 대충 느낌으로 이해하는 단어이고, 많이 섞어쓰는 뜻이기도 합니다. 하지만 정확히 구분해서 정의한다면?

여러분들이 재밌게 여길 질문이다 싶어서 올려봅니다. 답은 안올려도 되겠죠? 찾고 생각하는 과정이 더 재밌으니까요.

"소프트웨어 컨플릭트 2.0" 역자 이해영 올림.

@ In Search of Stupidity 2nd Ed. 번역을 한창 진행 중입니다. 너무너무 재미있어서 빨리 읽혀드리고 싶네요.

라벨: , ,

3 Comments:

Blogger jhrogue said...

벌써 답을 정리하고 있는 주석을 보면서 저를 무지 미워하실(?) 독자분들도 계실겁니다.

1. 버그는 수동적으로(즉, 프로그래머 잘못이 아니라 저절로 생긴 문제다) 들리기 때문에 되도록 사용하면 안 되는 단어라고 합니다.

2. 오류는 프로그래머에게 죄책감을 불러일으킬 소지가 있으므로 역시 사용하면 안 되는 단어라고 합니다.

3. 결국 1, 2번을 제외하고 생각해보니 결함이 그나마 소프트웨어에 존재하는 문제점을 지칭하는 가장 좋은 단어로 보입니다. :)

"소프트웨어 컨플릭트 2.0" 역자 박재호 올림

수요일, 4월 25, 2007 10:02:00 오전  
Blogger 파름 said...

버그: 구현(implementation)시에 발생하는 잘못. 타이핑 에러나 정신이 맑지 못해 발생하는 기초적인 잘못들로 발견되었을 경우 고치기는 쉽고 수정에 대한 impact도 극히 작다.

오류: 버그보다 범위가 큰 잘못. 디자인 잘못으로 발생한다. 보통은 잘못된 알고리듬을 적용한다던지 하는 것으로 발생하며 고치기 위해서는 디자인을 바꿔야 한다. 고칠 경우 비용이나 impact가 다양하므로 고칠지 말지 부터 결정해야 한다. 보통 '버그가 버그를 낳는다'는 말은 impact산정이 주먹구구 식으로 되어 다른 모듈에 영향을 부정적으로 미친 경우를 말한다.

결함: 버그보다 범위가 큰 잘못. 요구사항 분석이 잘못되어 발생한다. 보통 요구사항에서 고려가 덜되거나 제한조건을 잘못 산정하여 일어난다. 유니코드에대한 고려가 전혀 돼 있지 않아 i18n이 불가능 하다면 이건 오류가 아니라 결함이다. 보통 결함은 있는 채로 사용되게 된다.

토요일, 4월 28, 2007 10:04:00 오후  
Blogger wgshim said...

안녕하세요

jhrogue 님의 블로그를 남몰래 구독해서 들어와 보고 있던 중에.. 저도 예전에 단어의 구분이 모호하여 정리해 본 글이 있습니다.

Software Development Canada 에서 작성한 What is a bug? 라는 글을 졸역한 글입니다. "버그"란 무엇인가? 인데 참고가 되실런지 모르겠네요. :-)

화요일, 5월 01, 2007 6:54:00 오후  
Home  | 댓글 쓰기