paint-brush
내 새로운 주니어 개발자는 정말 형편없어~에 의해@michaelsalim
1,193 판독값
1,193 판독값

내 새로운 주니어 개발자는 정말 형편없어

~에 의해 Michael Salim6m2023/05/12
Read on Terminal Reader
Read this story w/o Javascript

너무 오래; 읽다

ChatGPT를 사용하여 코딩하는 것은 주니어 개발자를 밑에 두는 것과 같습니다. 거기에서 코드의 80%를 얻을 수 있지만 실제로 모든 줄을 검토해야 합니다. UI와 상호작용 사이에서 사용하는 것은 꽤 번거로운 일입니다. 제가 가장 많이 반복해서 성공한 성공은 3번이었습니다.
featured image - 내 새로운 주니어 개발자는 정말 형편없어
Michael Salim HackerNoon profile picture
0-item

그 개발자는 ChatGPT이고 저는 이 개발자와 애증 관계를 맺고 있습니다.


요즘 AI에 관한 기사가 너무 많아서 이 기사는 짧게 하려고 합니다.

요약:

ChatGPT를 사용하여 코딩하는 것은 주니어 개발자를 밑에 두는 것과 같습니다. 거기에서 코드의 80%를 얻을 수 있지만 실제로 모든 라인을 검토해야 합니다.

시나리오

ChatGPT를 사용하여 코드 작성을 도울 수 있는 방법이 많다는 점을 인정해야 합니다. 아마도 그들 중 일부에서는 더 좋을 수도 있고 다른 경우에는 더 나쁠 수도 있습니다.


예를 들어, 많은 사람들이 이를 검색 엔진으로 사용한다고 들었습니다. 개인적으로 좀 의문스러운 부분입니다. 문서를 찾거나 검색을 통해 답변을 찾는 것은 그리 어렵지 않습니다. 저는 보풀을 줄이는 데 도움이 되는 Kagi를 사용합니다.


반대로 ChatGPT를 사용하면 답변이 사실인지 어떻게 알 수 있나요?


스펙트럼의 반대편에는 이를 미화된 자동 완성 기능으로 사용하는 사람들이 많이 있습니다. Github Copilot 과 같은 것입니다. 나는 그것이 유용하다고 볼 수 있습니다.


제가 선택한 시나리오는 다음과 같습니다.

내 코드를 chakra-ui 에서 tailwindcss 로 변환합니다.


왜?


  • 두 기술, 특히 Tailwind(물론 HTML도 포함)에 대한 리소스가 많이 있습니다. 작업할 수 있는 데이터가 많아야 합니다.


  • 이를 수행하는 프로그램을 만드는 것이 매우 가능합니다. 다양한 극단적인 경우가 있을 수 있지만 기능 자체는 간단합니다. chakra-ui는 순풍에서 영감을 받았기 때문에 쉽게 전달할 수 있는 많은 것들을 물려받았습니다.


  • 그것은 내가 해야 할 일이다. 따라서 다른 사람이 접할 수 있는 실제 사용 사례입니다.

신속한 엔지니어링은 힘든 일입니다

현장을 둘러보니 잘 자극하는 것이 좋은 결과를 내는지, 아니면 보통의 결과를 내는지의 차이인 것 같았습니다. 나는 이것에 최고는 아니지만 약간의 연구를하고 최선을 다했습니다.


나는 그것을 좋은 상태로 만들기 위해 여러 프롬프트를 사용했는지 확인했습니다. 내 코드만 변환해야 한다는 것을 알고 있는 것처럼 보일 때마다 내 코드를 붙여넣습니다.


솔직히 이 부분은 개선될 수 있다. UI와 상호작용 사이에서 사용하는 것은 꽤 번거로운 작업입니다.


  • 원하는 상태에 도달하는 데 시간이 걸릴 수 있습니다.

    무엇을 쓸지 고민하고, 응답이 오기를 기다리고, 쓰기가 끝나기를 기다리는 사이에, 이 작업을 하는 것은 상당히 귀찮습니다.


  • 일관성이 없습니다

    항상 동일한 프롬프트를 재사용할 수 없다는 것은 도움이 되지 않습니다. ChatGPT에는 임의성이 있으므로 매번 프롬프트를 조정해야 했습니다. 이전에 작동했던 프롬프트를 복사하여 붙여넣는 것은 도움이 되지 않았습니다.


  • 원하는 상태에서 벗어나는 것은 매우 쉽습니다.

    위의 내용은 일회성이라면 괜찮습니다. 하지만 AI가 첫 번째 코드 변환 이후에는 모든 것을 잊어버리기 쉽다는 것을 알았습니다. 제가 가장 많이 반복한 성공은 3번이었습니다. 그 외에도 내 코드의 기능을 설명하는 것과 같이 완전히 관련 없는 내용을 반환했습니다.


  • 토큰은 상당히 제한적인 요소입니다.

    토큰 제한으로 인해 생성할 수 있는 코드의 양은 너무 많습니다. 여기에서 토크나이저를 확인하여 토큰을 계산하는 방법을 확인할 수 있습니다. 코드에 그다지 친숙하지 않습니다. 다음은 출력 중 하나의 예입니다. 각각의 다른 색상은 토큰을 나타냅니다.


    토큰화된 코드

    이 때문에 변환을 여러 단계로 나누어야 합니다. 그렇지 않으면 세대가 중간에 멈추게 됩니다. 계속하라고 말하는 것은 대부분의 경우 작동하지 않습니다. 위의 사항과 결합하면 이는 금방 해야 할 일이 됩니다.


    코드 생성을 완료하라는 요청을 받으면 ChatGPT에서 오류가 발생합니다.


