짧은 생각

해당 프로젝트를 진행하며 느꼈던 지극히 개인적인 생각들을 복기한다.

2021년 7월 12일, 회의를 진행했다.
고객의 요구사항은 넷플릭스와 비슷한 컨셉의 교육 컨텐츠 웹페이지 개발이었다.

팀 구성은 개발자 5명, 퍼블리셔 2명, 기획자 1명, 개발 리드 1명, 프로젝트 매니저 1명 등 총 10명으로, 이전 프로젝트들보다 개발자의 비중이 높은 편이다.

프로그램_구성도

필자는 사용자들의 메시지 관리, 이벤트별 메일, 문자발송, 앱 토큰 API 구현, 메인 카테고리 헤더 화면 등을 맡아 개발을 진행하게 되었다.

간단한 개발스펙을 설명하자면, 화면구성은 레이아웃 프레임워크인 SiteMesh를 사용하여 유지보수가 편리하도록 하였고, AWS SES SDK를 활용하여 메시지 관리 시 데이터 통계를 한눈에 확인할 수 있도록 시인성과 시크릿키 관리로 높은 보안성을 높였다. 데이터베이스는 PostgreSQL, 가장 보편적인 JDK8을 사용하였다.

해야할일
해야할 일들을 항상 정리하고 그대로 진행하리라 다짐하지만, 지키긴 쉽지 않다.

유스케이스시나리오


설계

  1. 유스케이스 시나리오
  2. 유스케이스 클래스 다이어그램
  3. 화면설계서

구현

푸시

서버와 앱이 통신할 수 있도록 RESTFul API를 구현한다.
App 화면에서 푸시 설정을 제어할 수 있는 스키마 주소를 추가한다.

  1. 토큰을 생성할 수 있는 (POST)
  2. 푸시 설정을 조회할 수 있는 (GET)
  3. 푸시 설정을 수정할 수 있는 (POST)

param key {info_receive_yn = '', ad_receive_yn = '', notice_receive_yn = ''}

응답받을 파라미터는 문자열 타입이며, 푸시를 생성하는 API에서 푸시 설정을 동시에 가능하다.
만약, 생성된 instanceID로 서버에 토큰이 조회되지 않는다면, 추가 생성을 할 수 있도록 구현하였다.
로그인 success 처리가 된다면, 토큰 생성 메소드를 호출하여 해당 회원번호를 갱신한다. (postgreSQL merge 활용)
로그아웃 시 회원번호를 0으로 갱신한다. (postgreSQL merge 활용)

하나의 회원번호는 다수의 토큰을 가질 수 있다. (1:N)
e.g., 1번의 회원번호가 IOS, Android 기기를 가질 수 있고, 아이폰, 아이패드를 가질 수 있다. 즉, 토큰은 여러개 가질 수 있음을 보장함.

Message에서 MulticastMessage를 활용하고, setToken에서 addAllTokens, BatchResponse로 변경한다.

메시지

알람관리
카테고리별 영상 관련 메시지, 결제 등등 알람을 확인하는 화면이다.

카테고리

카테고리
상단 카테고리화면은 공통 include 파일로 관리하되, 스크릿틀릿을 활용하여 코드를 작성한다. 관리자에서 카테고리를 관리할 수 있으며 사용 여부를 체크하여 노출여부를 판단한다.