brunch

You can make anything
by writing

C.S.Lewis

by 야근요정 Mar 17. 2024

(2) GPT로 업무 자동화 하기

문과생도 코딩할 수 있는 시대

"GPT로 코딩 해봤어? 미쳤더라"


 GPT로 코딩을 시작해 보면, AI는 코딩하라고 만든 게 아닐까 싶을 정도로 너무 편리합니다. 아직 AI로 인해 "개발자의 시대는 끝났다!"라고 주장할 수준은 절대 아니지만, 프로그램 설치가 끝나면 주니어 개발자 수준의 코드를 매우 빠르게(중요) 완성하고 대량의 데이터를 처리하거나 반복적인 업무를 스스로 자동화할 수 있죠.


이번 게시물은 아래의 내용을 다룹니다.


매체별 일일 보고서(Daily Report) 자동화

메일 자동 발송

채널톡 인입 Segment 분류 및 라벨링

블로그 게시물 자동 좋아요

인스타그램 팔로워, 댓글 자동 관리

브랜드 Organic 후기 조회 및 업데이트 알림

주요 커뮤니티 브랜드 언급 내용 리스트업

홈페이지 유입 매체 / Segment별 성과 자동 취합

코인, 주식 자동 입찰 프로그램 제작




print("Hello, World")


 지금까지 대충 개발자는 세미콜론(;)을 잘못 넣으면 야근하는 종족 정도로 생각했습니다. 사실상 관심도 없고 무슨 일을 하는지도 모르는, 그냥 "이 버튼 옆으로 3px만 옮겨주세요"라는 매우 간단한(?) 요청에 거품을 무는 사람들 정도로 이해하고 있었어요.


 게다가, 마케팅이나 디자인은 비교적 진입 장벽이 낮은 직군입니다. 망고보드나 미리캔버스 같은 디자인 툴에서 템플릿 몇 개만 조금 손보면 "디자인.. 할만한데.?"라며 근거 없는 자신감이 스멀스멀 올라오기도 해요. 게다가 작업 과정과 결과물이 명확하고, 오더를 내리는 상급자 또한 마케팅이나 디자인에 대해 '어느 정도는 안다'라는 생각이 기저에 깔려 있기 때문에 각 부서 간 커뮤니케이션이 비교적 수월합니다.


놀랍게도, 개발자는 이런 코드를 "절대 수정하면 안 된다"라고 말한다.


 그러나 개발은 진입장벽이 매우 높은 직군입니다. 디자이너는 출근하면 포토샵을 켜고, 마케터는 네이버나 메타 광고관리자에 들어가는 건 알겠는데 개발자는 도통 뭘 하는지 모르는 경우도 많죠. 자기는 자바스크립트가 어쩌고 스택이 저쩌고 하는데 일반인인 우리는 똑같은 코딩인데 무슨 급을 저렇게 나누는지, 그들의 세계를 이해하기 어렵습니다.


 그래서 코딩이 워낙 어렵게 느껴지다 보니 우리는 어떠한 상황에 코딩이 필요한지 모르게 되었어요. 큰 마음먹고 온라인 강의를 결제하거나, 독학을 시작하지 않는 이상 코딩의 개념과 원리를 파악하는 일조차 버거울 때가 많습니다. 또한, 어차피 개념을 안다고 해도 개발자의 도움이 있어야 실행시킬 수 있으니 홀로 독학하는 것이 비효율적이라는 결론을 내리고 외면하는 일이 반복돼요.




내가 원하는 '결과물'이 명확하다면, 만들 수 있다!


 디자인 솔루션인 망고보드와 미리캔버스가 '가벼운 디자인이 필요한 기획자/마케터를 위한 툴'을 내세우듯이, Chat-GPT를 활용하여 가벼운 코딩을 쉽게 완성할 수 있습니다. 원하는 행동을 달성하기까지의 여정을 세부적으로 쪼개고, 각각의 단계마다 코드를 추가하는 형태로 진행한다면 실제 작동까지 Depth별로 적합한 코드를 작성해 줍니다.