대체로 내가 느끼는 느낌은 영어를 쓰고 싶지 않다는 것입니다. 이미 무언가를 작성해야 한다면 작동하는 코드를 직접 작성하는 편이 낫습니다.


신속한 엔지니어링이 미래에 갖춰야 할 핵심 역량이라고 봅니다. 오늘날 세계에서 검색 방법을 아는 것이 핵심 기술인 것과 유사합니다.

출력은 나쁘지 않습니다

필요한 모든 작업에 대해 ChatGPT는 꽤 인상적인 코드를 출력했습니다. 원본과 결과를 비교하면 다음과 같습니다.


보시다시피, 그 일을 꽤 잘 해냈습니다.


좋은 것

  • 구조가 꽤 잘 잡혀있네요

    세부 사항을 제외하면 HTML 구조는 원본과 매우 유사합니다. 간격은 사라졌지만 전체적인 레이아웃은 그대로 유지됩니다.


  • 텍스트 내용은 변경되지 않습니다.

    내용 자체는 잘 다루었습니다. 모두 다시 확인해야 했지만 하나도 변경되지 않았습니다. 유일한 예외는 JS에서 파생된 것입니다.


나쁜

  • 무작위 수업이 있었어요

    아무것도 하지 않는 수업이 많이 있습니다. 일부는 변경되었고 일부는 잘못된 순풍 클래스였습니다.


  • 소소한 차이가 많이 나네요

    UI는 마치 라이브러리가 방금 업그레이드된 것처럼 보였고 누군가가 코드를 마이그레이션하는 것을 잊어버렸습니다. 이 경우 ChatGPT가 클래스의 값을 무작위로 변경했기 때문입니다. 예를 들어 padding 3에서 4로 변경하거나 font-weight 굵게에서 보통으로 변경합니다. 세부 사항이 모두 잘못되었습니다.


  • 절반의 시간 동안 작동하지 않습니다.

    위의 스크린샷은 제가 직접 비교할 수 있는 스크린샷이었습니다. 실제로 결과는 불완전하거나 잘못되어 작동하도록 많은 변경을 해야 했습니다. 그렇기 때문에 나란히 놓고 비교할 수도 없습니다. 코드가 실행되지 않기 때문에 비교할 수 있는 것이 없습니다.

코드를 작성하는 대신 PR을 검토하는 것과 같습니다.

이것의 가장 좋은 점은 내가 할 수 있는 일이 있다는 것입니다. 다행히 작업 자체는 매우 간단합니다. 오류를 발견하는 것은 쉽습니다. chakra-ui 클래스와 tailwind 클래스 간의 매핑은 거의 일대일입니다. 구문이 다르기 때문에 지루할 뿐입니다.


그러나 이 접근 방식은 PR 검토와 더 유사합니다. 모든 것이 올바르게 수행되었는지 확인하기 위해 전체 코드를 스캔해야 했습니다.


언뜻보기에는 괜찮아 보입니다. 그러나 일단 작업하고 주의 깊게 주의를 기울이면 문제가 많습니다. 보안에 대한 잘못된 인식이 생겨서 모든 결함을 알게 된 후에는 약간 좌절감을 느꼈습니다.


그것의 큰 부분은 다른 코드베이스에서 보간된 코드입니다. 끔찍해 보이지는 않지만 내가 원했던 것은 아닙니다.


h2에서 h1로 방향을 변경하는 것과 같은 놀라운 변화도 있습니다. 내용 때문에 그렇게 된 것이라고 추측할 수 있습니다.


마치 후배 개발자가 뭔가를 치고 자신의 코드를 테스트하지 않은 것 같은 느낌이 들었습니다 . 그리고 이제는 스스로 고치라고 할 수 없이 검토하고 고쳐야 합니다.


그리고 이것은 끔찍합니다. 나는 이미 직장에서 PR을 검토하는 문제를 해결했습니다. 이제 내 프로젝트에도 그렇게 해야 하나요? 고맙지 만 사양 할게!

희망찬 미래

아직 거기까지 갈 수는 없다고 생각하지만, AI가 미래의 어느 시점에서는 개발에 도움이 될 것이라고 생각합니다. 대답이 LLM인지 누가 알겠습니까?


토큰 한도는 지속적으로 증가하고 있습니다.

나는 이 기사를 끝내는 것을 충분히 오랫동안 미뤄왔습니다. 그 기간 동안 토큰 한도가 증가한다는 발표가 많이 있습니다. 공개인지 유료인지는 잘 모르겠지만 보기에는 좋습니다.


시간이 지날수록 UX에 대한 메시지가 더 쉬워질 것입니다.

ChatGPT 플러그인과 더 나은 통합을 통해 상태 및 일관성 기억과 같은 문제가 개선되어야 합니다. ChatGPT에서 유용한 결과를 얻는 데 필요한 노력이 줄어들기를 바랍니다.


그동안 마이그레이션의 나머지 절반을 수동으로 완료했습니다. 더 빨랐나요? 글쎄요, 누가 알겠습니까? 거의 같은 느낌이었습니다. 하지만 수동으로 작성하는 것이 훨씬 더 기분이 좋았습니다.