구글 출신 부사수 채용하는 법

"AI가 짜준 코드는 어차피 다시 다 고쳐야 해서 더 귀찮던데요?"
주변 시니어 개발자들에게 흔히 듣는 이야기입니다. 반은 맞고 반은 틀린 이야기입니다. 만약 당신이 AI를 '스택오버플로우(StackOverflow) 검색기' 정도로만 쓰고 있다면, 그 말은 사실입니다. 검색 결과는 늘 검증이 필요하니까요.
하지만 AI를 '내 옆자리에 앉은 똑똑하지만 경험 부족한 부사수'라고 생각하면 이야기가 달라집니다. 부사수에게 일을 시킬 때 "이거 짜와"라고 한 마디만 던지는 사수는 없습니다. "이 모듈은 결제 시스템의 핵심이니 안정성이 최우선이고, 레거시 시스템과 호환되어야 해"라고 맥락(Context)을 줍니다.
AI와의 협업도 똑같습니다. AI의 지능은 당신이 제공하는 페르소나(Persona)와 맥락에 비례합니다.
오늘은 개발 생산성을 10배 높이는 첫 번째 단계, AI에게 제대로 된 '역할'을 부여하는 프롬프트 엔지니어링 기술을 소개합니다.
1. '코드 자판기'가 아니라 '전문가'로 빙의시켜라
LLM(거대언어모델)은 기본적으로 확률에 기반해 "그럴싸한 다음 단어"를 예측하는 기계입니다. 따라서 질문이 평범하면 답변도 인터넷에 널려 있는 '평범한(Average) 수준'으로 수렴합니다.
우리가 원하는 건 '돌아가기만 하는 코드'가 아니라, '유지보수하기 좋은 우아한 코드'입니다. 이를 위해선 AI에게 구체적인 직책과 성격을 부여해야 합니다.
❌ Bad Prompt: 평범한 질문
"파이썬으로 리스트에서 중복 제거하는 코드 짜줘."
이 경우 AI는 가장 흔한 set()을 이용한 방법을 알려줄 겁니다. 기능적으로는 맞지만, 만약 '순서가 유지되어야 한다'는 요구사항이 있었다면 낭패를 봅니다.
✅ Good Prompt: 페르소나 부여
Role: 너는 Python Core Developer 출신의 백엔드 엔지니어다. 성능 최적화와 메모리 효율성을 중요하게 생각한다.
이렇게 역할을 부여하면 AI는 단순한 list(set(data)) 대신, dict.fromkeys()를 사용하거나 Generator를 활용한 메모리 효율적인 코드를 제안하며, 그 이유를 시니어 개발자처럼 설명하기 시작합니다.
2. 모호함을 없애는 '구조화된 프롬프트'
개발자라면 커밋 메시지나 PR(Pull Request) 템플릿을 작성해 본 경험이 있을 겁니다. AI에게 명령을 내릴 때도 템플릿을 사용하면 퀄리티가 비약적으로 상승합니다. 저는 주로 RTF(Role-Task-Format) 프레임워크를 변형해 사용합니다.
📝 개발자를 위한 프롬프트 템플릿
# Role (역할)
- 너는 [기술 스택] 전문가이자 [직책]이다.
- [특정 철학, 예: 클린 코드, 함수형 프로그래밍]을 선호한다.
# Context (맥락)
- 현재 프로젝트는 [프로젝트 설명]이다.
- 내가 해결하려는 문제는 [문제 상황]이다.
# Task (작업)
- [구체적인 지시 사항 1]
- [구체적인 지시 사항 2]
# Constraints (제약 조건)
- 외부 라이브러리는 사용하지 말 것.
- 변수명은 스네이크 케이스(snake_case)를 따를 것.
- 결과물에는 반드시 예외 처리(Try-Catch)가 포함되어야 함.
# Output Format (출력 형식)
- 코드 블록 위주로 작성하고, 설명은 주석으로 달아줄 것.이 템플릿을 스니펫(Snippet) 툴에 저장해 두고, 빈칸만 채워서 사용해 보세요. AI가 "아, 이 사람은 대충 대답하면 안 되겠구나"라고 인식하는 듯한 느낌을 받으실 겁니다.
3. 실전 예제: 주니어 AI를 시니어 AI로 진화시키기
실제 레거시 코드를 리팩토링하는 상황을 가정해 봅시다.
상황: 복잡한 if-else가 난무하는 결제 로직 리팩토링
1단계: 역할 부여
"너는 객체지향 설계 패턴(Design Pattern)에 통달한 시니어 자바 개발자야. 이 코드를 유지보수하기 쉽게 고치고 싶어."
2단계: 명확한 기준 제시 (Criticize)
단순히 "고쳐줘"가 아니라, "비판해줘"라고 요청하는 것이 핵심입니다.
"아래 코드를 리뷰해 줘. 특히 OCP(개방-폐쇄 원칙) 위반 사례와 가독성 측면에서 신랄하게 비판(Criticize)하고, 이를 전략 패턴(Strategy Pattern)을 사용해 리팩토링한 코드를 보여줘."
이렇게 요청하면 AI는 먼저 기존 코드의 문제점을 조목조목 지적한 뒤(코드 리뷰), 우리가 원하는 디자인 패턴이 적용된 깔끔한 코드를 뱉어냅니다. 마치 사수가 코드 리뷰를 해주는 것과 같은 효과를 얻을 수 있습니다.
4. 마치며: 프롬프트는 '스펙 명세서'다
개발에서 "개떡같이 말하면 찰떡같이 알아듣는다"는 말은 통하지 않습니다. AI와의 협업도 마찬가지입니다. 여러분이 AI에게 입력하는 프롬프트는 곧 '요구사항 명세서(Spec)'입니다.
명세서가 부실하면 결과물도 부실할 수밖에 없습니다. 오늘부터 AI를 대할 때 검색창이 아니라 '새로 채용한 똑똑한 외국인 부사수'라고 상상해 보세요. 영어를 잘하고 지식은 방대하지만, 맥락을 모르는 그 친구에게 여러분은 어떻게 업무를 지시하시겠습니까?
그 지시의 디테일이 곧 여러분의 퇴근 시간을 앞당겨 줄 것입니다.
[Next Step]
다음 2부에서는 이렇게 페르소나를 입힌 AI와 함께 ‘생각의 사슬’ 기법을 활용하여, 단순 코딩이 아닌 복잡한 비즈니스 로직을 설계하고 구현하는 과정을 다룹니다. AI와 '티키타카'하며 설계를 깎아 나가는 구체적인 예제를 기대해 주세요.