본문 바로가기
생각 정리/SSAFY

[SSAFY] 자율 프로젝트 회고

by mintropy 2022. 7. 18.

0. 프로젝트 소개 및 정리

GAN을 활용한 인공지능 생성 시스템, GanDa(간다)

- 인공지능 훈련용 이미지를 GAN을 활용하여 생성

- GAN훈련 모델 업로드/다운로드 지원

- 다양한 GAN모델을 활용한

사용 기술 스택

- 프론트 : TypeScript, React

- 백 : FastAPI

- 인공지능 : PyTorch

- 기타 : Gitlab CI/CD + Docker, Nginx

기여도

- 백엔드 80%

  - 대부분은 백엔드 코드를 작성

  - FastAPI 기반 웹 서버 관련 학습 및 팀원과 공유

- 인공지능 20 %

  - PyTorch를 활용한 인공지능 모델 활용 방법 학습 및 공유

  - StyleGAN을 활용한 이미지 생성 모델 훈련 및 활용

 

1. 프로젝트를 시작하며

프로젝트 주제 선정
이번 프로젝트는 삼성전기 기업연계 프로젝트였다. 기업연계 프로젝트는 실제 기업이 요구하는 명세서를 기반으로 진행하는 프로젝트로, 아마도 실무와 가장 가까운 형태가 아닐까 생각한다. 그리고 프로젝트 과정에서 해당기업, 우리 팀에서는 삼성전기에서 실제로 업무를 맡고 계신분이 멘토링을 진행했다. 이 부분은 실무에서 클라이언트와의 관계와 유사하지만, 그래도 현업에서의 느낌보다는 멘토링에 가깝다고 생각된다.

아무래도 명세서가 주어지다보니 프로젝트 주제는 거의 정해졌고, 세부적인 부분 정도만 기획하기로 했다. 예를 들어 PyTorch를 사용하거나, StyleGAN 모델을 활용하고, 웹 기반으로 제작하는 것 등이다. 프로젝트 명세서가 모호하여 프로젝트 과정에서 많은 변경이 있었지만, 큼직한 틀은 초반에 거의 정립했던 것 같다.

 

프로젝트 주제 구체화

프로젝트의 목적은 정확했지만, 현업에서 사용하는 데이터, 코드 등을 공유할수는 없어 데이터나 프로젝트의 실질적 구성을 많이 고민했다. 그리고 '마이구미'를 바탕으로 전반적인 프로젝트를 스토리텔링 방식으로 풀어냈다. 그 이유는 두가지가 있는데, 첫 번째로 프로젝트 주제가 이해하기 어려웠기 때문이다. 프로젝트는 'GAN을 활용한 인공지능 훈련용 이미지 생성 시스템'인데, 이 한문장을 설명하기에도 정말 많은 시간이 필요했다. GAN을 설명하기 위한 인공지능 기반 내용 설명, 인공지능 훈련과 생성 시스템 등 다양한 부분이 함축되어 있어 설명이 어려웠다. 이를 조금 쉽게 풀어내고자 했다. 두 번째는 그냥 프로젝트를 조금 더 재밌게 하고 싶었다.

 

프로젝트 기술 스택 선정

백에드는 중요하지만, 실질적인 역할이 크지 않았다. 단지 이미지를 생성, 반환하는 역할이 거의 전부였다. 그래서 마이크로 프레임워크인 FastAPI를 선정하였다.
인공지능으로는 PyTorch를 선택했는데, 이 선택은 큰 이유는 없고, 우리가 사용했던 StyleGAN이 PyTorch기반으로 작성되어 있어 선택했다.

 

2. 프로젝트 진행

FastAPI
가볍운 서버를 구성해본적은 있지만, 프로젝트 규모의 코드 작성은 처음이였다. 아마 조금 더 깊은 내용이 필요했다면 까다뤄었을 것 같은데, 가벼운 내용으로 구성하여 큰 어려움 없이 작성할 수 있었다.

인공지능

PyTorch기반으로 작성된 StyleGAN을 거의 그대로 활용했다. 일부 파라미터를 수정하며 훈련과정을 가지기도 했지만, 데이터 수집-활용 정도였던 것 같다.

협업과 소통

이미 같은 프로젝트를 진행해봤던 팀원들이 많아서, 여러 규칙을 정하고, 프로젝트 과정에서의 소통은 그리 어렵지는 않았다. 하지만 일부 팀원들의 반대로, 이번 프로젝트와 이전 프로젝트에서 하지못한 아쉬운 점들이 있다.
첫 번째로 9-18 작업도중 카메라 또는 마이크를 켜두는 것이다. 아무래도 온라인으로 진행하다보면 소통이나 연결된 느낌보다 동떨어지고 단절된 느낌 그리고 상대방의 반을을 확인하기 어렵다. 또한 팀원들이 작업하는 과정이 보이거나 들리면 동기부여에 조금 더 도움이 될 수 있을 것이라 생각도 든다. 카메라는 아무래도 부담스러운 느낌도 들 수 있다고 생각하는데, 마이크를 켜두는 것에 대한 거부감도 있어 조금 아쉬웠다.
두 번째는 SSAFY에서 제공하는 공식 툴들을 더욱 적극적으로 활용하는 것이다. 물론 필요에 따라 Notion, Discord 등을 활용할 수 있다고 생각하지만, mattermost, jira, gitlab등을 더욱 적극적으로 활용할 수 있었을 것 같다는 아쉬움이 든다. 이 부분은 내가 규칙을 잘 만들지 못한 이유도 있을 수 있지만, 많은 팀원들이 규칙보다는 편리함을 더 추구하는 듯 했다.

3. 프로젝트를 마무리하며

잘한 점
- FastAPI와 PyTorch를 활용한 백엔드 서버 구성

 

아쉬운 점
- 인공지능 학습 및 활용과 관련하여 더 많은 시간을 소모하더라도 확실하게 공부했으면 좋았을 것 같음
- 웹과 응용프로그램에 대한 고민을 했는데, 각각의 구성에 대한 이해가 부족했음

 

개선할 점

- 소통 방법을 정하고, 만든 규칙에 따라 프로젝트를 진행하는 것

- PyTorch를 활용한 인공지능 응용

 
 
 
 

댓글