부스트캠프 웹・모바일 7기 멤버십_그룹프로젝트week3 후기

yongseok·2022년 11월 27일
3

Boostcamp

목록 보기
18/22

네이버 커넥트재단이 주관하는 2022년 부스트캠프 웹·모바일과정 멤버십 그룹프로젝트 week3을 돌아보는 개인적인 회고입니다

그룹프로젝트 후기는 일기처럼 편하게 작성하려고 한다.

그룹프로젝트 week3는 개발 2주차로, 핵심기능 개발을 위해 WebRTC를 학습하는 계획을 하는 주차였다.

그룹프로젝트 week3는 WebRTC에 대해서 학습하는 주차였다.

월요일

주말 동안 완료하지 못한 부분에 대해서 진행해 PR을 작성했다.

함께 백엔드를 담당하고 있는 SH님이 놓친 포인트, 부족한 부분에 대해서 리뷰를 주셨다.

월요일 아침 일찍 일어나 PR에 답을 달고, 적용할 수 있는 부분은 바로 적용했다.

스프린트 회의를 통해서 이번 주차 진행 방향을 확인하고,

프론트엔트, 백엔트 상호 코드에 대한 소개를 진행했다.

추가로 API 성능을 고려한 query 작성에 대해서 이야기를 나눴고,

docker 실행에 대해서 설정을 확인했다.

Interactive Connectivity Establishment (ICE) 서버의 역할을 학습하면서 STUN과 TURN

NAT에 대해서 학습했다.

이후 시간은 webRTC에 대한 학습 시간으로 활용하기로 하였다.

마스터클래스를 통해서 필요한 기술에 대한 왜?에 대한 이야기를 들으며, 많은 것을 배울 수 있었다.

화요일

프로젝트 초기 도메인을 구매하면서 오타를 냈기 때문에 도메인을 새로 구입하고, nCloud로 생성한 인스턴스에 SSL 인증서를 발급받았다.

오후시간 webRTC 1:1 화상연결을 로컬에서 실행했고,

socket.io에서의 흐름을 하나하나 따라가 보면서 로그를 찍다보니 어지러웠지만 해결되니 좋았다.

로컬에서 정상적으로 동작하는 코드를 nCloud에 배포했고, LTE와 WiFi에서 접속이 잘 이뤄졌다.

팀내에서가 coturn server를 띄워서 ICE server를 설정하는데 오류가 있어 어려움이 있었다.

저녁에 데이터베이스에 대한 특강이 있었고, 사례와 질문을 바탕으로 시간이 정말 빠르게 지나갔다.

멘토링을 통해서 기술적인 측면과 계획, 업무에 대해서 생각해 볼 수 있었고,

프로젝트의 방향이 빠르게 잡혀갔다.

체력적으로 피곤한 하루였다.

수요일

오전 스크럼을 통해서, 1:N 연결을 위한 방법에 대한 고민을 나누고,

  1. Mash로 구현하기
  2. SFU로 구현하기
  3. 오픈 소스 사용하기

빠른 목표 달성을 위해서 오픈소스를 적용하는 것으로 하고, 학습하기로 했다.

NGiNX를 설치해 proxy를 적용했다. 방화벽을 열지 않은 로컬호스트 포트를 연결 할 수 있다는게 신기했다. (SSL은 덤) 방화벽을 오픈하지 않은 포트에 리슨을 넣고 연결이 안 돼서… 고민했던 순간이 있었다.

설정한 것을 동료들과 공유하고 문서로 남겼다.

nCloud에 coturn 서버를 올리고, 어제 코드에 적용해 잘 동작하는 것을 확인했다.

webRTC에 대한 이해를 위한 NAT을 정리해 보려고 하는데, 쉽게 되지 않는것 같다.

목요일

아침 스크럼 회의를 통해서 어제 학습한 부분에 대해서 이야기를 나누고,

오늘 진행할 부분과 내일 데모를 시연할 부분을 정했다.

회의를 마무리하고, 컴퍼니 데이로 온라인 회사소개 및 Q&A 시간을 갖게 되었다.

‘헬스케어’분야의 회사로 다양한 이야기를 들을 수 있었고,