단 두 줄의 명령어로 완성하는 코딩


 단 GPT로 코딩을 한다면, 내가 최종적으로 구현하고자 하는 결과물까지 도달하는 과정이 명확해야 합니다. 숙련된 개발자는 원하는 결과물 외에 목표를 달성하기 위해 다양한 방법과 더 나은 수단을 제시할 수 있지만, GPT는 오직 명령한 행동을 실행하기 위한 코드를 작성하기 때문이죠. 예를 들어, 코딩으로 회원가입 페이지에 SNS 간편 가입 기능을 넣고 싶다면, 아래와 같은 차이가 발생합니다.


개발자 : "회원가입 페이지에 SNS 간편 가입 기능을 넣어주세요."

GPT : "회원가입 페이지 로딩" -> "KAKAO 간편 가입 버튼 삽입" -> "버튼 클릭" -> "해당 SNS로 리다이렉트" -> ...




코딩 준비물 설치하기


 사실 마케터, 기획자 등 직군에서 직접 코딩을 해야 하는 상황이라면 정말 작은 규모의 스타트업이거나 개발팀과 전쟁(?) 중일 확률이 높을 것입니다. 그러나 조직 내에 개발자가 있고, 관계가 원만함에도 개발을 적극적으로 이용하지 않는 이유는 "어디다 쓰는지 몰라서"인 경우가 많아요.


 사실 대부분의 직군에서 HTML이나 CSS의 활용도가 낮은 것이 사실이지만, 데이터 분석을 위해 통계 모델을 구축하거나(이전 글 : GPT로 데이터 분석하는 방법) 대량의 데이터를 처리할 때, 혹은 Daily Report 등 매일 반복하는 업무가 있을 때 코딩을 활용하면 업무 생산성이 증가합니다.


 개인적으로는 GPT4를 이용한 코딩을 Daily Report 자동화와 Organic Contents 작성 알림 용도로 활용하고 있어요. 사용법이 워낙 쉬워서 구글 빅쿼리 & API를 연동하기 전에 나름 유용히 잘 사용하고 있는 편입니다. 만약 콘텐츠 마케터나 바이럴 광고 대행사에 재직 중이라면, 블로그와 인스타그램 팔로워 관리에도 유용하게 사용할 수 있을 거예요.


 데이터를 처리하는 과정은 각 프로젝트의 목표와 기업의 상황에 따라 다르므로, 대부분의 직군에서 공통적으로 활용할 수 있는 웹 크롤링과 자동화 만드는 방법을 집중적으로 소개하려 합니다.


마케터의 코딩 준비물 3종 세트. 파이썬은 보통 아나콘다를 설치할 때, 함께 설치된다.


1. 아나콘다 설치하기

 아나콘다는 코드를 작성하고 실행하기 위해 필요한 네비게이터(패키지)라고 생각하면 됩니다. 아나콘다에는 CMD, 주피터 랩, 주피터 노트북 등 코딩을 위해 필요한 다양한 패키지가 포함되어 있습니다. 아나콘다는 보통 비전공자가 활용하기 어려운 부가기능까지 모두 포함된 개발 환경이기 때문에 용량이 매우 크죠. 때문에 미니콘다, VS code 등의 프로그램을 사용하는 경우도 많지만, 우선 가장 기본이 되는 아나콘다로 시작합니다.


아나콘다 다운로드

https://www.anaconda.com/download


 아나콘다 공식 홈페이지에 접속해서 다운로드 버튼을 누르면 설치 파일을 실행할 수 있는데, 설치 과정에서 대부분 'Next'만 누르면 되지만, 주의할 화면은 크게 세 가지입니다.


(1) 설치 폴더 경로에 한글이 포함되면 안 됩니다. 다운로드 경로는 C드라이브의 개인 폴더인데, 한글이 포함된 폴더명이 있을 경우, 반드시 영어로 바꾸거나 새 폴더를 생성하여 설치해야 해요.


(2) 설치 중 체크박스가 나오면 'Register Anaconda3 as my default Python'만 체크하고 Install을 클릭합니다. 아나콘다를 PATH 환경에 등록할지, 아나콘다를 기본 Python으로 등록할지의 여부라는데.. 개발자가 아니라서 무슨 내용인지는 모르겠습니다. Anaconda3 as my default Python 항목은 파이썬을 함께 설치해 주는 체크박스인 것 같아요.


