AI가 코드를 작성하게 하기 전에 신입 엔지니어가 이해해야 할 것: '작동한다'와 '올바르다'는 다르다
요약
AI가 코드를 작성해주더라도 '작동한다'는 것이 곧 '올바르다'는 의미는 아닙니다. 신입 엔지니어는 단순히 코드 구현을 넘어, 비즈니스 로직의 정확한 이해와 경계 조건(Edge Case) 검증 능력을 갖추어야 합니다. AI에게 명확한 목적과 테스트 케이스를 전달하는 것이 중요합니다.
핵심 포인트
- AI 코드는 작동해도 논리적으로 틀릴 수 있다.
- 프로그램은 '지시서'이므로, 의도를 명확히 해야 한다.
- 단순 구현보다 '누구의 어떤 어려움 해결'에 초점을 맞춰야 한다.
- 경계 조건(Edge Case)을 정의하고 테스트하는 습관이 중요하다.
'AI가 코드를 써준다면, 프로그래밍을 배울 필요가 없을 것 같은데?'
혹시 이런 생각을 해본 적이 없으신가요?
실제로 AI에게 부탁하면 단 몇 초 만에 프로그램을 만들어 줍니다.
하지만 여기에 신입 엔지니어가 알고 있어야 할 중요한 함정이 있습니다.
AI가 만든 프로그램은, 작동했다고 해서 반드시 올바른 것은 아닙니다.
어렵게 생각할 필요는 없습니다.
프로그램이란 간단히 말해 **'컴퓨터에 대한 지시서'**입니다.
예를 들어, 친구에게 '편의점에서 음료수를 사 와 줘'라고 부탁했다고 가정해 봅시다.
친구는 당황할 수 있습니다.
'뭘 사야 해?'
'몇 개?'
'얼마까지?'
그때 '150엔 이하의 차를 한 병 사 와 줘'라고 전달하면, 무엇을 해야 할지 알게 됩니다.
프로그램도 같습니다. 컴퓨터는 지시받은 것을 실행합니다. 하지만 당신의 진정한 목적을 자동으로 이해해 주지는 않습니다.
AI가 프로그램을 만들 때도, 우선 무엇을 실현하고 싶은지를 전달하는 것이 중요합니다.
예를 들어, 온라인 숍을 만든다고 가정해 봅시다.
매장의 규칙은 다음과 같습니다.
'상품 대금이 5,000엔 이상이면 무료 배송. 그 외는 배송비 500엔'
그래서 AI에게 배송비를 계산하는 프로그램을 만들게 했습니다.
AI가 만든 코드는 이렇습니다.
if price > 5000:
shipping = 0
else:
...
코드가 몰라도 괜찮습니다. 이것은 번역하면 다음 의미입니다.
- 상품 대금이 5,000엔을 초과하면, 배송비 0엔
- 그 외는, 배송비 500엔
언뜻 보면 문제가 없어 보이죠.
하지만 잠깐만요.
상품 대금이 정확히 5,000엔이라면 어떨까요?
이 프로그램에서는 배송비가 500엔이 되어 버립니다. 실제로는 무료여야 하는데 말이죠.
원인은 단 하나의 기호입니다.
price > 5000 # 5,000엔을 초과한 경우
price >= 5000 # 5,000엔 이상인 경우
>는 '보다 크다', >=는 '이상'이라는 의미입니다.
단 한 글자의 차이지만, 고객에게 잘못된 배송비를 청구할 가능성이 있습니다. 게다가 이 프로그램은 오류가 나지 않고 정상적으로 작동해 버립니다.
'프로그램이 작동했다'와 '고객의 바람대로 작동했다'는 완전히 다른 이야기입니다.
처음부터 어려운 기술을 배울 필요는 없습니다.
우선 다음 세 가지를 생각해 보세요.
이번 경우라면, '배송비를 자동 계산하여 고객에게 올바른 금액을 표시하기 위해서'입니다.
단순히 '배송비를 계산하는 프로그램을 만드는 것'이 목적이 아닙니다.
누구의, 어떤 어려움을 해결할 것인가.
이것을 알면 무엇을 만들어야 할지 보이게 됩니다.
이번 경우는 이렇죠.
| 상품 대금 | 올바른 배송비 |
|---|---|
| 4,999엔 | 500엔 |
| ... |
이것을 미리 정리하는 것만으로도 AI에게 정확하게 부탁하기 쉬워집니다.
실제 업무에서는 '할인 전과 할인 후 중 어느 금액으로 판단할지?'와 같은 확인 과정도 필요할 수 있습니다.
모르는 것을 찾아내고, 확인하는 것. 이것 또한 중요한 엔지니어의 일입니다.
AI가 코드를 써주면 실제로 시험해 봅시다.
4,999엔이라면?
5,000엔이라면?
5,001엔이라면?
이렇게 기대한 결과가 나오는지 확인하는 것을 '테스트'라고 부릅니다. 특히 5,000엔과 같은 조건의 경계는 실수가 발생하기 쉬운 부분입니다.
모든 것을 한 번에 이해할 필요는 없습니다.
'무엇을 확인해야 하는지'를 조금씩 익히는 것이 성장의 첫걸음입니다.
예를 들어, 신입 엔지니어 두 명이 있다고 합시다.
A 씨는 AI에게 이렇게 부탁했습니다.
'배송비를 계산하는 코드를 써줘'
B 씨는 이렇게 부탁했습니다.
'5,000엔 이상은 무료 배송, 5,000엔 미만은 500엔으로 해주세요. 4,999엔, 5,000엔, 5,001엔의 경우에도 올바르게 작동하는지 확인해 주세요.'
같은 AI라도 전달한 정보가 다릅니다. B 씨가 필요한 조건이나 확인 방법을 구체적으로 전달했습니다.
물론 정중하게 부탁해도 AI가 틀릴 때가 있습니다. 그래서 최종적인 확인은 필요합니다.
여기서 중요한 것은 AI에게 질문하는 능력만이 아닙니다.
무엇을 만들고 싶은지 생각하고, 필요한 조건을 정리하며, 결과를 확인할 수 있는 힘입니다.
이것은 프로그래밍 경험이 없어도 오늘부터 연습할 수 있습니다.
실제로 ChatGPT 같은 AI를 열고 다음 문장을 입력해 보세요.
저는 프로그래밍 초보자입니다.
상품 대금이 5,000엔 이상이면 무료 배송이고, 5,000엔 미만이면 배송비 500엔이 되는 프로그램을 Python으로 만들어 주세요.
코드의 의미를 한 줄씩, 전문 용어를 사용하지 않고 설명해 주세요.
또한, 오류가 없는지 확인하기 위해 어떤 금액으로 시험해 보면 좋을지도 알려주세요.
그리고 AI의 설명에서 이해가 안 되는 단어가 있다면, 이렇게 물어보세요.
"그 단어를 초등학생도 알 수 있게 설명해 줘"
"왜 그 처리가 필요한 거야?"
"만약 이 부분을 바꾸면 어떻게 돼?"
이것을 반복해 보세요.
단순히 코드를 받는 존재였던 AI가 점차 당신의 학습을 돕는 존재로 변해갈 것입니다.
참고로, 실제 업무에서 AI를 사용할 때는 회사나 고객의 기밀 정보, 비밀번호 등을 허가 없이 입력하지 않도록 주의하는 것도 잊지 마세요.
AI는 앞으로도 더 편리해질 것입니다.
코드를 작성하고, 오류의 원인을 찾고, 모르는 단어를 설명하는 것까지 도와줄 수 있습니다.
그렇다고 해서 엔지니어가 생각할 필요가 없어지는 것은 아닙니다.
오히려 AI를 사용함으로써 많은 것을 할 수 있게 된 만큼, '무엇을 만들어야 하는지', '어떻게 하면 도움이 될 수 있는지'를 고민하는 것이 더욱 중요해집니다.
그리고 또 하나.
엔지니어의 일은 혼자서 완결되는 것만은 아닙니다.
고객의 이야기를 듣고, 동료와 상담하고, 모르는 것을 확인하며 함께 더 좋은 것을 만들어 나갑니다.
처음부터 모든 것을 알 필요는 없습니다.
모르면 물어보면 됩니다. 찾아보면 됩니다. 작게 시도해 보면 됩니다.
어제 할 수 없었던 것이 오늘 하나 가능하게 되는 것.
그 쌓임이 엔지니어로서의 자신감이 됩니다.
AI에게 코드를 작성하게 하는 것과, AI를 사용해서 좋은 시스템을 만드는 것은 다릅니다.
중요한 것은 단 3가지입니다.
무엇을 위해 만드는가. 어떤 상태가 정답인가. 정말로 올바르게 작동하고 있는가.
우선 이 세 가지를 의식해 보세요.
코드를 전부 외우지 못해도, 경험이 없어도, 엔지니어로서 생각하는 연습은 오늘부터 시작할 수 있습니다.
그리고 그 한 걸음이 미래의 자신을 바꿔나갈지도 모릅니다.
주식회사 에스프리포트에서는 IT의 힘으로 고객의 비즈니스를 지탱하고 가치를 창조하는 것을 중요하게 생각합니다.
AI 스터디회 'AI FUTURE SHIFT'나 기술 및 인간 역량을 배우는 기회를 통해 AI를 사용하는 능력과 스스로 생각하는 두 가지 능력을 모두 키우고 있습니다.
기술뿐만 아니라, 누군가에게 도움이 되는 엔지니어로.
태그: 초보자
프로그래밍 초보자
생성 AI
ChatGPT
신입 엔지니어
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기