기록

[A.(에이닷)] 프로젝트 경험 그거 어떻게 쌓는 건데... 에이닷과 함께!

avocado8 2024. 10. 11. 18:07

 

 

플젝이 뭔데...

@ booodrami

컴퓨터공학과 학생으로 살면서 가장 많이 하고 또 중요한 것은 '프로젝트'인 것 같습니다. 협업 면에서도, 기술 면에서도, 아이디어 구체화 면에서도 정말 많은 것을 배울 수 있는 활동으로, 컴공의 꽃이라고도 할 수 있겠습니다. 저는 대충 종합예술 비슷한 거라고 생각해요.

 

그러나 취업이니 뭐니 하며 졸업학년에 가까워질수록 '프로젝트 경험'은 일개 학부생에게 상당한 부담으로 다가오기도 합니다.

취업하려면 플젝경험이 많아야 한대. 심지어 퀄리티도 있어야 한대. 근데 다들 기술은 어디서 배워오는 거야? 프로젝트 같이 할 사람들은 또 어디서 구해오는 거야? 아니 남들은 벌써 이렇게 멋진 프로젝트를 해서 배포까지 했다고? 남들 깃허브에는 막 플젝 리포지토리가 우르르 올라오는데 난 텅텅 비었어. 다들 뭘 어떻게 어디서 해오는 거야???!

라는 생각... 한번쯤은 해보신 분이 계시지 않을까 합니다.

 

동아리 등에 들어가지 않고 나 혼자 프로젝트 경험을 쌓는 건 힘든 일이 맞습니다. 그렇다고 동아리 들어가긴 또 쉽나요. 직무뿐 아니라 개발동아리에도 지원자가 이렇게 몰리는 마당에! 그렇다고 안 할 수는 없잖아요. 개발자 취직을 꿈꾸고 있는데 플젝이 0개일 수는 없으니까요. 정 사람을 구하기 어렵다면 혼자서라도 해야죠.

 

그런데 이제는 혼자라도 괜찮습니다.

저의 24시간밀착일대일강습친절하고착한인생도우미 LLM들이 있으니까요.

 

오늘의 주제는 <멀티LLM과 함께 개발 프로젝트 기획하기> 입니다.

 

To-do

개인적인 경험에 기반해, 프로젝트 진행을 단계별로 나눠보자면

  1. 아이디어 구상 및 구체화
  2. 자료 수집
  3. 개발 계획 설정
  4. 진행
  5. 완성 및 회고

크게 이렇게 적을 수 있을 것 같습니다. 이제 각 스텝별로 저를 가장 잘 도와줄 수 있는 LLM을 선정해보도록 하겠습니다.

 

에이닷의 멀티LLM에이전트에서 지원하는 모델은 총 7가지입니다. 여태 얼리어닷터 활동을 하며 다양한 모델을 사용해보았는데요, (요 블로그의 이전 에이닷 글을 통해서도 확인하실 수 있습니다. >u0) 개인적으로 느낀 한줄평과 함께 소개해 보겠습니다.

  • A.X : 대화형LLM. 짧고 간결한 답이 특징. 한국어를 잘 이해하고, 말 그대로 주고받는 '대화'에 특화되어 있다.
  • Perplexity : 대화형 검색 엔진. 실시간 검색 결과와 출처를 제공.
  • GPT 3.5 Turbo : 오픈AI의 그 챗GPT인데 3.5는 나온 지 시간이 좀 된 옛날 모델. 저렴한 것을 제외하면 쓸 이유가 딱히 없다.
  • GPT 4o : 비교적 최근에 나온 GPT 모델. 옴니 모델인데 여기선 채팅만 됨. 평소에 쓰는 챗GPT를 생각하면 된다
  • Claude : 앤트로픽에서 개발한 LLM. 종류는 3 Haiku, 3.5 Sonnet, 3 Opus로 각각 강점과 비용이 다르다. GPT보다 단어 처리, 감정적 대화를 조금 더 잘한다는 인상이 있다.