(3) Launch Anaconda Navigator를 체크하고 완료합니다. 이 화면은 매 버전마다 바뀌는 것 같은데, 밑의 체크박스는 처음 보는 항목이라서 건너뛰었습니다.


아나콘다 실행 방법

 설치 완료 후, 시작창에 'anaconda'라고 입력하면 Anaconda Navigator가 나옵니다. 앞으로 코딩을 할 때 이 네비게이터를 통해 주피터 노트북을 실행하거나, 시작창에 'jupyter Notebook'을 입력해서 주피터 노트북을 실행하면 돼요.


아나콘다 네비게이터 인터페이스

 아나콘다 네비게이터를 실행하면 다음과 같은 창이 나오는데, 우리가 활용할 항목은 CMD.exe Prompt와 Notebook 뿐입니다. CMD는 파이썬의 버전을 변경하거나, 셀레니움을 설치할 때, 혹은 추후 다른 개발언어를 추가할 때 활용하고, Notebook은 실제로 코드를 작성하고 실행하는 역할을 합니다.


주피터 노트북에 접속해서 File - Notebook을 실행하면, 나도 이제 주니어 개발자!


 개인적으로 Notebook은 UI가 마음에 들지 않아서 그냥 Jupyter Lab을 사용하고 있는데 딱히 불편한 점은 없습니다. 아는 개발자한테 물어보니 주피터랩은 베타 버전을 테스트하는 환경이라는데.. 무슨 말인지 하나도 이해하지 못했고, 개발자와 커뮤니케이션 하는게 이렇게나 어려운 일임을 다시 한번 느끼고 말았어요.


2. 셀레니움 설치하기

 셀레니움은 파이썬으로 웹 크롤링과 특정 elements를 작동시키는 라이브러리입니다. 개발자가 아닌 이상에야 그냥 "아~ 자동화하려면 필요한 거구나~"라고 생각하는 정도면 충분합니다. 파이썬은 위에서 아나콘다를 설치하며 이미 설치가 완료된 상태이므로, 셀레니움을 아나콘다에 집어넣어야(?) 하는데, 설치 방법도 너무 쉬워요.


이 상태로 엔터만 누르면 된다.

 파일을 따로 다운로드할 필요 없이, 아나콘다 네비게이터의 CMD.exe Prompt를 켜고서 pip install selenium  입력하고 엔터를 누르면 2~3분 뒤에 설치가 끝납니다. 설치한 아나콘다에 내장되어 있는 CMD가 온라인 라이브러리를 조회하여, 주어진 명령어와 맞는 라이브러리를 설치하는 과정이니 번거롭게 따로 설치하거나 exe 파일을 다운로드할 필요가 없어요.


  이러한 CMD 인스톨 방식은 추후 Stable Diffusion 같은 생성형 AI에서도 동일하게 사용합니다.


3. 크롬 드라이버 설치하기

 정확한 이유는 모르겠지만, 파이썬을 활용한 웹 자동화는 대부분 크롬 웹브라우저로 작동합니다. 다만 코드를 집어넣으면 현재 설치된 크롬이 알아서 뚝딱 실행하는 건 아니고, '크롬 웹 드라이버'라는 중간 역할이 필요해요. 파이썬으로 실행한 코드를 크롬에서 구동하기 위한 파일입니다.


설치된 크롬 버전 확인하기

 웹 드라이버를 설치하기 전에, 현재 크롬 버전을 먼저 확인해야 합니다. 크롬 브라우저를 실행한 뒤, 우측 상단의 ···을 누르고, '설정 > Chrome 정보'에 들어가면 현재 크롬 버전을 확인할 수 있어요. 만약 최신 버전이 아니라면 업데이트도 함께 진행하는 것을 권장합니다.


