윈폼만 조금 만지작거리다가 UI를 사용자 요구에 맞춰서 좀 더 유연성 있게 대응하고 싶어서 WPF를 튜토리얼 따라가면서 배우고 있습니다.
그러다가 문득 WPF에서 UI 이벤트와 관련된 테스트는 어떻게 작성하는지 궁금해서 ChatGPT에게 물어봤습니다.
아래와 같은 코드를 던져 주더라구요!
[TestMethod]
public void TestButtonChangesLabelContent()
{
// Create an instance of your WPF window:
MainWindow window = new MainWindow();
// Find the button and label in the window:
Button button = (Button)window.FindName("MyButton");
Label label = (Label)window.FindName("MyLabel");
// Simulate a button click:
button.RaiseEvent(new RoutedEventArgs(Button.ClickEvent, button));
// Check that the label's content has been updated:
Assert.AreEqual("Button clicked!", label.Content);
}
어? 그런데 실행이 안 됩니다. 다음과 같은 오류가 발생했습니다.
System.InvalidOperationException: 많은 UI 구성 요소에서 호출 스레드가 필요하므로 해당 스레드는 STA여야 합니다.
그래서 또 물어봤죠! 그랬더니 STA Thread에서 실행시켜야 한다는군요. 이때 윈폼에서 보던 [STAThread] 태그가 무엇인지 알게됐죠. 다음은 ChatGPT가 던져준 코드입니다.
Thread staThread = new Thread(() =>
{
// your code...
});
staThread.SetApartmentState(ApartmentState.STA);
staThread.Start();
와우… 바로 문제가 해결됐습니다. 물론 저 위의 대답을 얻기까지 조금은 돌아가긴 했지만, 저는 개인적으로 다음과 같은 생각을 하게 됐습니다.
개인 학습에 있어서 ChatGPT를 적극적으로 활용하면 공부할 때 막히는 게 있을 때 원활하게 해결할 수 있겠구나.
원래는 맨날 SO 접속해서 영어로 힘겹게 질문하고 나면, 중복이야! 제대로 질문해! 이런 말을 듣기 일쑤였는데요 ㅠㅜ
올바른 방식으로만 질문한다면, 보다 빠르게 효율적으로 답을 얻을 수 있어서 행복하네요.
무료 버전 이용하고 있는데도 만족스럽습니다. 나중에 무료가 사라진다고 하더라도 월에 3만 원 정도라도 지불할 의향이 생길 거 같네요 ㅎㅎ
거기다가 영어로 질문하면 더 정확하게 답변을 받으니까 영어 공부하는 동기도 부여해줘서 베스트!
다들 어떻게들 사용하고 계신가요? 저는 올해 가을부터 회사에서 일을 시작할 거 같은데 실무에서 뛰고 있는 여러분들의 생각이 궁금합니다!
개인적으로 ChatGPT가 업무의 효율성을 올려주는 면에서는 굉장한 강점이 있다고 생각합니다. 그런데 잘 생각해보면 분명한 한계점도 있는데요, 결국 ChatGPT가 원하는 답을 알려줄 수 있는 근간은 기존에 나와있는 정보를 학습했기 때문에 가능한 것입니다.
만약 들어오는 학습 데이터 자체가 잘못되있거나 편향되어있다면, GIGO (Garbage-In Garbage-Out) 문제를 만나게 됩니다. ChatGPT 스스로가 자정 능력이 있다기 보다, 다양한 교정과 보정 메커니즘을 내장하고 있고, ChatGPT를 관리하는 OpenAI 엔지니어들의 노력이 뒷받침된 결과에 가까운 것이라고 생각합니다.
그래서 어느정도 참고하기 좋은 시작점이 될 수 있고, Kickstart에는 유리할지 몰라도 말씀하신 "동기부여의 원천"으로 Generative AI의 출력물을 100% 신뢰하는 것은 큰 리스크를 동반한다고 생각합니다.
정리하면, 스스로의 공학 윤리에 입각해서 학습을 할 때 얼마나 적절하게 차용하고, 일할 때 얼마나 적절하게 활용할 것인지 신중하고 심각하게 고민을 한 뒤에 효용성을 확인하고 활용한다면 나쁘지 않을 것이라는 생각이 있습니다.
대중적인 유행의 파급력은 상당히 클 것 같습니다.
특히 죽어가는 개발 커뮤니티에 쐐기를 박지 않을까 우려 됩니다.
개발자 관점에서 질의하고 문제 해결 및 답을 찾는 과정에서 성장한다고 생각하는데
AI에 의존성이 높아지면 복잡한 문제의 벽을 넘기 힘들듯 합니다.
검색하고 스스로 판단하여 최적의 답을 찾는 것 보다 ChatGPT로 바로 물어 보는 게 편하긴 하겠죠
아직은 문제를 이해하고 답변하는 게 아니라 전 관망 중이네요(사실 쓸 일이 그닥 없습니다)