Skip to content

[개인회고] ‐ 3주차

yangdongsuk edited this page Nov 26, 2023 · 7 revisions

🐥 김성훈 회고

1️⃣ 한 주간 진행한 사항

  • CRDT 기능 구현 (공통)
  • AI 카테고리 페이지 (개인) - 구현중
  • 로그인 페이지 (개인) - 구현중

2️⃣ 한 주간 어려웠던 점

감기 이슈로 인해 이번주 스프린트에 온전한 정신으로 임하는게 쉽지 않았습니다 그래도 이전보다는 프로젝트 구조에 대해 이해도 높아졌고, 어떻게 내 포지션을 잡아가야할지 감이 오기 시작했습니다.

  • ⚙️ CRDT 알고리즘 이해

    • 원리에 대해서 이해했으나 코드로 구현되었을 때 어떻게 동작하는지 제대로 파악이 안됨
  • 🏷️ 로그인 이후에 rootViewController 교체

    • 프로젝트 구조상 router가 view의 생성주기를 담당했는데, 로그인 이후 rootViewController가 변했어야했습니다

3️⃣ 해결 방안

  • ⚙️ CRDT 알고리즘 이해

    • 주말을 이용해서 논문과 코드를 다시 한 번 잘 읽어보고 사용해보아야겠습니다
  • 🏷️ 로그인 이후에 rootViewController 교체

    • AppRouter에 프로토콜을 만들어서 showTabView() showLoginView() 메서드를 두고 로그인 이후에 router.showTabView()로 하도록 했습니다

4️⃣ Remind

  • 지난주에 비해 몸은 안좋았으나 확실히 더 어떻게 해야할지 감이 잡혔습니다
  • 다음 주 부터는 온전한 몸과 정신으로 달려야겠습니다

🐥 김영균 회고

iOS 멘토님이 속도가 느리다고 했다. 우린 왜 속도가 왜 느린가 흠

우린 같은 것을 학습하고 한 몸처럼 움직였다. 그래서 자연스럽게 속도가 안 나온것 같다.

ios팀은 너무 착해 서로 배려하고 의견을 양보한다. 우리가 무엇을 해야할 지 방향을 잡고 있을 사람이 필요할 것 같다.

다음주엔 뷰를 전부 그려야한다. 그전에 유즈케이스와 레포지토리를 설계하고 뷰를 구현해야지


🐥 위성철 회고

회고

  • 한주간 정신없이 살았고 구현에 급급한 부분이 있었다.
  • 마음에 여유를(..?) 갖고 앞으로 남은 일정 잘 소화해야겠다.

기술적 고민거리

CRDT 구현

  • CRDT란 무엇인가?
  • ID를 어떻게 부여하는가?
  • ID로 어떻게 위치를 탐색하는가?
  • 구현에 있어서 어떤 것이 어려운가?

WebSocket 구현

  • Socket 응답을 받기 위해 재귀 호출을 하게 되는데 어떻게 데이터를 전달할 것인가?

트러블 슈팅

Socket 응답을 받기 위해 재귀 호출

문제 상황

  • Socket 응답을 받기 위해서 재귀적으로 receive를 호출하고 있는 상황
  • 재귀 함수를 호출해서 사용할 때 하위 레이어에 데이터를 전달하는데 어려움이 있음

문제 해결

시도 1 : Async/Await

Async/Await에서 재귀 호출을 하기 위해서는 **AsyncThrowingStream**를 사용해야 함

이 과정에서 Timer를 돌려줘야 함

Timer 사이에 오는 데이터의 유실 가능성이 있음


시도 2 : Delegate

Delegate로 데이터를 넘기면 하위 레이어에 계속 Delegate로 데이터를 넘겨줘야 함

Delegate Chain이 생김


시도 3 : ViewController에서 WebSocket 호출

기존 아키텍쳐의 일관성에 어긋남.

하지만 간단한 방법


결론

ViewController에서 WebSocket 호출하는 방법 채택

아키텍쳐는 유연하게 바뀔 수 있으며 항상 일관된 방법일 수는 없다.


🐥 박민성 회고

💚 Liked(좋았던 점)

  • 소통이 원활하게 이루어지고 있다.
  • iOS에서 crdt를 빠르게 구현해 착착 진행되고 있다
  • 하루만에 양동석 캠퍼와 함께 ci/cd를 세팅했다.

📚 Learned(배웠던 점)

  • vpc, subnet, acg, nat gateway
  • github actions 와 docker container registry를 통한 CI/CD
  • nginx를 통한 로드밸런싱
  • log interceptor는 잘못된 요청은 찍지 못한다.

😕 Lacked(아쉬웠던 점)

  • 배포 환경을 구축하느라 api 개발에 많은 시간을 투자하지 못했다.
  • 클로바 closed beta 신청을 늦게 해 다음 주 바로 api 개발에 들어가지 못할 것 같다...

🌟 Longed for(앞으로 바라는 점)

  • 주말동안 apple oauth 로그인 api 구현 완
  • 다음주 순조로운 인공지능 api 사용
  • 배스쳔호스트 서버를 통한 서버 보안 구축

🐥 양동석 회고

이번주 구현한 내용

  • ncloud에서 vcp 구조를 이용해 퍼블릭 서버에 nest Server, 프라이빗 서버에 postgres DB를 적용했다.
  • github actions와 도커를 이용해 CI/CD를 구축했다.
  • nginx를 이용해 https를 적용했다.
  • 소캣 통신을 구현했다.

느낀점

  • 이번주는 진짜 많은 것을 했다.
  • 특히 이번주에 한 것은 거의 다 처음 하는 일들이라 매우 힘들었다.
  • 하지만 성공적으로 구현해서 너무 뿌듯하다.

오리들의 애자일한 개발 여정

📜 기획

💢 규칙

🐥 1주차 회의록, 회고

데일리 스크럼

회의록

회고

🐥 2주차 회의록, 회고

데일리 스크럼

회의록

회고

🐥 3주차 회의록, 회고

데일리 스크럼

회고

🐥 4주차 회의록, 회고

데일리 스크럼

회고

🐥 5주차 회의록, 회고

데일리 스크럼

회고

🐥 6주차 회의록, 회고

데일리 스크럼

회고

🍎 iOS

아키텍처 의사 결정 기록

Clone this wiki locally