본문 바로가기

SSAFY

[SSAFY] 자율프로젝트 회고 및 2학기 수료 후기

728x90
반응형

SSAFY에서의 마지막 프로젝트인 자율 프로젝트가 어느덧 끝나게 되었다.

취업 준비와 병행하며 힘들었지만, 가장 얻어가는 게 많은 의미있는 프로젝트이기도 하다.

 

프로젝트 소개

누구나 쉽게 LLM 챗봇을 만들 수 있도록 돕는 플랫폼 "Flow Studio"를 개발했다.

 

복잡한 코딩 없이도 블록코딩으로 챗봇의 대화 흐름을 눈으로 보면서 쉽게 조작할 수 있도록 하였고, 챗봇을 공유하여 커스터마이징 할 수 있는 기능과 챗봇의 성능을 분석하는 기능이 기존 챗봇 제작 플랫폼과의 차별점이다.

 

 

https://github.com/minseonkkim/FlowStudio

 

GitHub - minseonkkim/FlowStudio: 🤖 누구나 쉽게 만드는 LLM 챗봇 제작 플랫폼

🤖 누구나 쉽게 만드는 LLM 챗봇 제작 플랫폼. Contribute to minseonkkim/FlowStudio development by creating an account on GitHub.

github.com

 

1. 새로운 기술스택

특화 프로젝트 때 새로운 기술을 써보지 못한 것이 아쉬워서 이번엔 새로운 기술들을 많이 도입하려고 노력했다.

 

 

React가 아닌 Next.js를 사용하면서 SSR의 장점을 자연스럽게 알게 되었다. 이전 프로젝트들에서는 최적화에 많은 시간을 투자해야 했지만, Next.js를 사용하니 성능과 SEO 최적화가 자연스럽게 이루어지는 점이 신기했다. 이 외에도 이미지 최적화, 자동 코드 분할 등의 기능이 기본으로 제공되어 수동으로 처리해야 했던 여러 부분들을 자동화할 수 있어서 빠른 개발이 가능했다.

 

React Query라는 기술도 처음 사용해 보았다. 이전에는 데이터 요청을 직접 처리하고, 로딩 상태나 오류 처리, 캐싱 등을 직접 구현해야 했지만, React Query는 이러한 기능들을 모두 자동으로 관리해줬기 때문에 코드가 간결해지고, 반복적인 작업을 줄일 수 있었다. 또한, React Query의 useInfiniteQuery를 사용해서 무한 스크롤을 이전보다 간단하게 구현할 수 있었다.

 

이외에도, Zustand가 아닌 Recoil을 사용하고, UI를 테스트하고 문서화하기 위해 Storybook을 사용했다.

 

2. React Flow

이번 프로젝트에서 가장 고비였던 React Flow,,, 다음과 같은 블록코딩 기능을 구현하는 데 사용한 라이브러리다.

 

 

가장 어려웠던 점은 API에서 반환하는 데이터 구조와 ReactFlow에서 요구하는 데이터 구조가 달라서 생긴 문제였다. ReactFlow에서 노드와 엣지는 각각 id, type, data, position, source, target 등의 속성을 필요로 하는데, API에서 받은 데이터는 이러한 구조와 맞지 않아서 변환 작업이 필요했다.

 

그리고 화면 상에 absolute로 컴포넌트를 띄울 때, ReactFlow 내부에서 사용하는 좌표계와 실제 화면의 좌표계가 달라서 바로 사용할 수 없는 문제가 있었다. 이 문제를 해결하기 위해 ReactFlow에서 제공하는 screenToFlowPosition 함수를 사용하게 되었다. screenToFlowPosition 함수는 화면의 좌표(clientX, clientY)를 ReactFlow 내부의 좌표로 변환해주는 역할을 한다. 

 

3. Gitlab 이슈, 라벨, 마일스톤

 

Jira로만 프로젝트 관리를 했었는데 이번 프로젝트에서는 Gitlab 이슈, 라벨, 마일스톤을 처음 사용해보았다. 개발 상황을 한 눈에 파악할 수 있는 것이 좋았다.

 

4. 팀원의 싸탈

프로젝트 중간에 프론트엔드 팀원 한 명이 취업으로 싸탈을 해서 우리 팀은 다섯 명이 되었다. 그렇지 않아도 면접 일정 때문에 6일이나 빠졌고, 그 시점이 API 연동을 시작할 때라 굉장히 바빠졌다. 하지만 이러한 상황 속에서도 팀원들이 서로 도움을 주며 원활하게 진행할 수 있었다.

 

5. SSAFY SUPER APP

SUPER APP이란?

SSAFY에서 진행한 여러 프로젝트를 하나의 앱에서 이용할 수 있도록 하는 프로젝트. 프로젝트 기간인 7주가 끝난 뒤에도 지속적으로 유지보수 할 수 있음

 

SUPER APP 프로젝트에 선정이 되어서, 최종발표가 끝난 뒤에도 우리 팀은 쉬지 못하고 일주일간 리팩토링을 했다.

(이 부분에 대해서는 수퍼앱 배포 이후에 다시 작성하겠다)

 

 

 

SSAFY를 마무리하며..

나에게 싸피는 자신감이다

 

 

하반기에는 정말 많은 면접 기회가 있었다. (현재도 진행중..) 면접 탈락은 서류나 코테 탈락보다 몇 배 더 고통스러웠고, 자존감이 바닥을 치는 것 같았다. 나 자신을 믿고 있었지만, 현실은 그렇지 않다는 생각이 들 때가 많았다. 

 

그런데 그런 힘든 순간마다, SSAFY에서 만난 동료들이나 컨설팅 강사님들이 건네준 말 한마디에 다시 일어설 수 있었다. 그 말들이 내게는 정말 큰 위로가 되었고, 내가 다시 한 걸음 내딛는 힘이 되었다.

 

그때마다 느꼈다. 고작 한 마디에 이렇게 큰 차이가 날 수 있다는 것. 나 혼자라면 힘들었겠지만, 함께 했기에 견딜 수 있었고, 자존감을 회복할 수 있었다. SSAFY에서 배운 건 단순한 기술적인 지식뿐만 아니라, 어떻게 서로를 돕고 격려하며 성장할 수 있는지에 대한 소중한 경험이었다.

 

수료를 앞둔 이 시점에서, SSAFY에 온 게 내 인생에서 가장 잘한 선택이라는 생각을 한다. 소중한 인연들을 얻었고, 많은 도전과 실패를 겪으며 나 자신을 더욱 잘 이해하게 되었다. SSAFY에서 만난 사람들이 나에게 주었던 도움과 격려를 잊지 않고, 나도 누군가에게 그런 사람으로 남을 수 있도록 계속해서 성장해 나갈 것이다.

 

 

 

728x90
반응형