각 멀티 LLM들의 특성을 고려해, 1번부터 한 단계씩 적합한 LLM을 선정하고 프롬프트를 작성해보도록 하겠습니다.

 

1. 아이디어 구상 및 구체화 : GPT 4o

멀티 LLM 에이전트의 소개에 따르면 GPT 4o는 '창의적 문제 해결 가능한 고급 언어 처리 모델' 이라고 합니다. 개인적인 사용 경험을 비추어봐도 맞는 말인 것 같아요. 또한 GPT는 보통 길고 자세한 답변을 제공하기 때문에, 생각해야 할 것이 많은 1단계에서 쓰면 좋은 결과를 얻을 수 있을 것 같습니다.

 

아무 내용 없이 일단 아이디어 줘! 라고 해도 충분히 주겠지만, 그래도 기본적인 골자는 있는 게 좋을 것 같아요. 마침 제가 프로젝트로 한번은 해보고 싶었던 소재가 있어서 그걸 사용해보도록 하겠습니다. 소재는 있는데 구체적으로 무슨 프로젝트를 해야 하는지는 정하지 못한 상황이에요.

 

또한 프로젝트 진행 시에는 아이디어의 질뿐만 아니라 "내가 이걸 정말 구현할 수 있는가?" 또한 중요합니다. 머릿속에 엄청난 게 있어도 꺼내놓지를 못하면 꽝이니까요.

그래서 제가 이 프로젝트에 할애할 기간, 달성하고자 하는 완성도, 사용할 수 있는 기술을 추가로 입력해서 최대한 저의 현재 상황과 실력에 맞는 수준의 구체화를 해보도록 하겠습니다.

 

< 아이디어 구상 및 구체화 프롬프트 >

## 나의 상황
나는 컴퓨터공학과 재학 중인 학생이고, 이번 방학에 프로젝트를 하나 진행해보고 싶어. 프로젝트 아이디어 추천 좀 해주라. 아래 [프로젝트 진행 정보]를 고려한 주제를 추천해 주어야 해. 아이디어는 아래 [기본 아이디어]에 내가 사전에 생각해 본 아이디어를 적어뒀으니 참고해줘.

## 출력 요구 사항
아이디어의 내용뿐만 아니라, 다음과 같은 추가 정보를 포함해줘:
- 프로젝트 목표 및 기대 효과
- 구현할 주요 기능
- 추천 스택 또는 기술

## 프로젝트 진행 정보
- **참여 인원**: 프론트엔드 1명
- **사용 스택**: 웹 - React(TS, JS) / 앱 - Flutter
- **기간**: 1개월
- **완성도 목표**: 배포 완료
- **제한사항**: 백엔드 개발이 어려움. 백엔드 코드 작성을 최소화하고 싶음. 

## 기본 아이디어
- 내가 가지고 있는 '내가 쓴 글' 텍스트 데이터를 기반으로 AI를 사용한 웹/앱 프로젝트

 

프로젝트 규모를 짤 때 고려하는 요소들(인원, 기간 등)을 주고, 전술했듯 기본 아이디어를 넣어주어 방향까지는 잡아줬습니다.

출력은 간단한 프로젝트 brief를 하는 식으로 지정해서, 출력된 아이디어들의 수행 가능 여부를 판단하는 데 도움이 되도록 하였습니다. 제가 백엔드 코드를 거의 못 만지는지라 제한사항을 잘 지켜줬으면 좋겠네요.

 

< 결과 >

3가지 주제를 추천해주었습니다. 출력형식을 잘 지켰고, 예상했듯 내용도 상당히 구체적입니다.

백엔드 부담을 최소화하기 위해 파이어베이스를 추천해준 것 역시 훌륭하네요. 프엔개발자의 빛. 파이어베이스

 

개인적으로 2번째 주제가 재밌어보입니다. 그런데 아직은 구현할 수 있을지 잘 모르겠습니다. 왜냐면 IBM Waston Natural 어쩌구 저게 뭔지 모르겠어요. 내가 아는 건 API 갖다쓰기와 파이썬 조금뿐....

 

