AI 코딩 툴 사용하면서 느낀 점

저는 C# 사용자이고, 블레이저를 사용해서 앱을 만들기 때문에 아래와 같은 기술 스택을 갖춰야 했습니다.

  1. C#
  2. 프레임워크 (Asp.Net Core, Blazor)
  3. OOP
  4. 디자인패턴
  5. EF Core, SQL
  6. Http 프로토콜
  7. Html, Css, Javascript

여기에 앱과 관련한 도메인 지식도 따로 연구해야 하고, 과거에 Xamarin 한다고 Xaml 도 조금 끄적여 봤고, 배포 운영을 위한 지식도 아주 얄팍하게 알고 있습니다.

아시는 분은 아시겠지만, 위에 것들을 사용해서 일정 품질의 코드를 뽑아 내는 것은 학습 시간은 차치하고라도, 모든 것을 기억하고 능숙하게 사용한다는 것이 불가능에 가깝더군요. (가능한 분 계시면 존경합니다)

어떤 기술을 심도 있게 알아 가다 보면, 다른 것들이 슬슬 머리에서 빠져나가는… 특히 Html, Css 의 세계는 한도 끝도 없더군요.

그러다가 AI 가 그 분야에 매우 능숙하다는 것을 알게 되었습니다.
말로만 설명하면, 알아서 다 만들어 주는 것도 있고, 대충 그림만 그려줘도 되는 것들이 있더군요.

최근에 그 중에서 make real 이라는 서비스를 사용 중인데, 이런 식입니다.

그러면, 아래와 같은 코드를 생산해 줍니다. (일부)

<body class="d-flex align-items-center justify-content-center min-vh-100 py-5">
    <div class="container">
        <div class="row justify-content-center">
            <div class="col-12 col-md-6 col-lg-5">
                <div class="card p-4">
                    <div class="card-body">
                        <h2 class="card-title mb-4">Role</h2>
                        
                        <form id="roleForm">
                            <div class="mb-3">
                                <label for="name" class="form-label">name</label>
                                <input type="text" class="form-control" id="name"  name="name" required >
                            </div>

                            <div class="mb-4">
                                <label for="displayName" class="form-label">display name</label>
                                <input 
                                    type="text" class="form-control"  id="displayName" name="displayName" required >
                            </div>

                            <button type="submit" class="btn btn-primary w-100">
                                Save Role
                            </button>
                        </form>

물론, 이벤트 리스너가 javascript 로 되어 있는데, 이를 레이저 코드로 바꾸는 수고를 들여야 하지만, 이거라도 감지덕지입니다.

html css 해보신 분들은 아시겠지만, 이것저것 맞추고 하는데 꽤 많은 공수가 들어갑니다. 이는 앱의 로직과 하등 상관도 없는 것들로 정말 시간이 아깝다고 느낀 적이 많습니다.

위 작업하는데 소비된 크레딧이 200원 쯤 되더군요. 앞으로 더 싸질지도.

우려되는 점은, 나조차도 이걸 사용하는데, 이 기술로 밥먹고 살던 사람들은 어떻게 될지입니다.

프론트 기술만 주구장창 가르치는 학원, 부트캠프, 대학들은?

뿐만 아니라, 깃허브 코파일럿이 C# 코드도 잘 짜주는데…

기술이 반갑기도 하고, 두렵기도 합니다.

5 Likes

시스템에서 잘못 걸러내서 글이 보류상태로 있었습니다. 바로 조치했습니다. :pray:

2 Likes

할줄 아는 입장에서는 나온 코드 검증해서 쓰면 되니까 엄청난 도구인데 어설프게 알거나 잘 모르는 사람이 사용하면
“이거 왜 이렇게 했어요?”
→ ”gpt가 그렇게 하라던데요?“

이런 경우가 생겨서…

코드에 대한 고민 없이 단순히 돌아는 간다 하는 코드가 양산될거같아서 전 주니어레벨에서는 권장하지 않는 편 입니다

5 Likes

여러분, 우리는 이미 AI를 적극적으로 사용해야 하는 시대에 와 있습니다. 저처럼 옛날 세대에게는 아직도 거부감이 있거나 감이 잘 오지 않을 수 있습니다. 그러나 Microsoft의 Copilot만 하더라도 정말 편리하고 유용합니다. 새로운 분야든 아는 분야든, 질문만 잘하면 유용한 답변을 얻을 수 있더군요.

이러한 유용함은 몇 년 사이에 더욱 가속화되어, 전문가 이상의 결과를 제공할 뿐만 아니라 더 뛰어난 성과를 가져올 것으로 보입니다. 기대도 되지만, 저 같은 옛날 세대에게는 위기가 아닐까 싶기도 합니다. ^^;

흐흐…

5 Likes

극공감입니다 ㅋㅋ

2 Likes

많은 사람들이 요즘 비슷하게 생각 하고 있는 것 같습니다. AI를 이용한 v0.dev, screenshot-to-code 같은 HTML/CSS 구조 만들어 주는 걸 손쉽게 해주는 걸 보면 AI가 많이 발전했다고 느낍니다. 그럼에도 AI가 해주지 못하는 것이 많고, 기술이 발전하면서 모든 히스토리를 AI가 알지 못하기에 빠지는 부분을 개선해야 하는 지식은 더 소중해질 것 같네요.

5 Likes

인상 깊은 내용이 들어 있네요. 70% 절벽.

Non-engineers using AI for coding find themselves hitting a frustrating wall. They can get 70% of the way there surprisingly quickly, but that final 30% becomes an exercise in diminishing returns.

1 Like

현실은 AI가 팀에 매우 열성적인 주니어 개발자를 두는 것과 같다는 것입니다. 코드를 빠르게 작성할 수 있지만 지속적인 감독과 수정이 필요합니다. 더 많이 알수록 더 잘 안내할 수 있습니다.

이것은 내가 "지식의 역설"이라고 부르는 것을 만들어낸다.

  • 시니어들은 AI를 사용하여 이미 알고 있는 일을 가속화합니다.
  • 주니어는 AI를 사용하여 무엇을 해야 하는지 배우려고 합니다.
  • 결과는 크게 다릅니다

저는 선임 엔지니어들이 AI를 사용하여 다음과 같은 작업을 수행하는 것을 보았습니다.

  • 이미 이해하고 있는 아이디어의 신속한 프로토타입 제작
  • 구체화할 수 있는 기본 구현을 생성합니다.
  • 알려진 문제에 대한 대체 접근 방식 탐색
  • 일상적인 코딩 작업 자동화

한편, 후배들은 종종 다음과 같습니다.

  • 부정확하거나 오래된 솔루션 수락
  • 중요한 보안 및 성능 고려 사항을 놓치다
  • AI 생성 코드를 디버깅하는 데 어려움
  • 고객이 완전히 이해하지 못하는 취약한 시스템 구축

덕분에 좋은 글 읽고 배웠습니다!

2 Likes