본 프로젝트는 삼성청년SW아카데미에서 교육과정의 일환으로 진행한 프로젝트 입니다.
프로젝트 결과
수상 기록
아키텍쳐
프로젝트의 목적
새로운 기술을 스스로 학습하고 접목하여 좋은 코드와 개발환경을 만든다
애자일한 협업의 본질을 이해하고 더 나은 자세를 배운다
프로젝트 계획
1.
프로젝트 기획을 통해 알맞은 아키텍쳐와 DB 등을 설계한다
2.
세부 기능을 명세하고 프론트엔드, 백엔드 개발자에게 알맞은 역할을 배분한다
3.
개발과 동시에 회의와 문서화를 진행하여 소통과 협업을 이끌어 나간다
프로젝트 진행
프로젝트 기획
프로젝트 명세 및 분담
수립한 작업 목록을 Jira에 작성하고 스프린트를 생성하였다
일주일에 각 40시간의 작업을 할당했으며, 매일 아침 스크럼 미팅을 진행하였다
프로젝트 개발
Backend에서 담당한 역할은 다음과 같다.
MVC 설계
•
Entity와 DTO를 구분하고 상호 변환 유틸리티를 개발하여 객체의 캡슐화를 가능케 하였다
•
RestController, Service의 탬플릿을 작성하여 팀의 생산성을 향상시켰다.
•
Swagger를 통한 문서화를 독려하며 Frontend와 Backend 개발자 간의 소통을 용이하게 하였다
•
application.properties 설정 파일의 개발/배포 프로필을 분리하여 배포 자동화의 완성도를 높였다
JWT, OAuth
•
토큰을 통한 로그인 및 세션 관리를 위해 토큰 생성, 관리 로직을 개발하였다
•
소셜 로그인과 회원가입 기능을 개발하였다
웹소켓
•
비디오 플레이어의 현재 시청 정보를 동기화 하기 위해 소켓 서버를 구축하였다
Frontend에서 담당한 역할은 다음과 같다.
Page navigation 기능 개발
•
완성도 있는 스타일을 적용하고 커스텀을 가능케 하기 위해 Pagination 컴포넌트를 개발하였다
비디오 플레이어 동기화
•
Spring 서버와의 소켓 통신으로 연결된 클라이언트간의 실시간 비디오 동기화 기능을 개발하였다
배포 환경에서 담당한 역할은 다음과 같다.
Jenkins를 통한 CI/CD 구축
•
Jenkins를 통해 Docker 컨테이너를 생성, 제거함으로써 배포 환경과 파이프라인을 구축하였다
Docker container 빌드 스크립트 및 compose 스크립트 작성
•
런타임, 컴파일러 등 배포 환경을 구축하기 위해 Dockerfile 스크립트를 작성하였다
•
네트워크, 볼륨 바인딩, 개방 포트를 구성하기 위해 docker-compose.yml 스크립트를 작성하였다