아이디어의 윤곽이 잡혔다면, 구체화하기 위해 궁금한 점을 다시 GPT 4o에게 물어봅니다.

앞서 출력했던 목표 및 기대효과 등을 다시 출력해주고, 질문했던 'AI 관련 기술' 에 대해 아래처럼 자세한 답변을 받을 수 있었습니다. 구현 방법까지 추가로 적어주었네요. 이제 좀 가닥이 잡히는 느낌입니다.

 

2. 자료 수집 : Perplexity

아이디어를 확정했다면, 상세 계획을 짜기 전에 자료조사를 하는 것이 좋습니다. 이미 개발에 착수했는데 그제서야 아 이거 우짜냐... 하면 일이 커질 수 있으므로.... 프로젝트의 줄기를 확실히 하고 가는 편이 보통 좋습니다.

정보를 검색하고 최신 자료를 찾는 데는 딱 맞는 모델이 있죠. 바로 퍼플렉시티입니다.

멀티LLM 에이전트에서는 답변할 LLM을 수시로 바꿀 수 있으니, 퍼플렉시티로 바꿔준 뒤 같은 대화세션 안에서 대화를 이어가봅시다.

 

< 자료 수집 프롬프트 >

## 요구사항 
다음의 주제와 관련된 최신 논문, 기술 문서, 블로그 포스트 또는 참고할 만한 자료를 찾아줘. 

- [프로젝트 주제]: 아이디어 2. 내 글 분석 및 통계 웹 앱 
- [요구 사항]:
  - 텍스트 데이터 자연어 처리 기술을 사용한 연구 또는 프로젝트 기록
  - 최신 AI 기술 동향 및 관련 논문 (2023년 이후)
  - 성공적인 AI 프로젝트 사례 

자료를 제시할 때는 각 자료의 링크와 함께 간단한 설명을 덧붙여줘.

위에서 제시되었던 아이디어를 그대로 붙여넣고, 찾고 싶은 정보를 요구사항에 적어줍니다.

 

< 결과 >

GPT 4o가 언급했던 'IBM Watson ...' 과 'Google Cloud Natural Language API' 에 대해 찾아왔습니다. 위 대화와 이어지는 것이 편리하네요.

조금 포괄적인 검색결과 위주로, 일개 컴퓨터공학과 학부생에겐 너무나 커다란 프로젝트들을 찾아주기는 했지만 이 부분은 요구사항을 자세하게 쓴다면 보완할 수 있을 것 같습니다.

원하는 정보를 바로바로 찾아주고, 출처까지 명기해 주니 바로 링크에 접속해 추가 조사를 이어갈 수 있습니다.

 

3. 개발 계획 설정 : Claude 3.5 Sonnet

주차별 상세 계획을 짜 보겠습니다. 어떤 친구를 쓰는 게 좋을까 하다가, 지난 퀘스트에서 클로드 역시 지피티 못지않게 말이 많았던 것을 기억하여.. 또한 '복잡한 추론'에 능하다고 소개되어 있으니, Claude 3.5를 쓰도록 하겠습니다.

 

< 개발 계획 설정 프롬프트 >

## 나의 상황
나는 컴퓨터공학과 4학년이고, 이번 방학 동안 개인 프로젝트를 진행할 거야. 프로젝트의 주제는 [AI를 활용한, 내 글 분석 및 통계 웹 앱 서비스] 이 프로젝트에 대한 구체적인 개발 계획을 세워 줘.

## 요구 사항
1. **프로젝트 주제**: AI를 활용한, 내 글 분석 및 통계 웹앱 서비스 개발
   - 사용자가 작성한 글들을 분석하여 주제별, 감정별, 슽일별 통계 데이터를 시각화하는 웹앱
2. **기간**: 1개월
3. **참여 인원**: 1명
4. **사용 스택**:
   - **프론트엔드**: React(TypeScript)
   - **백엔드**: Firebase (서버리스 구조로 백엔드 부담 최소화)
   - **AI**: Google Natural Language API, OpenAI gpt API 등
