Chat-GPT를 "잘" 사용하는 개발자는?

김지원·2023년 4월 6일
0

개발자 역량 쌓기

목록 보기
2/4

🤔 이어서.. Case Study를 통해 Chat-GPT를 어떻게 잘 사용할 수 있을지 알아보자

📖 Case-Study: Levels.FYI를 어떻게 만들 수 있는가?

Alex Xu의 최근 case study 중 Levels.FYI의 구조에 대해 이야기한 걸 보자.

Levels.FYI는 소프트웨어 엔지니어의 급여와 회사 간 수준 차이를 문서화하는 웹 사이트 및 앱이다.

만약 non-technical 한 사람에게 이 앱을 만들라는 업무가 주어졌다면, Chat-GPT가 있더라도 이 앱을 만들어내지는 못할 것이다. WHY? 질문이 너무 광범위할 것이기 때문이다.

아마 "How do you build an app to show salary data?" 라는 질문을 던질 것이다.

💡 그렇다면 엔지니어들은 Chat-GPT를 어떻게 이용할 수 있을까?

엔지니어의 경우, 소프트웨어의 시스템 디자인을 이해하기 때문에 Chat-GPT를 통해 구현을 위한 세부 사항에 대한 도움을 얻을 수 있게 된다.

예를 들어, Levels.FYI의 심플한 버전 - 사람의 input으로부터 salary 데이터를 얻고, aggregate 하고, 기업 별 평균을 계산하는 버전- 을 만든다고 생각해보자.

엔지니어는 아래처럼 이 앱의 구조를 예상해볼 수 있다.

  1. salary 데이터를 디스플레이하기 위한 UI(Website)
  2. 엔지니어들이 자신의 급여와 기업 정보를 입력하기 위한 입력폼(InputForm)
  3. 입력으로 받은 데이터를 저장하기 위한 데이터베이스(Database)

이렇게 Levels.FYI 를 만들기 위해 위의 3가지가 필요하다는 것을 알기 때문에 이 앱을 만들기 위한 정답을 얻기 위해 Chat-GPT에게 구체적인 질문을 할 수 있다.

❓1. 질문: "What intake forms should I use if I want to programatically use its answers to populate a database?"

실제로 질문을 해보면 Chat-GPT의 첫 번째 제안은 Google Form이다. 따라서 Google Form을 적용해보도록 하자.

그 다음으로는 사용자들이 필요한 정보를 입력하고, 그 데이터를 저장하기 위한 백엔드 데이터베이스, 또 해당 UI를 보여주는 부분이 필요하다.

그렇다면, Chat-GPT에게 해당 API가지고 있는 어떤 기술을 사용해야 하는지 물어볼 수 있다.

❓2. 질문: What are no-code database I can connect to Google Forms that have API's to query for its data?

질문을 보면 구체적으로 "no-code" 데이터베이스라고 물어봤다. 이 부분이 정말 중요한데, 그 이유는 "more code equals more problems".(더 많은 코드는 더 많은 문제와도 같다.)

더 많이 코드를 작성할 수록 유지보수할 것이 더 많아지기 때문에, 저자의 첫 번째 goal은 최대한 적은 코드를 이용하여 business goal을 달성하는 것이라고 말한다.

여기서 엔지니어가 아닌 사람들이 실수할 수 있다.

👉🏻 engineering is not about coding. Engineering is about solving business problems in the simplest way possible.
엔지니어링은 코딩이 아니다. 엔지니어링은 비즈니스 문제를 가장 간단한 방법으로 해결하는 것이다.

그리고 코드는 그저 문제를 해결하기 위한 도구일 뿐이다.

엔지니어가 아닌 사람들이 Chat-GPT에게 코드에 대한 디테일을 물어보는 함정에 빠질 수 있다. 여기서 저자는 엔지니어링은 "no-code" promp를 지정하고, Google 스프레드시트를 백엔드로 사용하는 방법에 대한 답변을 얻고자하는 목적을 위한 수단이라고 이해한다고 말한다.

이제 마지막으로 Google Sheet API와 연결하기 위한 UI가 필요하니, 아래처럼 질문한다.

❓3. 질문: What UI should I use that's the fastest to connect Google Sheets API to?

Chat-GPT의 답변으로 아래처럼 나머지 부분을 만들어보자.

  • UI를 위해 Bubble 이라는 플랫폼(no-code platform)을 사용한다.
  • intake을 위해 Google Form을 사용한다.
  • Google Sheet를 백엔드로 사용한다.

그리고 나서는 Chat-GPT에게 구체적으로 어떻게 코드를 작성할 수 있는지 물어보고, 답변으로 준 코드를 복사 붙여넣기해서 앱을 빌드하면 된다.

신기한 점은 저자가 물어본 세 가지 질문으로 얻은 대답, 프론트엔드에 연결된 Google Sheets 와 Google Forms를 사용하는 방법이 바로 Level.FYI가 만들어진 방법이다.

Alex Xu가 말한 것처럼, Levels.FYI는 백엔드를 위한 Google Form과 Google Sheets만 사용하여 수백만명의 사용자를 보유하고 있는 앱이 되었다.

이처럼, 저자는 Chat-GPT에게 "적절한", "올바른" 질문을 함으로써 실제 Levels.FYI 가 만든 동일한 시스템을 만들어냈다. 이러한 질문이야말로 엔지니어가 아닌 사람들이 생객해낼 수 없는 질문이라고 할 수 있겠다.

Chat-GPT가 시스템을 위한 전반적인, 모든 디자인을 알려줄 수는 없지만, 저자가 한 것처럼 문제를 작은 단위로 분해하고, 그 작은 단계에 해당하는 문제의 해결을 위해 적절하게 Chat-GPT의 도움을 얻는다면, 그 작은 해결된 조각들을 합쳐서 하나의 큰 시스템을 만들어낼 수 있는 것이다.

이것이 바로 소프트웨어 엔지니링 - algorithm thinking - 이다.

그러니, 이제 걱정하지 말자!

우리, 개발자야말로 구글링의 전문가들이 아닌가!

그래서, 구글에 물어보는 것과 Chat-GPT에게 물어보는 것이 어떻게 다른가?

Chat-GPT is not a replacement for understanding software engineering.

이제부터라도 Chat-GPT를 두려워하지 말고, 더 효율적으로 일하기 위해 Chat-GPT를 어떻게 활용할 것인가 잘 고민해보도록 하자.

올바른 방식으로 Chat-GPT를 사용할 수 있다면, 개발을 위한 귀찮고 복잡한 부분은 AI에게 맡기고, 우리 개발자는 오로지 시스템 디자인에만 집중할 수 있게 될 것이다.

결과적으로, 엔지니어들의 생산선을 높일 것이고, 더 다양한 직업들을 만들어낼 것이다.

출처

  • "The Robots are Coming. Is Chat-GPT Replacing you as a software engineer?", From Medium
profile
Make your lives Extraordinary!

0개의 댓글