일본의 유기장 기업에 대한 내용은 GiGO 문서 참고하십시오.
garbage-in garbage-out
1. 개요
속담이면서 경제학, IT, 경영학, 공학등 자료를 다루는 학문이라면 금과옥조인 격언.흔히 기고라고 발음한다.
2. 상세
쓰레기를 넣은 곳에 쓰레기가 나온다 정도로 번역이 가능한데, 올바르지 않은 데이터를 입력하면(garbage-in) 올바르지 않은 결과값이 나온다(garbage-out)는 의미. 한국에서 같은 의미의 속담이라면 " 콩 심은데 콩 나고 팥 심은데 팥 난다"가 있다. 좀 더 비슷한 관련업계 속담으론 "(사람이 거짓말하지) 기계가 거짓말 하냐?"가 있다.즉, 자료의 In/Out은 프로세스도 중요하지만 그 이전에 자료의 적합성과 가치에 따라서 산출되는 결과의 신뢰성이 달라질 수 있다는 것. 여기에서 자료의 적합성과 가치는 프로세스를 통해 얻으려고 하는 결과물과 이를 통한 의사결정과의 관련성의 크기에 결정된다.
적절한 사례로 이력서를 들 수 있는데 이력서에 최종학력과 성적표는 중요한 의사결정요소이자 사원 선출 프로세스(면접)에 있어서 중요한 데이터로 사용될 수 있지만, 초등학교 수우미양가를 넣는다면 이는 의사결정에도, 프로세스에도 영향을 미칠 수 없는 쓰레기데이터 밖에 안된다. 경우에 따라서는 의사결정과 프로세스의 원활한 작용을 방해할 소지가 있으므로 넣어서는 안 되는 데이터다.
IT나 공학의 경우 DB에서의 테이블의 작성은 이 GIGO의 원칙에 따라서 필요한 항목만 개설하도록 원칙이 맞춰져 있으며 얻고자 하는 정보, 지식, 지능의사 결정에 따라서 각종 어플리케이션의 UI와 시스템들의 짜여지는 방향성에 큰 영향을 미친다.
현실세계에서 실제로 사용되어야 하는 소프트웨어는 절대로 쓰레기값을 넣었을 때 쓰레기가 나와서는 안 된다. 어떤 입력 값이든 쓰레기인지 아닌지를 먼저 판별하고, 쓰레기로 확인됐을 때에는 이에 대해 거부 처리(예외 처리, 메시지 출력 등)를 하는 것이 올바른 개발 방향이다. 쓰레기 판별이 어려운 경우에는 모든 입력 값을 쓰레기로 가정하여, 이를 유효한 입력 데이터로 사전 가공하는 작업을 거쳐야 한다.
비슷한 용어로 NINO(니노)가 있다. Nothing In, Nothing Out 또는 No Input, No Output의 줄임으로, 아무런 입력도 없으면 아무런 출력도 나오지 않는다는 의미. 상호작용을 위해서는 적어도 입력(마우스 클릭, 키보드 입력, 함수의 파라미터, 함수 호출 등)을 줘야 한다는 뜻이다. 속담으로 치자면 "아니 땐 굴뚝에 연기 날까"와 같은 의미. GIGO와 마찬가지로 NINO 역시 중요한 격언이지만 GIGO의 하위 개념으로 취급되다보니 묻힌 감이 있다.