kipa00   4년 전

제발, 제발, 제발 다른 사람의 코드를 제출하지 말아주세요.

다른 사람의 코드를 그대로 베껴서 제출하는 행위를 카피(copy)라고 부르겠습니다. 프로그래밍 기술을 연습하는 온라인 저지의 특성상, 카피는 코드를 일부만 베껴도, 코드가 블로그 등 온라인 상의 잘 보이는 곳에 공개되어 있어도, 심지어 코드 작성자에게 허락을 받았어도 떳떳하지 못한 행위입니다.

최근 매우 많은 코드 카피 행위가 발견되고 있습니다. 특히 solved.ac라는 플랫폼을 통해 문제를 풀면 레벨 업을 할 수 있는 외부 시스템이 생기고 나서부터 상당히 잦아진 것으로 보입니다. 일종의 게임이라고 생각하면, 누구나 편하게 레벨 업 하고 싶은 욕구가 있을 것이지만, 그렇다고 해서 게임 매크로를 쓰는 것은 잘못된 행위인 것과 같습니다. 코드 카피는 매크로 수준의 기계적이고 단순한 작업이며, 스스로 격을 떨어뜨리는 행위입니다.

프로그램 개발을 할 때 많은 라이브러리를 가져다 쓰는 것처럼 코드를 가져다 쓴다고 생각하실 수도 있는데, 라이브러리를 가져와서 쓰는 행동 자체가 잘못된 것은 아닙니다. 남의 코드를 가져와서 제출하는 행동이 잘못된 것입니다. 실력 있는 분들은 여러 알고리즘에 대한 본인만의 라이브러리를 스스로 만들어서 사용합니다. 이쪽이 실력을 높이는 데도 도움이 되고, 필요할 때 자신이 짠 코드를 떳떳하게 가져와서 쓸 수 있습니다.

많은 분들이 카피를 하시면, 사이트를 오래 이용한 (저를 포함한) 사람들은 새로 오시는 분들을 의심부터 할 수밖에 없습니다.

백준 온라인 저지 커뮤니티, 더 나아가 PS 커뮤니티가 자료구조 및 알고리즘을 처음 배우시는 분들께 계속해서 열린 마음을 가질 수 있도록 도와주세요.

협조를 부탁드립니다. 감사합니다.

apdh25   4년 전

블로그, 구글검색을 보면 다들 오픈소스로 코드를 공개하니까 특성상 어쩔 수 없는 것 같습니다ㅜㅜ 저도 가끔씩 드는생각인데 카피를 걸러내는 프로그램이 잇으면 참 좋겟지만.. 시간이 흐르다보면 언젠가 개발되길 빌어염

djm03178   4년 전

이러한 코드가 발견될 경우 단순 해당 제출 삭제에 그치지 않고 확실한 경고 및 누적 시 이용 제한이 이루어지는 시스템이 있으면 좋겠습니다. 한두 번은 모르고 할 수 있지만 지속적으로 복붙한다면 그건 악의적이라고 볼 수밖에 없습니다.

wider93   4년 전

악의적인 사용자를 처벌하는 것을 떠나서 규칙이 유혹을 덜어준다고 생각합니다. 체계적인 제제 시스템이 있으면 좋겠네요.

startlink   4년 전

수정했습니다.

shg9411   4년 전

치팅에 대한 질문이 있습니다.

저는 제가 '풀었던' 문제에 대한 질문이 질문게시판에 등록되면 그 질문에 대한 답변을 달기 전에

제 답변이 맞는지 확인하기위해 코드를 조금이나마 수정하여 통과되는지 확인합니다. 제가 잘못된 답변을 달지 않기 위해서

이것도 치팅에 해당되는건가요..?

startlink   4년 전

그렇게 기계적으로 같다고 무조건 치팅, 비슷하다고 무조건 치팅으로 판단하지 않습니다

startlink   4년 전

여러가지 상황을 종합해서 판단합니다. 

shg9411   4년 전

댓글 감사합니다!

kipa00   4년 전

이 글을 보고 덧붙입니다.

사이트를 처음 이용하시려는 분들께

사이트에 랭킹을 높이기 위해 여러/어려운 문제들의 코드를 복붙하는 행위가 발각된 적이 이미 여러 번 있고, 위 글에서 말했듯이 최근 들어 급증하고 있습니다. 이 때문에 답변하시는 분들의 신경이 많이 날카로워져 있는 상태입니다.

