삼성 청년 SW 아카데미에서 1월초부터 시작한 공통 프로젝트가 마무리 되고 회고를 해볼려고 한다.

진행 기간 : 2023.01.03 ~ 2023.02.17(6주)

공통 프로젝트는 싸피에서 공통으로 몇가지 주제를 주고 그중 원하는 주제를 선택하여 프로젝트를 진행하는 식인데 우리 팀이 선택한 주제는 웹기술였고, 해당 주제는 WEB RTC 기술을 사용하여, 웹사이트를 구축하는 것이였다.

총 6주간의 기간동안 기획 2주, 개발 3주, 취합 및 산출물 정리 1주로 진행하였다.

기획 단계

1주차에는 처음 만난 팀원들과 얼굴을 익히는 시간과 아이디어 회의 등이 이루어졌다.

팀원들과 WEB RTC 기술을 사용하여 어떤 프로젝트를 진행할까라는 아이디어 회의가 이루어졌고 라이브 경매 플랫폼, 라이브 커머스 플랫폼, 유기동물 분양을 위한 라이브 플랫폼등 여러가지 아이디어가 나왔었다.

해당 아이디어들을 취합하여 프로젝트 컨설턴트님과의 면담을 가졌고… 처참히 깨졌다…

해당 기획을 하게된 이유, 수익구조, 타켓층 등의 질문이 들어왔고 제대로 된 답변을 하지 못했기 때문이다…

그렇게 1주차가 지나되었고 2주차까지 기획 회의를 이어 나가게 되었었다…

2주차때는 그전보다 빠르게 기획을 진행할수 있었고, 그렇게 나온 기획이 라이브 토론 서비스 “아고라”다.

Agora.png

토론교육이 상대방 의견을 경청하고 그 의견에 논리적이고 감성적으로 반박하는 과정을 거치면서 대화의 스킬을 기를수 있다는 점을 어필하면서 타켓층을 중고등학생을 잡았다.

아무튼 토론주제가 정해졌고, 우리팀은 기획단계에서 생각보다 오랜 시간을 소모하였기 떄문에 부족한 개발 시간을 최대한 확보하기 위하여 빠르게 프로젝트 설계 작업과 기획 발표 준비를 진행했다.

그렇게 프로젝트가 잘 마무리 될줄 알았다…..

개발 단계

기술 스택

Agora_TechStack.png

  • Vuejs
  • Webpack
  • Ngnix
  • kurento
  • Spring boot
  • Spring Data JPA
  • Query DSL
  • Spring Security
  • JWT
  • WebSocket
  • Kafka
  • MySQL
  • Redis
  • AWS EC2
  • GitLab
  • Jenkins
  • Docker Compose

    +멀티 모듈…

Agora_MultiModule.png

시스템 아키텍처

Agora_System_Achitecture.png

프로젝트에서 담당한 부분

회원 기능 , 파일 조회, 저장 기능 , 채팅 서버 개발

배웠던 점, 잘했던 점

팀원분들이 실무 경험이 있으신 분들이셔서 이번 프로젝트에서 그러한 실무 경험을 조금이라도 느낄수 있어서 좋았습니다.

  • 기술의 대한 깊은 이해
    • 공부할때 깊은 부분까지 찾아서 공부한다고 했지만 실제로 개념을 익히는것과 이를 프로젝트에서 사용하는것은 확연히 차이가 있다.
    • 또한 알고있던 내용이 전부가 아닌 일부분에 불가하고 아직 보완해 나가야 할점이 많은것 같다.
  • 새롭게 알게된 여러 로직
    • File 관리는 File Manager라는 테이블을 만들어 관리해야 한다는 점
    • 그외에 프로젝트를 진행하면서 평소에 잘 몰랐던 부분등을 알게 되었습니다.
  • 기술에 대한 지식 공유 및 발표
    • 프로젝트를 진행하면서 사용한 멀티 모듈 방식, Kurento와 같은 기술등은 낯설고 잘 모르는 내용이였습니다. 그리하여 팀원별로 공부한 내용을 정리하여 공유하고 발표하는 시간을 가지기로 하였고 그러한 시간을 가진 덕분에 프로젝트를 진행하는데 많은 도움이 되었다고 생각합니다.

아쉬웠던 점

  • 너무나 많은 기술 X, 객관적인 시선으로 프로젝트를 설계 할것
    • 서비스 규모가 커지는것을 고려하여 유연하고 확장성 있게 설계, 개발 하는것이 좋다고 생각하여 여러 기술을 도입하였었다. 그러다 보니 프로젝트 마감 시간은 다가오는데 기술 구현이 마무리 되지 못했다. 이러한 상황을 보면서 느낀점은 확장성있게 개발하는것은 좋지만 가장 중요한것은 시간내에 마무리해야하는점이다.
    • 확장성을 고려하여 개발을 진행하는것은 좋지만 마무리가 되지 않는다면 그것보다 더 문제인것은 없다.
    • 만약 개발 시간을 넉넉하지 않다면 잘못된 설계 이거나 개발 능력의 부족이라고 생각할수 있다.
  • 소통의 문제, 코딩 컨벤션 문제
    • 프로젝트를 어느정도 진행하면서 마감이 촉박해지자 소통이 제대로 되지 않아, 코드 중복이 발생하는 일이 너무나 빈번하게 일어났었다.
    • 또한 코딩 컨벤션을 제대로 지키지 않아 코드의 가독성이 엉망이 되어 중간 중간 수정하는 일이 자주 발생하였습니다.
    • 물론 시간이 부족해서 일어난 일이라고 생각할수도 있지만 촉박하다고 소통을 하지않고 컨벤션을 지키지 않는것은 문제라고 생각하고 이런일이 발생하지 않도록 더욱 조심해야겠다는 생각을 하게 되었습니다.

느낀점

이번 프로젝트를 진행하면서 기간내에 끝내지 못했다는점이 가장 아쉬웠던 점이지만 이러한 실패를 바탕으로 성장할수 있다고 긍정적으로 생각하기로 했다.

하지만 이런 실패가 다시는 일어나지 않도록 이번 프로젝트를 진행하면서 부족했던 점등을 머리속에 새겨 다음 프로젝트는 성공적으로 진행할수 있도록 해야겠다.