GEMINI
2023-4-10 ~ 2023-05-19 (6주)
- Git
- Notion
- JIRA
- MatterMost
- Webex
- Stable Diffusion과 Fast API를 사용하여 특정 그림체에 특화된 이미지 생성 기능 구현
- Socket.io와 Redis, MongoDB를 이용한 실시간 TRPG 구현
- Spring Security + OAuth2 + JWT 소셜 로그인 구현
- Jenkins를 이용한 CI/CD Pipeline 구축
- S3를 이용한 파일 업로드 구현
- 사용자가 적용할 수 있는 속성을 미리 보며 선택하여 이미지 생성 가능
- 사용자가 생성한 이미지를 이용하여 실시간 TRPG 플레이 가능
- 소셜 로그인 가능(구글 로그인)
- 일간, 주간 TOP 5 조회 가능
- 다른 사람이 공개한 이미지의 키워드를 복사하여 사용할 수 있음
- TRPG에서의 플레이어들과 인생네컷 생성 기능
- 일간, 주간 TOP 5 에 해당하는 이미지에 표정네컷 생성 기능
- 팔로우, 좋아요 기능
- 이미지 생성시 알림 기능
- 이미지 생성에 필요한 재화(별조각) 카카오페이 구매 기능
- TRPG에서 비밀방 생성 기능
[FE]
React
Redux toolkit
styled-components
socket.io
typescript
[BE]
Java
SpringBoot
JPA
JPQL
Node.js
Express.js
[DB]
MySQL
Redis
MongoDB
[ML]
Stable Diffusion
[IDE]
IntelliJ
VSCode
[DevOps]
Docker
Jenkins
nginx
AWS ec2
FE
- 로그인, 회원가입, 마이페이지, 메인 컴포넌트 전반 작성
- 전역상태관리 환경 구축
BE
- Spring Security, JWT, OAUTH2.0을 이용한 인증서버 구축
- USER-SERVICE 회원 상호작용, GALLERY REST API 구축
- Stable Diffusion을 통한 이미지 생성
- Check point 병합 및 Safetensor로 인코딩하여 안정성 증대
- VAE 학습 및 병합 하여 기존 모델을 강화 (색감 개선)
- Control Net을 접목시켜 이미지의 포즈 반영
- Seed 와 연동하여 디 노이징 과정에서 기존의 이미지에서 포징만 바뀌게 적용
- Control Net의 이미지 생성 부분에서 Clip을 활용하여 이미지 정합성 개선
- Sampler 효율화를 통해 생성 시간 75% 단축
- Prompt 및 Steps 조절을 통한 생성 효율화 달성 (결과적으로 1/20 으로 시간 단축)
- FASTAPI 이용 AI 서버 구축
- CI/CD
- AI 서버 스케일 아웃
FE
- AI 이미지 생성 페이지 일부 기능 구현
- 표정 네컷, 404 페이지 등등 프론트 세부 기능 구현알림 기능 구현
BE
- 카카오 페이 기능 구현
- 알림 기능 구현
- Socket.io를 통한 TRPG 게임 기능 구현
- WebGL과 P5.js 를 이용한 3D모델링 구현
- UX UI 구성
- 이미지 생성페이지 프론트 구현
- 프롬프트 활용한 에셋 작업
- SSAFY를 통해 처음 소프트웨어에 입문한 저에게 팀장 자리를 믿고 맡겨주신 팀원분들께 너무 감사합니다.
- 1학기때부터 잘 알던분들이었지만 같이 협업하는건 처음이었기에, 어떤 팀장이 되어야할지 고민이 많았습니다.
- 우리 팀의 목표였던 새로운 경험쌓기와 프로젝트의 완성도 두마리 토끼를 다 잡을 수 있도록 처음 계획 짤 때부터 마음속에 플랜B, 플랜C를 만들어서 변수에 대처할 수 있도록한게 좋은 결과로 이어져서 다행입니다.
- 프로젝트 내내 매주 110시간 이상 할애하면서 밥먹고 잠자는 시간 빼고 프로젝트"만"을 위해 살아주신 팀원분들 덕분에 MSA 아키텍쳐를 제대로 구현해볼 수 있었고, 겉보기에만 잘 되는게 아닌, 완성도 높은 API설계, 효율성 있는 DB설계를 할 수 있었습니다.
- 최적화 할 부분이 몇가지 보이는데, 이후에 진행해보고 싶습니다.
- 무엇보다 NGINX 설정을 곁들여서 서버간 통신과 데이터 흐름에 대한 이해가 깊어진게 이번 프로젝트에서 기술적으로 가장 큰 성과라고 생각합니다.
- 환석님, 원웅님, 예지님, 석훈님, 다솔님 모두 감사합니다. 몸은 가장 힘들었지만, 마음은 가장 편한 프로젝트였습니다.
- 재미있었습니다... 저번에 CNN을 빡구현 해본 경험이 있었기에 이미지 노이즈화에 대한 이해도가 생겼었는데, 이 부분을 활용해서 Stable Diffusion을 활용해볼 수 있었어서 너무 좋았습니다.
- 고도화를 해보려고 욕심을 부리느라 자바 백엔드 부분을 케어하지 못했는데, 팀원 분들의 지원과 백업으로 무사히 연결을 완료 할 수 있어서 너무나 감사했습니다.
- 팀 프로젝트의 아웃풋이라는 것이 혼자서는 절대 불가능한 영역이라는 것을 매번 매번 느꼈지만, 이번 팀원들 만큼은 진짜 각자의 필드에서 너무나 대단한 인재들이었기 때문에 너무나 감사했고, 도움을 받았습니다.
- 기술 스택에 대한 이해도를 높일 수 있었고 SD, Clip, Control Net, VAE, Uvicorn 등 다양한 기술 스택을 써보고 EC2 G4DN 4Xlarge를 활용하는 실 경험을 쌓을 수 있었어서 너무 좋았습니다.
- 모든 팀원분들께 감사의 말씀 드리고, 특히나 고생하셨던 팀장 갓성중님과. 베스트 엔지니어 원웅님께 특별한 감사의 말씀 올립니다.
- 서버 배포를 처음으로 담당해봤는데, 학습으로 인해 상대적으로 느렸던 최초 배포를 기다려준 팀원들에게 감사합니다
- 공통 프로젝트에서 socket.io를 배포하지 못했었는데, 이번에 직접 배포를 담당하면서, 시행착오를 통해 결국 배포에 성공해 기분이 좋습니다.
- 지나왔던 프로젝트들에서, 자동배포시에 변경사항 없는 서버들도 항상 모두 빌드를 하게되어서 배포에 변경사항 적용까지 시간이 오래걸렸던게 불만이었는데, 이번에 직접 해보면서 변경사항이 적용된 서버들만 빌드를 하게끔 병렬처리를 구현해내, 빠른속도로 빌드 후 배포를 완료할 수 있게 되어 좋았습니다.
- ai 그림 생성 서버에서 gpu 자원을 끌어와야했는데, 도커에 대한 이해가 부족해 가상환경이 아닌, 호스트 서버에서 직접 실행하는 식으로 배포하게 된 점이 아쉽습니다. 기회가 된다면, 컨테이너 배포로 리팩토링을 도전해보고싶습니다.
- 쿠버네티스를 적용한 팀이 많았는데, 아무래도 첫 배포다 보니, 기본적인 배포와 자동화에 그쳤습니다. 기회가 된다면, 이부분도 적용해보고싶습니다.
- JAVA spring 백엔드 구현이 처음이었는데 팀원들 도움을 많이 받아서 마무리 할 수 있었습니다.
- 당장 리팩토링 해야 할 부분들이 많이 보이지만,
- DB 구조를 어떻게 짜고, 리팩토링 해야 할 지 알 수 있어서 좋은 프로젝트였습니다.
- 기능이 많이 연결되어 있었기 때문에 프론트 적으로도 구조를 연구하고 구현할 수 있어서 좋았습니다.
- 6주동안 한마음으로 달려와준 팀원분들께 감사합니다.
-
직접 socket.io를 이용하여 Node.js와 React를 이용해 게임 개발을 해 보았습니다. Redis 와 MongoDB를 이용하여 어떤 방식으로 유저들의 정보를 저장할지에 대한 고민을 통해 백앤드에 대한 이해를 높일 수 있었고, 비교적 유연하게 스키마를 작성할 수 있는 MongoDB 덕분에 아직 미숙하여 수정사항이 많아지는 경우에도 쉽게 수정할 수 있어서 너무 좋았습니다.
-
TRPG라는 생소한 게임 유형을 어떤 방식으로 보여줘야 할 지에 대한 고민을 정말로 많이 했습니다. 디자인적으로 잘 보여지지 못하는 것에 대해 고민을 하였고, 에셋을 보다 시각적으로 잘 보일 수 있도록 수정하였습니다.
-
개발이 한창 진행될 때는 하루에 약 300커밋을 찍으며, 배포와 개발간의 괴리를 없애기 위해 노력했습니다.
-
이미지 생성AI 기술에 대한 이해를 할 수 있어서 정말 좋았던 것 같습니다. 팀원들이 모두 각자의 역할을잘해 주었기 때문에 프로젝트를 마무리할 수 있었다고 생각합니다.
-
당초 백엔드 구축을 하기 위해 학업을 진행했지만 능력과 시간 부족으로 이번엔 타입스크립트를 활용하여 프론트를 구축하는 것에 그쳐서 아쉬움이 많이 남습니다.
-
프로젝트 이후에도 백엔드 공부를 통해 서비스 전반적인 이해를 높혀서 개발을 하고싶다고 느꼈습니다.