5. **주요 기능**: 
   - 1. 글 분석: 사용자가 입력한 글을 주제별, 감정별, 스타일별로 분석
   - 2. 통계 시각화: 분석된 데이터를 바탕으로 주제별 빈도, 감정 변화 추이, 작성 스타일을 그래프로 시각화
6. **완성도**: 실제 사용자가 사용할 수 있도록 배포

## 요청 내용
위 요구 사항에 맞는 **세부 개발 계획**을 작성해줘. 각 주차별로 해야 할 일과 주요 마일스톤을 포함하고, 개발해야 할 기능 목록과 우선순위를 제시할 수 있어. 개발 진행에 있어 팁이나 조언을 함께 제공해도 좋아.

 

내용은 1. 아이디어 구상 및 구체화 단계에서 GPT 4o가 말해준 것을 거의 그대로 사용했습니다. 또한 2단계에서 퍼플렉시티가 찾아준 구글 자연어처리 API를 조사해보니, 충분히 사용할 수 있을 것 같아 채택했습니다.

계획은 자세해야 하니까! 입력도 자세히 넣어줬습니다. 물론 아직 실제로 진행단계에 있는 프로젝트가 아니다 보니 미흡한 감이 있기는 하지만요. 여튼 프로젝트 여건을 설명하고, 주차별로 세부 개발 계획을 세우도록 부탁했습니다.

 

< 결과 >

예상이 맞았네요. 굉장히 굉장히 구체적입니다. 아마 팀원 한 네다섯명 머리 맞대도 이 정도로 구체적인 계획이 안 나올 것 같은데 말이에요.

주어진 기간인 1달에 맞춰, 4주간의 개발 계획을 세워주었습니다.

각 주차의 목표와 마일스톤, 상세한 태스크까지 잘 적어주었네요.

 

 

 

4. 진행 : Claude, GPT, Perplexity, ...

실제로 개발에 착수하는 단계로, 여기서부터는 직접 진행해 나가야 하는 부분이라 별다른 프롬프트나 추천 모델은 없습니다.

단 개발 중 / 구현 중에 막히는 부분을 도움받을 수는 있겠죠!

막힌 부분이 무엇이냐에 따라 적절한 모델을 선택해 프로젝트를 진행해 나가면 되겠습니다.

 

5. 완성 및 회고 : GPT 4o

여럿이서 한 프로젝트면 발표회나 데모데이라도 했을 텐데 혼자서는 그런 행사를 열기가 어렵습니다. 공모전이라도 나가면 모를까... ㅜㅜ.

그렇다고 해서 플젝을 끝냈는데 아싸 끝. 그만해야지 하고 던지면 아깝잖아요.

뭐든 문서로 남기는 것이 중요합니다. 경험은 내 피가 되고 살이 되지만 결국 기록해두지 않으면 잊히기 마련입니다.

그리고 서비스를 만들 때 우리 개발자들은 깃허브 리드미에 소개를 써두고는 하잖아요?

그 리드미! 쓰기 귀찮습니다 솔직히. 그러니까 글 잘 쓰는 우리 지피티에게 맡겨봅시다. 계획대로 잘 완성했다고 가정하고, 가상의 뿌듯함을 품고서 작성해봅시다.

 

< 깃허브 프로젝트소개 리드미 작성 프롬프트 >

요것 역시 1단계에서 나왔던 출력결과를 많이 활용했습니다.

## 나의 상황
나는 컴퓨터공학과 4학년 학생이고, 이번 방학 동안 [AI를 활용한 내 글 분석 및 통계 웹앱 서비스] 프로젝트를 진행했어. 프로젝트는 1개월 동안 혼자서 완성했고, 실제 사용자가 사용할 수 있도록 배포까지 완료했어.

이 프로젝트의 **GitHub 리드미(README.md)** 파일을 작성해줘.

