-
Notifications
You must be signed in to change notification settings - Fork 0
[팀회고] 1주차
김영균 edited this page Nov 10, 2023
·
1 revision
- 기획과 디자인 80% 완료
- 프로젝트 세팅 및 구조 설계 진행중
- 체크리스트 동시 편집
- AI 체크리스트 추천
문제
- 너무 큰 에픽 선정
- 테스크 같은 스토리
- 너무 세분화된 테스크
배경
- 오프라인으로 체크리스트 편집이 가능하다. → 체크리스트 데이터를 로컬과 서버에 동시에 저장한다.
- 네트워크가 연결되면 오프라인으로 작성한 체크리스트를 서버와 동기화 해야한다.
문제
- 여러기기에서 로그인하여 체크리스트를 수정할 때 동기화를 어떻게 할 것인가?
- 서버 리소스를 줄이면서 오프라인에서 작성한 체크리스트를 동기화 할 수 있을까?
고민한 방법
-
성철님
온라인 오프라인 추가 로컬 / 서버 로컬 추가 사항 저장 편집 로컬 / 서버 로컬 변경 사항 저장 동기화 변경사항 서버에 요청 - 로그인 모두 가져오기 - -
민성님
- 오프라일 때 유저의 변경사항이 생기면 모두 파일에 로그형태로 기록 ex)
user.id delete 파일.txt
- 네트워크 연결 시 로그 순서대로 서버에 요청을 보내 동기회 진행
- 다중 기기에서 오프라인으로 수정되어 로그들이 충돌한다면, 같은 파일에 대해서는 최신 데이터로 덮어씌우기
- 오프라일 때 유저의 변경사항이 생기면 모두 파일에 로그형태로 기록 ex)
-
동석님
-
로직
- 서버한테 동기화 데이터 정보 요청
- 서버와 클라이언트 데이터 비교
- 동기화 처리
-
short polling 방식을 이용한다.
- 실시간 데이터 동기화가 그렇게까지 중요하지는 않으므로, long polling과 웹소켓을 사용할 필요가 없다.
-
클라이언트와 서버 데이터 비교
멘토님에게 애자일에 대해 조언을 구했다.
김경만님
- 스토리를 묶어서 에픽을 하나 만들자.
- task를 feature단위로 코드 베이스랑 맞춰서 정의를 하도록 해보자. ⇒ Task 1개가 feature branch 1개를 담당하도록 하는게 개발하기 편하다. ⇒ 프로젝트마다 정의하기 나름이다.
- 그리고 task의 시간은 시간보다는 난이도로 해석하면 된다.
도도님
- 에픽을 하나의 실험 단위로 쓴다.
- 배포 단위가 에픽이라고 지금 회사에서 쓰고 있다.
- 릴리즈 노트를 하나 추가하는 느낌
- 우리 앱은 투두리스트 가능해!
- 우리 앱은 투두리스트에 ai 추천을 받을 수 있어!
- 우리 앱은 이제 초대해서 동시 편집도 가능해!
그래서 우리는?
- 릴리즈 단위로 에픽 선정한다.
- 에픽에 따라 기존의 짰던 스토리를 재할당한다.
- Feature 단위로 테스크를 선정한다.
- 멘토링 결과 동석님 방법이 좋을 것 같다고 의견 주셨다.
그래서 우리는?
- 동석님 방법으로 진행하고 최적화를 더 해본다.
- [ADR] 아키텍처 의사 결정 기록: iOS 애플리케이션 아키텍처 채택하기
- [ADR] 아키텍처 의사 결정 기록: SwiftLint 채택
- [ADR] 아키텍처 의사 결정 기록: UI 영역에서 Combine 사용 결정
- [ADR] 아키텍처 의사 결정 기록: Presentation영역의 ViewModel에서 Input Output 패턴 도입 결정
- [ADR] 아키텍처 의사 결정 기록: 코디네이터 패턴 도입 결정
- [ADR] 아키텍처 의사 결정 기록: 로컬 스토리지로 코어 데이터 사용 결정
- [ADR] 아키텍처 의사 결정 기록: Custom Network Foundation 라이브러리 구현 및 모듈화 결정
- [ADR] 아키텍처 의사 결정 기록: 이미지캐셔 라이브러리 구현 및 모듈화 결정