자율 프로젝트 회고

이진송·2024년 11월 25일
post-thumbnail

⏰개발기간

총 프로젝트 기간 5주
10/14 ~ 10/18 : 부트캠프 및 기획(1주)
10/21 ~ 10/25 : 설계(1주)
10/28 ~ 11/15 : 개발 기간
11/16 ~ 11/18 : 개발 Deadline 및 발표준비

👐프로젝트 인원 + 역할분담

나의 역할: 풀스택(프론트엔드 + 백엔드)
나는 이번 Portalio 프로젝트에서 풀스택를 맡았다.
풀스택으로 백엔드 전반의 작업을 맡아 개발을 했다.

Avatar Image Portalio github 바로가기

👨‍👨‍👦‍👦 Black Spoon Developer 팀 소개

김헌규이진송차상곤
Team LeaderFull Stack
Tech Leader
Full Stack
Developer
@HG-KR98@nosong2@CHASANGGON
윤민재박재영김은섭
AI
Tech Leader
AI
Developer
AI
Developer
@GloryMJ@INPII@subway9852

기술스택

🔧 기술 스택

Backend
BackendVersion
OpenJDK17.0.12
Spring Boot3.3.3
Spring Data JPA3.3.3
Nginx1.18.0
MySQL8.4.1
Node.js20.18.0
Python3.12.6
FastAPI0.115.4
SQLAlchemy2.0.36
Oauth2.0
CI/CD | CI/CD | Version | | --- | --- | | Jenkins | 2.484 | | Docker | 27.3.1 | | Docker Compose | 2.29.7 | | ngrok | 3.18.4 | Frontend
FrontendVersion
React18.3.1
TypeScript5.5.3
AI
AIVersion
Torch2.5.1
Mediapipe0.10.14
Librosa0.10.2.post1
Google speech-to-text2.28.0
Google text-to-speech2.21.0
Openai1.53.0
Resnet-50-

시스템 구조도

전체 구조도

백엔드(API서버)

Springboot (Portalio Server)

  • 회원관리
  • 소셜
  • 자유/질문 게시판
  • 포트폴리오 게시판
  • 레포지토리 게시판
  • 활동 게시판
  • etc(티켓)

FastAPI (AI Server)

  • AI 모의 면접(화상, 음성, 텍스트 면접)
  • 화상 데이터 분석
    면접 영상 기반 안면 인식(랜드마크) 활용 사용자 감정 분석(면접 집중도 분석)
    동공 랜드마크, 상체 움직임 등 자료 활용 면접 집중도 분석
  • 음성 데이터 분석
    음성의 높낮이, 떨림 등 자료 활용 면접 집중도 분석

React

  • 모의면접, 사이트 이용 등을 위한 웹 페이지 구현

이번 프로젝트를 통해 동료와의 지속적인 소통과 백엔드 개발 능력에 대해 배울 수 있었다.
대체로 API를 찍어내는 작업이 많았던 프로젝트였다.
프론트엔드 작업을 원하는 팀원이 없어서 각자가 풀스택을 자처하여 해내기로 사전에 이야기 했다.
개발을 진행하면서도 이렇게 하기로 했는데 작업 후에나 저렇게 하기로 한거 아니냐고 하는 경우가 정말 많았다. 소통이 충분히 이루어졌다고 생각했지만, 많이 부족했던 것 같다.

📷 프로젝트 소개

Portalio는 전공에 관계없이 누구나 자신의 포트폴리오를 쉽고 체계적으로 작성하고 공유할 수 있는 포트폴리오 관리 플랫폼입니다. 자신만의 프로젝트와 경력을 관리하고, 이를 통해 개인의 전문성을 효과적으로 알릴 수 있도록 돕는 서비스를 제공합니다.

개발과정

프로젝트 시작

자율 트로젝트에서는 백엔드를 우선으로 담당하게 되었다. 다른 팀에서는 카프카(kafka)라던지, 동시성이라던지, 백엔드 단에서 다양한 기술을 활용하였는 이야기를 들었다.
하지만 그럴만한 기술을 넣을 구멍이 잘 보이지 않아 새로운 기술을 배워 볼 기회는 없었던 것 같다. 물론 내가 기술 폭을 잘 몰라서 그랬다고 생각한다...
프로젝트가 끝나고 나서야 드는 생각이지만, 엘라스틱 서치를 넣어볼 수 있지 않았을까? 싶었다.

이번 프로젝트를 진행하면서 단순 반복으로 RestAPI를 만들긴 했지만, 코드를 좀 더 깔끔하게 짤 수 있게 되었다. 그리고 AWS S3, MongoDB를 직접 활용해 볼 수 있었다.

나에게는 새로운 것을 구현해내는 것이 이제는 두렵지 않다.
구현 가능성에 대해서 검토하고, 직접 구현할때 정말 흥미를 느끼는 것 같다.

게시판 CRUD

RestAPI를 만드는 작업으로 굉장히 금방 작업을 수행할 수 있었다.
게시판 별로 자기만이 갖는 특색이 있었지만, 베이스는 같아서 순식간에 쳐낼 수 있었다.

AWS S3

프로젝트 특성상 이미지, 동영상, pdf 등 다양한 파일을 업로드하고, 미리보기 및 ZIP 다운로드를 위해 사용함.

MongoDB

파일을 여러개 올렸을때, 파일 리스트를 관리하기 위해 MongoDB를 활용함.


S3와 MongoDB를 처음 활용해봤었다. 구글링을 통해 활용법을 보며 했더니 어렵지 않게 구현할 수 있었다. 파일 전체 내려받기는 백엔드단에서 ZIP로 압축시켜 내려주는 방식으로 구현했었다.

코드리뷰

이번에도 코드리뷰를 하며 진행했다. 코드리뷰가 자연스러워 진 것 같아서 좋았다.
oauth2를 작업하는 팀원과 서로의 코드에 대해 의문을 날리며 더 좋은 코드가 될 수 있었던 것 같다.
프론트 작업으로 넘어갈 시점에는 더이상 시간이 없어서 코드리뷰를 제대로 하지 않고 완성에 집중한 것 같다.

사용한 협업 툴

Notion

기획부터 프로젝트 완료까지 Notion은 정말 많이 활용되었다. 백엔드끼리 소통할때도, 자료를 공유할때도 Notion은 참 좋았다.

JIRA

의무적으로 사용했다. 목적에 맞춰 사용한다면 정말 좋은 툴이 될텐데 아쉽다.

후기

의욕이 가득찬 팀원들의 기대에 못미친 프로젝트였던것 같아서 되게 아쉬웠다.
특화를 1주일 더 받고 그만큼 자율을 1주일 깎인만큼 완성도에 대한 아쉬움은 있었지만, 프론트에 대한 목표를 잡지 않고 진행했어서 그런지 아쉬움이 크진 않았던 것 같다.

자율 프로젝트를 마지막으로 SSAFY를 마무리하고, 이제 취준을 위해 cs공부, 영어자격증, 알고리즘 등등을 다시 하게 될 듯 하다.

profile
개발자 뉴비, 새로운 것을 배워가고 특정한 주제에 대해 고민하는 것을 즐거워합니다.

3개의 댓글

comment-user-thumbnail
2024년 11월 27일

멋져요 트러블 슈팅도 적어주세요

1개의 답글
comment-user-thumbnail
2024년 12월 12일

훌륭하십니다!

답글 달기