## 요구 사항
아래 [프로젝트 정보]를 참고해서 깔끔하고 체계적인 GitHub 리드미 보고서를 만들어줘.

## 프로젝트 정보
1. **프로젝트 주제**: AI를 활용한 내 글 분석 및 통계 웹앱 서비스
   - 사용자가 작성한 글을 분석해서 주제별, 감정별, 스타일별로 통계 데이터를 시각화해주는 웹앱
2. **기간**: 1개월
3. **참여 인원**: 1명
4. **사용 스택**:
   - **프론트엔드**: React (TypeScript)
   - **백엔드**: Firebase (서버리스 구조)
   - **AI**: Google Natural Language API, OpenAI GPT API
5. **주요 기능**:
   - 글 분석: 사용자가 입력한 글을 주제별, 감정별, 스타일별로 분석
   - 통계 시각화: 분석된 데이터를 그래프 형태로 주제별 빈도, 감정 변화 추이, 작성 스타일을 시각화

## 출력 요구 사항
1. **프로젝트 소개**: 프로젝트의 개요와 목적
2. **설치 방법**: 프로젝트를 설치하고 실행하는 방법 (필요한 의존성도 포함)
3. **주요 기능 설명**: 핵심 기능들과 어떻게 동작하는지에 대한 간단한 설명
4. **사용된 기술 스택**: 사용된 기술들 리스트업
5. **배포 링크**: 실제 배포된 웹앱 링크
6. **실제 화면**: 화면 스크린샷이나 GIF
7. **추가 설명**: 트러블슈팅, 회고 등
위 항목 외에 추가적인 정보를 기입해도 좋아.

 

< 결과 >

잘할 거라 생각은 했지만 그래도 정말 잘하네요...

마크다운 문법에 맞춰 리드미를 아주 상세히 적어주었습니다.

제가 제시한 내용뿐만 아니라 npm 의존성 설치, 실행 방법, 라이센스까지 놓치지 않고 적어주었습니다.

훌륭해요!

 

 

나도 쌓을 수 있다. 프로젝트 경험!

개발자로서 절대 빼놓을 수 없는 것이 프로젝트 경험이라지만, 양질의 프로젝트를 해보는 것 또한 완성하는 것은 절대로 쉽지 않은 일입니다. 혼자 한다면 더욱 그렇죠. 도무지 감이 안 잡힐 때도 있고, 의욕도 안 나고, 포기하고 싶어질 때도 많고, 절대 해결할 수 없을 것 같은 이슈가 생기고....

 

그럼에도 프로젝트 경험은 반드시 필요합니다. 저 역시 올해 들어서 프로젝트를 처음 경험해보았는데요, 경험 전과 후의 저의 기술력, 협업에 임하는 자세, 트러블에 대처하는 방법 등 모든 면에서 큰 성장이 있었다고 자부할 수 있습니다.

그리고 단순히 스펙, 실력의 이유뿐만이 아니라, '내가 하고 싶은 것' 이 무엇인지 공들여서 고민해보고 아이디어를 구체화하는 과정, 그것을 내 손으로 직접 만들어 세상에 내놓는 과정은 힘들지만 정말 즐겁고 신나는 경험이라고 생각합니다. 비단 개발자만의 이야기가 아니라 모두에게요!

 

이제는 생활에서 떼어 놓을 수 없는 AI와 함께, 그 멋진 작업을 조금이나마 쉽게 도전해볼 수 있기를 소원합니다. 저 역시 이번 방학에 멀티 LLM 친구들과 함께 프로젝트 하나를 완성해보고자 하는데, 여러분은 여러분의 어떤 관심사를 조명하고 구체화하고 세상에 소개해보고 싶은가요?

 

잘 몰라도 괜찮습니다. 우리에게는 차고 넘칠 만큼 많은 도구가 있으니까요!

 

플젝 경험? 이제는 두렵지 않다! 🤗

 

읽어주셔서 감사합니다.

 

 

 

 

본 게시글은 에이닷 얼리어닷터 1기 퀘스트 진행을 위해 작성되었습니다.