이곳은 개발을 위한 베타 사이트 입니다.기여내역은 언제든 초기화될 수 있으며, 예기치 못한 오류가 발생할 수 있습니다.문서의 임의 삭제는 제재 대상으로, 문서를 삭제하려면 삭제 토론을 진행해야 합니다. 문서 보기문서 삭제토론 GOTO (문단 편집) == 단점 == > GOTO Statement Considered Harmful[* 이 GOTO문의 사용이 해가 된다고 지적한 서한의 제목이 'Go to Statement Considered Harmful'(GOTO문의 해로움)이였는데, 이 문서가 워낙에 유명하다보니 '... Considered Harmful'라는 어구도 인기를 끌어서 컴퓨터 과학 계열에서 어떤 것에 대한 비판을 할때 자주 쓰이는 어구가 되었다. 참고로 위 서한에 대한 비평으로 ' 'GOTO Statement Considered Harmful' Considered Harmful'('GOTO문의 해로움'의 해로움)이 있었고, 다시 이것에 대한 반응으로 도널드 무어 등은 ' 'GOTO Statement Considered Harmful' Considered Harmful' Considered Harmful? (' 'GOTO문의 해로움'의 해로움'의 해로움?)을 보냈다.] - [[다익스트라|Edsger W. Dijkstra]] 고급 언어에서 GOTO문은 많은 커뮤니티에서 터부시되는 구문이다. 그 이유는 이게 너무 많이 쓰이다 보면 [[가정이 무너지고 사회가 무너지고|구조가 무너지고 코드가 황폐화되면서]] 어째 실행은 잘 되긴 되는데 코드를 짠 프로그래머 자신도 헷갈려 하는 소리가 절로 나오며 읽고 유지보수하기가 힘들어지는 지경에 이르게 된다. 이러한 상태로 된 코드를 '[[스파게티 코드]]'라고 한다. 이런 스파게티 스타일을 반대하고 구조적 프로그래밍을 주창한 [[네덜란드]]의 컴퓨터 과학자 [[에츠허르 다익스트라]](Edsger Wybe Dijkstra)는 GOTO문의 사용이 프로그램의 정확성 분석과 증명 등의 측면에 해가 된다고 한 바 있다. 실제 프로그래밍할 때도 GOTO문을 남용하면 [[디버깅]] 불가+기능 추가 난해+다른 사람의 욕 처먹기+[[내가 이러려고 대통령을 했나|내가 이러려고 이 코드를 짰나 자괴감 들고 괴로운]] 사단 콤보가 일어날 수 있다. 또한 C언어에서 예외처리를 하기 위해 어쩔 수 없이 사용하는 경우도 있는데, setjmp, longjmp 같은 대용품이 존재한다. 이렇게 소스가 꼬이는 것은 사람에게만 문제가 되는 것이 아니다. 프로그램을 컴파일하면 최적화를 해야하는데, 언어 상에서 제공해주는 조건문/반복문 등은 자주 사용되거나 분기되는 특정 부분이 명확하기 때문에 최적화가 그리 어렵지는 않은 편이다. 하지만 GOTO를 사용할 경우 반복되는 부분이 명확해지지 않아서 최적화 결과가 좋지 않거나 시간이 오래 걸릴 수 있다.저장 버튼을 클릭하면 당신이 기여한 내용을 CC-BY-NC-SA 2.0 KR으로 배포하고,기여한 문서에 대한 하이퍼링크나 URL을 이용하여 저작자 표시를 하는 것으로 충분하다는 데 동의하는 것입니다.이 동의는 철회할 수 없습니다.캡챠저장미리보기