익숙하지 않은 도메인에서 어떤 자세가 필요한지에 대한 답변이 인상 깊었고,

회사의 비즈니스 모델, 가치 창출에 대해서 질문을 남겼는데,

지금 운영 중인 프로덕트를 통해서 발생하는 파트에 대한 설명과 ‘함께 고민할 수 있는 분들의 많은 관심을 바란다’고 하셨다.

오후 시간 mediasoup 데모를 nCloud에 적용해 보았다.

‘AI’를 도메인으로 하는 회사의 컴퍼니 데이가 있었다.

‘장애 대응’에 대한 질문을 했고, 좋은 회사라는 느낌을 받을 수 있었다.

지금 쌓아가는 기술 스택과 거리가 있어 당장 지원하기는 어렵겠다는 생각이 들었다.

남은 시간 기술공유 때 나눌 수 있는 주제로 이번 주차 흥미롭게 살펴본 NAT과 NGINX로 를 정리 했다.

금요일

오전 다른 프로젝트팀들과 데모를 공유하는 시간을 가졌다.

피어 세션으로 다른 팀과 여러 이야기를 나눠 볼 수 있었다.

‘왜 그렇게 했는지?’에 대해서 여러 이야기를 나눌 수 있었다.

Q. 왜 Mash 아닌 SFU 형태를 생각했는가?

  • 클라이언트 간 P2P로 연결하게 되면 네트워크 상태에 따른 관리나 최적화에 어려움이 따른다.
  • 위임한 것을 컨트롤할 수 없는 위험이 따른다. (오류 발생에 대한 리포트나, 제어가 어려움)
  • 추후 녹화를 반영한 기술로 확대할 수 있겠다고 생각했음

기술공유 시간 CI/CD, CORS, NestJS DI, 작업 내용을 주제로 이야기를

학습의 과정에서의 포인트들을 들어볼 수 있었다.

마스터 클래스를 통해서 실시간 서비스에 대해서 생각해 보는 시간이 있었다.

내가 했던 고민도 포함되는 것 같았다.

이미 소켓을 연결했으니, 다른 통신도 소켓으로 하면 안 될까? 하는 고민이었다.

안정성 측면에서 소켓보다 API가 좋겠다고 생각하고 정리했었는데, 비용적 측면도 생각해야겠다.

회고

  • 잘한 점
    • 도메인에 SSL 적용한 것, NGINX를 초보적인 수준에서 활용할 수 있었다.
    • 정보를 공유해 동료의 문제를 해결하고 시간을 아낄 수 있었다.
  • 부족한 점
    • 개인의 학습을 팀 전체의 학습으로 확장을 유도하는 방법을 모르겠다.
    • 생각보다 기술에 대한 설명을 잘 못하고 있는 것 같다.
  • 도전해볼 점
    • 코드에 조금 더 집중해 볼 수 있으면 좋겠다.
    • 이야기를 시작할 때, 마무리까지 생각하면서 한 템포 쉬고 이야기를 진행하자.
  • 배운 점
    • 학습하고 구성과 동작에 대한 고민 후 코드를 작성할 때의 효율성이 좋았다.
    • 설득을 위한 근거 준비가 필요하다는 것을 알았다. (효율: 시간은 어떤가?)

고찰

  • 3주 차 전원이 학습에 집중해서 프로젝트 자체에 바로 적용된 코드는 없었다. 전반적인 일정에서 딱 절반이 되는 시점인데, 지칠 수 있는 타이밍에 좋은 선택이었다고 생각한다. 프로젝트의 핵심기술에 대해서 이해도를 높일 수 있어서 다행이다.
  • 기업네트워킹으로 회사에 대한 소개와 개발팀의 문화, 복지에 대한 소개를 들으면서 눈이 높아지고 있다. 내 실력으로 당장 마음에 쏙 드는 회사에 가지는 못할 것이고, 3년 안에 갈 수 있도록 계속 성장할 수 있는 환경에 몸을 두어야겠다.

2개의 댓글

comment-user-thumbnail
2022년 11월 29일

WebRTC?!? 어려운 기술에 도전하시는군요!
화이팅입니다!!!

1개의 답글