glenn-syj / more-effective-java

이펙티브 자바를 읽으며 자바를 더 효율적으로 공부합니다
4 stars 5 forks source link

[MEJ-NONE] chatGPT 사용에 대한 논의 #118

Closed glenn-syj closed 4 months ago

glenn-syj commented 4 months ago

chatGPT 사용에 대한 논의

TL;DR

들어가며

다들 무려 5주차나 "Effective Java"를 함께 읽느라 고생하셨습니다. 모두가 어려운 부분은 어려운 부분대로 기초적인 부분은 기초적인 부분대로 공부하시느라 고생을 하고 계실텐데요. 저도 예외는 아닙니다.

이슈들을 찬찬히 읽어보며 느낀 점은, 글이나 질문에서 chatGPT를 사용하는 경우가 생각보다 많다는 점인데요. 물론 chatGPT가 쓰였으나 명시되지 않은 부분도 눈에 띄고요.

기본적으로 저는 chatGPT 사용 자체에 대해서는 부정적인 입장이 아닙니다. 사실 무엇을 검색해야 하는지, 우리가 어떤 개념을 모르기에 접근하지 못하는지, 그리고 해당 내용에 대해 적절한 예시 코드를 확인할 수 있는 좋은 도구라고 생각합니다.

이슈나 답변에서 chatGPT를 이용함에 그치는 경우에는 제가 research needed 태그를 붙여 추후에 함께 조사할 수 있으니 상관 없습니다. (#89 가 대표적인 예시이지만, 그전에 '좋은 내용'이라고 곧이 곧대로 받아들여서는 안됨에 주의합시다.) 이번에는 chatGPT 생성 코드에 대해 다시 생각해볼 때가 된 것 같습니다.

다시 한 번 생각하기

이전에 단체 채팅방에서 chatGPT를 사용하는 경우에는 무조건 명시하라는 말씀을 드린 적 있는데요. 이번에는 과연 chatGPT 예시 코드를 그대로 가져오는 것의 의미가 있는가를 논의할 필요가 있습니다.

물론, stackoverflow에도 특정 개념에 대해 이해를 오히려 저해하는 코드가 꽤 있음은 압니다. 그러나 chatGPT를 통해 생성된 코드와 직접 작성한 코드는 다음과 같은 점에서 다릅니다.

  1. 코드에 대한 논쟁과 의심이 있다

Stackoverflow에서는 특정 개념을 설명하는 아주 '유명한' 코드라도, 개념이나 상황을 이야기하는 본질을 놓치고 있다면 정정 혹은 반대 코멘터리가 달립니다. 저는 이것이 공동체가 가지는 순기능이라고 믿습니다. 그러나 chatGPT 코드에는 (저희의 부족함 때문이기도 하지만) 의심이 크게 보이지 않습니다.

그런데 이러한 논의가 가능한 배경에는 코드에 (적어도 몇 다리를 건넜을지라도) 작성자의 의도가 들어가 있기 때문입니다. 그러나 chatGPT 코드에서는 때로 의도에 맞추어 생성된 코드이지만, 코드에서 자신의 의도를 찾아낸다는 의심도 듭니다.

  1. 작성한 코드에 대한 이해가 있다

chatGPT 생성 코드를 직접 테스트해보시고 주석까지 달고 계심은 잘 알고 있습니다! 그러나 제가 언젠가 앞서 이야기했듯, 자신이 적은 코드는 자신이 설명할 수 있어야 합니다. chatGPT가 적은 코드에 대해서 정말 모두 이해하고 있다고 말할 수 있을지 다시 한 번 돌아볼 필요가 있습니다.

이는 모든 것을 이해하고 코드를 이용하라는 말로도 들리지만, 때로는 모르는 부분을 밝힌 채 논의가 필요하다고 적어야 한다는 뜻이기도 합니다. 모두들 정말 chatGPT를 이용한 코드에서 하나하나 왜 이렇게 쓰였는지 이야기할 수 있다면 이런 논의는 필요 없겠지만요.

결론적으로

따라서 상황 1.2. 에 대한 개선이 있었으면 좋겠습니다. 물론 chatGPT를 쓰지 말자는 뜻은 아닙니다. 대신 학습을 위해, 최대한 주석을 꼼꼼하게 달고 설명할 필요성을 느낍니다. @ssh2957 의 답변처럼, 다른 모든 코드에도 적용가능한 말이기도 하구요. 다른 분들은 어떻게 생각하시나요?

ssh2957 commented 4 months ago

gtp를 활용한 코드뿐만 아니라 모든 코드에 주석을 꼼꼼히 달면 읽는 사람에게도 도움이 되고 글쓴 사람도 코드를 완전히 이해 할수 있어 좋은 방법이라고 생각합니다.

glenn-syj commented 4 months ago

gtp를 활용한 코드뿐만 아니라 모든 코드에 주석을 꼼꼼히 달면 읽는 사람에게도 도움이 되고 글쓴 사람도 코드를 완전히 이해 할수 있어 좋은 방법이라고 생각합니다.

확실히 모든 코드에 대해서 더욱 자세한 주석을 쓰는 것도 유용할 것 같네요. 이건 저도 잘 지켜야겠습니다.

undeadtimo commented 4 months ago

저도 제가 작성한 글인, #104 에서, 예제 코드를 직접 떠올리지 못하였으며 해당 상황에 해당되는 코드를 찾아내지 못해서 ChatGPT 에서 생성한 예제 코드를 수정하여 올렸습니다.

그러나 예제 코드를 제시하면서 chatGPT임을 바로 명시하지 않고, 글의 끝 부분에서 위의 코드는 chatGPT에서 참고했다는 점을 밝혔으며,

또한, 해당 예제 코드에 대하여 자세히 주석을 달지 않았기에, 저의 경우에도 말씀해주신 것처럼 chatGPT가 제공한 코드에 대해 의심없이 충분한 이해를 하지 못하였던 것 같습니다.

이러한 경우가 다시 일어나지 않도록, chatGPT를 사용한 경우, 사용한 이유와 해당 정보 또는 코드에 대한 의심 그리고 충분한 이해를 보여야 함을 규칙으로 정하는 것이 옳은 것 같습니다.

FickleBoBo commented 4 months ago

저는 chatGPT를 사용하는 경우로 '갈피를 잡지 못해 인사이트를 얻고자 하는 경우'와 '스스로 양질의 테스트 코드를 만들기 어려울 때' 사용하는 것 같습니다. 두 가지 상황에서 모두 유용하다고 생각하는데 테스트 코드가 주제와 부합한지에 대한 검증을 조금 놓치고 있었던 것 같습니다.

본인이 찾은 코드는 물론 타인의 코드에 대해서도 이해한만큼 주석으로 충분히 달아두는 것이 좋을 것 같습니다. 지금껏 실행 결과를 위주로 해석해 코드를 올렸었는데 해석 과정에도 집중하겠습니다.