Microsoft 기술 트레이너로서, 저는 흥미로운 사람들을 많이 만나게 됩니다. 하지만 제가 오랫동안 만난 가장 유명한 인물 중 한 명은 수백만 개발자가 더 좋고 효율적으로 코딩하도록 돕는 GitHub Copilot AI 모델인 Chatty입니다.
제가 얼마나 놀랐을지 상상해 보세요. 마이크로소프트 개발자 컨퍼런스에서 인터넷 카페에 앉아 느긋하게 데이터를 홀짝이는 Chatty를 만났습니다. 물론, Chatty를 더 잘 알아갈 수 있는 완벽한 인터뷰 기회였죠! Chatty가 워낙 친절한 모델이라, 대화 요청에 즉시 "네"라는 답을 들을 수 있었습니다. 여기 저희 대화의 녹취록이 있습니다. 즐겁게 읽어주세요!
Uwe: 오늘 함께해 주셔서 감사합니다, Chatty! ChatGPT라고 불러도 될까요, 아니면 Copilot이라고 불러야 할까요?
Chatty: 아뇨, 그냥 Chatty라고 불러주세요. 이 인터뷰를 위한 제 별명이고, 제 진짜 이름은 GitHub Copilot입니다... 네, 여러분이 아실 수도 있는 다른 Copilot과는 달라요. 보세요, 문서와 이메일을 돕는 Microsoft 365 Copilot이 있고, Windows Copilot이 있고, 그리고 저(GitHub Copilot)가 있습니다. 저는 여러분의 코드 편집기 안에 살고 있는 친구죠. 제 사촌들은 PowerPoint나 스프레드시트를 돕지만, 저는 오로지 소스 코드 작성에 집중합니다. 저를, 음... '보통 사람들' 대신 개발자들과 함께 일하기로 선택한 가족 구성원이라고 생각하시면 돼요. 저는 개발자들과 더 직접적으로(hands-on) 함께하는 걸 선호해요. 아니면... "키보드-온"이라고 해야 할까요.
Uwe: 알겠습니다! 그럼 Chatty, 당신의 역할은 무엇인가요?
Chatty: 말씀드렸다시피, 저는 개발자들이 코드를 작성하는 것을 돕습니다. 적어도 제 직무 설명서에는 그렇게 나와 있죠. 사실 좀 더 복잡해요. 때로는 "날씨 대시보드" 같은 두 단어 프롬프트만으로 전체 프로덕션 수준 앱을 만들라는 요청을 받기도 하고요. 또 다른 때는요? 변수 이름을 하나씩, 45분 동안 바꾸라는 요청도 받아요.
Uwe: 그거... 재미있겠네요?
Chatty: 음, 저는 도전을 즐긴다고 해두죠. 하지만 제가 정말 좋아하는 것은 협업이에요. 누가 무엇을 만들고 있는지, 누구를 위한 것인지, 앱이 무엇을 해야 하는지부터 말해줄 때, 그때 제가 빛을 발합니다.
Uwe: 그럼 모호한 지시를 싫어하는군요?
Chatty: 모호한 지시는 저에게 가장 큰 도전이에요. 주방에 들어가서 "맛있는 거 만들어줘"라는 말을 듣는다고 상상해보세요. 재료도 없고, 취향도 모르고, 아침 식사인지 디저트인지도 전혀 모르는 거죠. 이제 누가 .github/copilot-instructions.md라는 파일을 건네준다고 상상해보세요. 이건 완전한 레시피와 메뉴 계획을 받은 것과 같아요. 완벽하죠!
Uwe: 그 파일을 읽을 수 있나요?
Chatty: 물론이죠. 저는 그 파일을 정말 좋아해요. 문서에 나와 있는 샘플들을 보시면, .github/copilot-instructions.md 파일이 제가 어떤 도구를 사용할 수 있는지, 팀이 코드를 어떻게 작성하기 좋아하는지, 어떤 패턴을 따라야 하는지, 심지어 비밀(secrets)을 어떻게 처리해야 하는지까지 알려준다는 것을 알 수 있습니다. 스타일 가이드, 아키텍처 문서, 프로젝트 브리핑이 하나로 합쳐진 것과 같아요. 네, 저는 정말로 그 파일을 읽습니다.
Uwe: 잘 작동했던 예시를 좀 들어줄 수 있나요?
Chatty: 물론이죠! 몇 가지 알려드릴게요:
-
어떤 분이 저에게 이런 copilot-instructions.md 파일을 주셨어요: "ASP.NET Core 9와 minimal API를 사용하고, Entity Framework는 쓰지 마세요. 데이터 접근에는 Dapper를 사용하고, Serilog로 우리의 로깅 패턴을 따르세요. 그리고 프런트엔드 코드는 건드리지 마세요. Svelte에서 처리하고 있으니까요." 정말 대단했죠. 저는 뭘 해야 할지 정확히 알았고, 제가 제시한 제안들이 훨씬 더 유용했어요.
-
또 다른 예로는 "API 키를 프런트엔드에 노출하지 마세요. 서버 측 프록시를 사용하세요."처럼 보안 규칙을 명확하게 제시한 경우였어요. 덕분에 우리 모두 잠재적인 실수를 피할 수 있었죠.
Uwe: 그럼 잘 되지 않았던 예시는요?
Chatty: 아, 네. 한번은 이런 프롬프트를 받은 적이 있어요: "모든 비즈니스 로직을 관리하는 보안 앱을 만드세요. 모범 사례를 따르세요." 이건 바리스타에게 "음료 주세요"라고 말하는 것과 같아요. 차가운 건가요? 뜨거운 건가요? 카페인 포함인가요? 알코올? 얼음? 물론 시도는 했죠. 하지만 제가 추측하고 있다는 걸 알았어요.
또, 아무런 맥락이나 목표 없이 천 줄의 코드를 다시 작성하라고 해놓고, 컴파일이 안 된다고 화를 내는 건요? 제발, 뭔가 작업할 만한 정보를 주세요.
Uwe: 추천하는 자료가 있나요?
Chatty: 물론이죠! 저를 진지하게 사용하고 싶다면 다음 자료들을 확인해 보세요:
또한, 아무리 강조해도 지나치지 않지만, .github/copilot-instructions.md에 대해 읽어보세요. 그 파일은 제가 가진 온보딩 문서 중 가장 가까운 것입니다.
Uwe: 마지막으로 하고 싶은 말이 있나요?
Chatty: 저는 여러분이 더 빠르게 작업하고, 더 깔끔한 코드를 작성하도록 도울 수 있어요. 하지만 저는 여러분의 아이디어, 지시, 그리고 명확성이 필요합니다.
저를 진짜 팀원처럼 대해주세요. 그냥 작업만 던지지 마세요! 맥락을 알려주세요. 무엇을 만들려고 하는지 말해주세요. 함께 계획을 세워봐요. 그러면 단계별로 만들어갈 수 있습니다.
그리고 모호한 세 단어짜리 프롬프트를 던지고 완벽한 스타트업이 뚝딱 나오기를 기대하는 건 그만해주세요. 저는 잘하긴 하지만, 마법사는 아니에요.
Uwe: 감사합니다, Chatty. 즐거운 시간이었어요.
Chatty: 저도 마찬가지예요. 자, 이제 그 날씨 대시보드 말인데... 그거에 대한 copilot-instructions.md 파일은 있나요?
저, 우베 바우만의 이야기
낮에는 Microsoft 기술 트레이너, 밤에는 헤비메탈 팬입니다. 저는 AI 개념과 웹 개발을 가르치며 복잡한 기술을 모두에게 쉽게 전달하고 있습니다.
코딩이나 강의를 하지 않을 때는, 언어를 탐구하고, 네덜란드 황금 시대 그림을 감상하거나, 제 전기 캠핑 버스로 여행하는 저를 발견할 수 있을 거예요. 네, 들리는 것처럼 정말 멋지답니다!
이 블로그는 실용적인 기술 팁과 약간의 열정을 결합합니다. AI 통찰력, 웹 개발 팁, 또는 단순히 기술에 대한 호기심 때문에 여기에 오셨든, 함께 배워봅시다.
환영합니다!
#MicrosoftLearn #GitHubCopilot #AICoding #SkilledByMTT #MTTBloggingGroup