https://googlechromelabs.github.io/chrome-for-testing/


 크롬 버전을 확인했다면, 위 사이트에서 현재 크롬 버전과 맞는 드라이버 파일을 다운로드하면 됩니다. 내 크롬 브라우저 버전은 122.0.6261.129 이므로, 이와 비슷한 122.0.6261.12버전의 win64 드라이버를 다운로드하면 돼요. 버전이 완전히 동일하지 않더라도 비슷한 최신 버전이라면 정상 작동한다. 해당 주소를 복사해서 주소창에 붙여 넣으면 자동으로 파일이 다운로드 됩니다.


 이후 다운로드 된 드라이버의 압축을 풀고 아까 아나콘다 3을 설치했던 경로로 다시 들어가, anaconda3 폴더에 압축을 해제한 chromedriver 파일을 집어넣으면 됩니다. 사실 어느 경로에 넣어도 크게 상관은 없으니, 원하는 위치에 따로 넣어도 돼요. 이렇게 웹드라이버까지 설치하면 코딩을 위한 모든 준비가 끝납니다.




GPT로 코딩하기

 지금까지 코딩 환경이 정상적으로 설치되었는지 확인하기 위해 네이버에 접속해 볼까요? 프로그램 설치는 사실상 "네이버가 잘 켜지는가"로 검증할 수 있습니다. Chat GPT에 접속한 뒤, 아래와 같은 프롬프트를 입력합니다. 프롬프트는 개발 언어(파이썬)와 라이브러리(셀레니움), 그리고 실행할 액션(크롬으로 네이버 접속)을 설정합니다. 기타 크롬드라이버와 같이 동작을 수행하기 위해 필요한 리소스의 경로도 함께 알려줍시다.


파이썬에서 셀레니움을 활용해, 크롬으로 'https://naver.com' 페이지에 접속하려 한다.
크롬드라이버의 경로는 C:\Users\jysk5\anaconda3 이다. 코드를 작성하라.


 위 프롬프트 중, 크롬드라이버의 경로는 아까 압축 해제한 chromedriver 파일 위치를 그대로 붙여 넣으면 됩니다. GPT는 현재 아나콘다와 파이썬, 셀레니움, 크롬드라이버를 정확하게 설치하였는지 인지하지 못했으므로 아래와 같이 제로 베이스부터 어드바이스를 시작합니다.


친절하게 셀레니움 설치 명령어까지 알려준다.


 GPT가 작성해 준 코드 우측 상단의 Copy code를 클릭한 후 주피터 노트북에 그대로 붙여 넣고 [ Ctrl + Enter ]를 누르거나, 입력한 코드 바로 위에 있는 재생 모양 버튼을 누르면 코드가 실행됩니다. 그런데 어라? 오류라니..?


코드가 실행되지 않는다!


 코딩은 원래 "짜는 게 10, 고치는 게 90"이라고 했습니다. 에러는 디자인을 하기 위해 포토샵을 더블 클릭하는 것처럼, 너무나 자연스러운 현상이니 걱정할 필요 없어요. 오히려 개발자의 "이게 왜 되지..?"라는 밈처럼 한 번에 작동하는 경우를 의심하는 게 훨씬 생산적인 활동입니다. 에러가 발생하면 고치면 돼요. 쉽습니다.


근데 저는 왜 에러가 난 지 모르겠는데요..

 왜 에러가 났는지 파악하고, 고쳐서 코드를 정상 작동 시키는 건 개발자의 영역입니다. 우리는 그러한 능력도, 리소스도 없기 때문에 GPT에게 수정을 요청하면 돼요. 에러가 발생하면 주피터 노트북에 표기된 붉은색 영역(에러 영역)을 전부 다 복사해서 GPT에 고스란히 붙여 넣어주면 됩니다. 그러면 GPT는 스스로 어떤 에러가 발생했는지 파악하고, 수정된 코드를 다시 출력해줘요.


에러 영역을 복붙 하면, GPT가 알아서 수정해 준다.


 GPT가 수정한 코드를 고스란히 Copy code 해서 주피터 노트북의 기존 코드를 지우고, 새로 붙여 넣습니다. 만약 아래처럼 새 크롬 창에서 네이버가 실행되며 'Chrome이 자동화된 테스트 소프트웨어에 의해 제어되고 있습니다.'라는 문구가 출력된다면 이제 정말 코딩을 위한 준비가 모두 끝난거예요. 만약 에러 문구를 GPT에 붙여 넣어도 계속 에러가 난다면, 에러가 안 뜰 때까지 계속 에러 문구를 붙여 넣으면 됩니다. 실제로 코드가 계속 작동이 안 돼서 에러 문구만 12번 정도 붙여 넣었던 적도 있어요.