이 글을 보게 되신다면, 아래와 같은 상황에서 이렇게 행동해 주시면 더 좋은 분위기에서 커뮤니티를 이용하실 수 있습니다. 반드시 이렇게 하실 필요는 없지만 이렇게 해 주시면 감사하겠습니다.

  • 내 소스 코드가 왜 틀리는지 몰라서 다른 사람의 소스 코드 일부/전부를 (바꿔) 넣어서 맞는지 확인해 보고 싶은 경우에는 제출할 때 그 소스 코드가 어디에서 왔는지와 본인이 소스 코드를 확인 목적으로 사용한다는 것을 주석으로 명시해 주셨으면 합니다. 카피를 의심하는 방법 중 하나는 소스 코드의 길이 및 메모리/시간 제한의 유사도입니다. 공부 목적임이 확실한 소스 코드는 악의적인 치팅으로 잡을 이유가 없습니다.
  • 질문을 할 때 다른 사람의 소스 코드를 한 번이라도 참고한 경우에는 참고한 곳의 링크를 남겨 주시고, 이곳의 소스 코드를 참고했다고 명시해 주세요. 출처를 잊었다거나 등의 이유로 출처를 밝히기 매우 힘든 경우 어딘가에서 참고했다고만 적어주셔도 됩니다. 답변하시는 분들은 질문게시판에 질문으로 올라온 코드가 질문하시는 분이 직접 짠 코드라고 생각합니다. 어떤 소스 코드를 봤다면 본인의 코드를 보면서 짜지 않더라도 그곳의 소스 코드와 매우 유사해질 수 있기 때문에, 출처를 밝히지 않는 경우 카피로 의심받을 수 있는 정황이 생깁니다.

사이트를 오래 이용하신 분들께

질문게시판에 있는 코드에 대해서는 관대해지시기를 부탁드립니다. (제가 위 글에서 언급한 "다른 사람의 코드를 제출"에는 제출이 중요합니다.)

채점 현황에 똑같은 바이트 수, 비슷한 메모리/시간이 보이면 카피를 했는가 적극적으로 찾아 보셔도 좋습니다만, 이외의 경우 의심은 그냥 새로 오시는 분들을 밀어내기 좋은 태도일 뿐입니다. 특히 질문게시판에는 충분히 이 코드 저 코드의 차이를 물을 수도 있습니다. 이는 좋은 공부법 중 하나입니다.

새로 오시는 분들은 사람들이 질문게시판에 올라온 코드가 본인이 직접 쓴 코드일 것이라는 가정을 하는지 모를 수 있습니다. 본인이 쓴 코드더라도, 인터넷에 올라와 있는 코드와 매우 유사한 코드일 수도 있고, 그런 코드의 출처를 전부 기억하지 못할 수도 있습니다. 극단적으로 여러분들도 특정 알고리즘의 코드를 "외워 짜는" 경우가 있고, 이 부분은 다른 사람의 코드를 단순히 모방한 것일 수 있습니다.

"뉴비"분들은 커뮤니티의 분위기나 상황, 활동하는 사람들의 성격을 아직 잘 모르시는 분들입니다. 질문하시는 분들이 예의를 갖추었다면, 이런 행위를 해도 되는지, 안 되는지를 전혀 모르신다고 가정하세요. 만일 위 글과 같은 예시처럼, 인터넷에 올라와 있는 코드와 같은/매우 유사한 코드가 발견되었고, 베낀 게 거의 확실해서 기분이 많이 나쁘시더라도 질문게시판에서는 비꼬거나 비난하지 말아주셨으면 좋겠습니다.

이 글을 쓴 이유는 카피를 많이 잡아달라고 부탁하기 위해서가 아니라, 새로 오시는 분들께 친화적인 환경을 다 같이 조성하기 위해서였습니다. 이 글이 알았든 몰랐든 누구든지 카피한 상대를 비난하는 것을 정당화하지 않았으면 좋겠습니다. "비난"은 백준에 있는 규칙으로 충분하고, 여러분들이 나서서 비난하거나 비꼴 이유는 없습니다.

댓글을 작성하려면 로그인해야 합니다.