AI 임팩트: 내가 느낀 AI 임팩트 - 오래 걸리는 일들 (2/2)

AI 임팩트 : AI가 개발자 삶에 변화에서는 AI가 개발자들의 일하는 방식을 어떻게 바꿨고 앞으로 어떤 식으로 영향을 줄 것인가에 대해 말씀 드렸습니다.

이번에는 제가 작년 5월부터 ChatGPT를 사용하면서 실무에서 어떤 일에 사용했고, 왜 만족했는지에 대해 개별 사례들을 예시로 말씀드리겠습니다.


목차

오래 걸리는 일들

  1. 다국어 처리

  2. 코드 리팩토링 - 함수 분리, 공통 컴포넌트화, 네이밍

방향 찾기

  1. 사이드 프로젝트

  2. 신규 프로젝트 투입 시

  3. 리팩토링 방향 찾기

간단하지만 귀찮은 일

  1. 소소한 부탁

  2. 매일 하기 귀찮은 일들


오래 걸리는 일들 2


계속 해서 싫은 일을 이야기하게 되는 것 같습니다. 다른 사람이 작성한 엉망인 코드를 보는 일도 정말 싫은 일입니다. 정말 잘 짜인 코드를 볼 때는 코드에서 시처럼 리듬도 느껴지고, 특정 함수에서는 함축적인 의미를 담은 구절처럼 코드를 볼 때 아름답다고 느껴질 때가 있습니다. 반면에 그렇지 못한 코드를 분석하거나 수정할 때는 정말 괴롭습니다.

물론 이해는 합니다.


저는 이커머스 + 커뮤니티 기능을 가진 플랫폼을 개발하기 위해 입사했고, 전체 코드 파악하는데 꽤 어려움을 겪었습니다.

첫 번째는 코드가 분리가 안 되어 있던 점이었습니다.

한 파일 내에 작성된 코드가 2000줄이 넘는 파일들이 즐비했습니다. html, css, js 가 모두 하나의 jsp 파일 안에 포함되어 있고, 자주 보이는 컴포넌트들이 공통화가 안 되어 있다는 점이었습니다.

이걸 어디서부터 손을 봐야 할지 감도 못 찾고 있는 상황에서 ChatGPT를 알게 됩니다.


공통 컴포넌트화

위의 예시는 일반적으로 커머스에서 상품을 보여주는 섹션을 공통 컴포넌트화 했던 사례 입니다.

코드의 유사한 부분을 찾아서 공통 컴포넌트화해서 분리할 수 있도록 도움을 받았습니다. 이때 단순히 코드 블럭을 분리하는 것이 아니라 코드가 이전처럼 동작하기 위해서 필요한 파라미터까지 완벽하게 제공해줬습니다.

의도대로 동작을 했고 코드도 많이 줄 일 수 있었습니다. 중요한 점은 이 작업을 하기 위해서 제가 2000줄을 다 읽을 필요가 없었다는 점이었습니다. 제가 했으면 2000줄을 읽으면서 공통화가 필요한 부분을 찾아내고, 문제 없이 동작하도록 수정했어야 됐습니다.

GPT를 사용하며 빠르게 바꿔나갔고 그 과정에서 신경 썼던 부분은 코드가 잘 동작하고 예외사항이 없는지 확인하는 일 밖에 없었습니다.


함수 분리

함수를 잘 분리하는 것이 유지 보수성 높은 코드를 만드는 첫번째 단계라고 흔히들 말합니다.

함수를 잘 분리하기만 해도 함수의 역할이 분명해지고, 재활용할 수 있고 유닛 테스트가 쉬워집니다.

“하나의 함수는 하나의 역할만 담당한다.” 라는 부분을 잘 알고 있어도 잘 지켜지기가 어렵습니다.

GPT에게 리팩토링을 요청 했던 함수는 JQuery로 상품 검색 모달창에서 새로운 검색결과가 있을시 이전 검색기록을 숨기고 새로운 검색 결과를 결과 테이블에 보여주는 기능을 하는 함수였습니다.


하나의 함수에서 여러가지 역할을 하며 동적으로 상품 컴포넌트를 생성해서 보여주다보니 가독성도 떨어질뿐만 아니라 코드 내에서 비슷하게 진행되는 부분이 많았습니다.

이렇게 손쉽게 깔끔히 작성된 코드를 전달받았습니다. 이제서야 이 함수가 무슨 역할을 하고 왜 필요한지 알 수 있게 되었습니다. 이렇게 정리가 된 상태에서 추가 기능을 개발하기도 훨씬 수월했습니다.


함수명 , 변수명 네이밍 변경

일관된 룰을 가지고 앞서 소개했던 노력해도 프로젝트 막바지가 되어 원래 기획안이 두차례 세차례 기획이 바뀌다 보면 이전에 작성했던 코드들이 몇번의 추가 , 수정 , 삭제된 코드로 인해 원래 의도와 달리 불분명하게 작성되는 경우들이 생겨납니다.

예를 들면 기존 a 라는 정보를 보여주는 컨테이너에서 추가적으로 b라는 정보를 보여줘야 하는 상황입니다.

이럴 경우 네이밍을 기존에 a Container로 작성된 것을 a,b를 담은 컨테이너로 변경을 하거나 좀 더 포괄적인 네이밍으로 변경을 해야합니다. a 컨테이너에 ,b가 담기면 나중에 봤을때 이상하게 생각이 되기 때문입니다.

하지만 이 역시 갑자기 기획이 바뀌어서 바쁜 와중에 변수명, 함수명을 신경 쓰기도 정말 어렵습니다.

이런 상황에서도 GPT는 정말 많은 도움이 됩니다. 저는 새로운 프로젝트에서 어김없이 시간과 씨름하고 있었고 점점 변수명과 함수명 네이밍 작성하는데 지쳐가고 있었습니다. 더군다나 이번 프로젝트에서는 styled-component 라는 css 라이브러리를 사용했는데 새로운 화면을 구현할 때마다 새로운 컴포넌트들을 새롭게 만들어줘야 했는데 컴포넌트명 작성하는 것도 만만치 않았습니다.

아래는 GPT가 해준 변경 제안 입니다.

새로운 페이지를 생성할때 일부 코드들을 복붙하거나, 핵심 로직을 작성하면서 일단 변수명들을 나중에 다시 잘써야지 했던 부분들이 대부분 입니다.

이쯤 되니까 많은 정성을 써서 네이밍에 신경 써야 할까? 라는 생각을 하게 되었습니다. 저보다 훨씬 잘 할 수 있는 일은 GPT에게 맡기고 저는 더 신경써야될 비지니스 로직과 최적화하는 부분에 대해서 신경쓰는것이 훨씬 더 이득이라는 생각을 했습니다.




어떤 누가 코드를 작성하더라도 갑작스럽게 일이 추가되거나 기획이 변경되면 위에 4컷 만화처럼 “에라 모르겠다” 하는 순간이 오게 됩니다. 이때 GPT를 비롯한 AI 도구들은 가장 훌륭한 서포터가 되어 도움을 줍니다.”최소한 시간이 없어서 어쩔 수 없었다“ 라고 며 자기위안하는 느낌이 들지 않아서 정말 많은 도움이 되었습니다.

5
3개의 답글

👉 이 게시글도 읽어보세요

모집 중인 AI 스터디