네이버가 실행되면, 본격적인 코딩을 시작한다.




AI를 활용한 코딩은 한 단계씩, 순서대로 추가한다.


 개발자들이 머리를 쥐어뜯으며 "이게 왜 되지..?"와 "이게 왜 안되지..?"를 반복하는 밈처럼, 코딩은 코드가 길수록, 그리고 동시에 여러 가지의 행동을 수행할수록 에러가 발생할 확률이 커집니다. 심지어 예전에 잘 돌아가던 코드가 새로 추가한 코드로 인해 버그를 발생시키는 경우도 수두룩해요.


 GPT와 함께하는 코딩은 최종적으로 행하고자 하는 액션을 모든 단계별로 쪼개어, 기존에 만들어진 코드에 추가하는 형태로 하나씩 늘려가야 합니다. GPT에게 명령을 내릴 때는 크롬을 실행한 채, F12를 눌러 개발자도구를 실행하고 원하는 Elements 요소를 복사하여 정확한 위치와 액션을 알려주는 형태로 진행합시다.


 예를 들어 네이버에 'GPT'라고 검색하고 싶다면, 상대에게 "네이버에 GPT 검색해 줘"라고 말하면 되지만 코딩은 아래와 같은 순서를 거쳐서 실행해야 합니다. GPT에게 '어떠한 영역에서, 어떠한 박스에 뭐라고 입력해야 할지' 명확하게 알려주기 위해서죠.


① F12를 눌러, 개발자 도구를 연다.

② 개발자도구 좌측 상단의 화살표 모양(1)을 눌러, 검사 기능을 활성화한다.

③ 검색할 검색창(2)에 마우스를 올리고, 목표로 하는 영역이 맞다면 클릭한다.

④ 선택한 요소 좌측의 ···을 눌러 Copy를 선택한다.

⑤ Copy element를 선택해 해당 영역을 복사한다.


 여기까지 영역을 확정했다면, 다시 GPT에게 돌아가서 아까 작성했던 코드에 원하는 행동을 추가합니다. 위 예시처럼 'GPT'를 검색하고 싶다면 아래와 같이 프롬프트를 작성해요.


네이버의 검색창에 'GPT'라는 텍스트를 입력한 후, 엔터를 눌러 검색하는 코드를 추가한다.
검색창의 element 요소는 아래와 같다.

<input id="query" name="query" type="search" title="검색어를 입력해 주세요." placeholder="검색어를 입력해 주세요." maxlength="255" autocomplete="off" class="search_input" data-atcmp-element="">


추가 프롬프트에서 중요한 내용은 크게 세 가지입니다.

명확한 명령 : 네이버의 검색창에 텍스트를 입력하고, 엔터를 눌러 검색

기존 코드 연결 : "코드를 추가한다", 혹은 "기존의 코드에 추가한다"라는 프롬프트

동작 element : 개발자 도구에서 복사한 문구를 그대로 입력

 만약 원하는 동작이 수행되지 않거나 에러가 발생하면 또다시 GPT에게 물어보면 됩니다.



마치며

 전반적으로 비전공자가 코딩을 하면 어떠한 일을 할 수 있는지자동화 작업에 필요한 준비물(아나콘다, 파이썬, 셀레니움, 크롬드라이버), 그리고 GPT를 통해 코드를 작성하는 방법을 다뤘습니다. 사실 코딩의 확장성은 정말 무궁무진해서 얼마든지 다른 용도로 작성할 수 있지만.. 아직 현재 재직 중인 회사에서 반복작업을 자동화하여, 하루 1시간 걸리던 일을 3분으로 줄여버린 것 외에 획기적인 방법은 찾지 못했어요.


 총 2개의 회차를 통해 GPT로 데이터를 분석하는 방법과 코딩하는 방법을 알아보았으니, 다음 회차부터는 미드저니와 스테이블 디퓨전 등 생성형 AI를 활용하는 업무 방법에 대해 소개해보겠습니다.

매거진의 이전글 (1) GPT로 데이터 분석하기
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari