- 브릿지는 개발자, 디자이너, 기획자들을 위한 사이드 프로젝트 모집 플랫폼입니다.
- 브릿지를 통해 저희가 사이드 프로젝트를 찾거나 모집하는 과정에서 겪었던 불편함을 해결하고자 했습니다.
프로젝트 확인 | 프로젝트 상세 | 프로젝트 관리 |
---|---|---|
채팅 | 채팅방 | 마이페이지 |
---|---|---|
- 프레임워크 및 라이브러리: UIKit, RxSwift, FlexLayout, Starscream, SPM, SwiftLint
- 아키텍처: 클린 아키텍처
- 디자인패턴: MVVM-C
- 디자인과 개발을 병렬적으로 진행하기 위해
- MVVM 구조에서 뷰 모델이 비대해지는 것을 피하기 위해
- 유지보수성 및 확장성 높은 소프트웨어 구조를 위해
- 프로토콜을 사용한 의존성 주입을 통해 계층과 관심사를 분리함으로써 UI와 독립적인 코드 작성 가능
- 각 계층이 명확한 책임을 갖게 됨으로써 코드의 유지보수성과 더불어 개발 생산성 향상
- 테스트가 용이해져 mock 리포지토리를 통한 테스트 가능
- 코드 기반의 UI로 작업하다 보니 내비게이션 계층과 플로우를 파악하기 어려워 도입
- 뷰 컨트롤러가 뷰를 보여주는 것 이외에도 내비게이션 및 의존성 주입의 책임을 가짐
- 내비게이션 및 의존성 주입의 책임을 뷰 컨트롤러로부터 분리함으로써 코드의 가독성 및 유지보수성 향상 (SRP 준수)
- 인스턴스의 불필요한 중복 생성을 방지함으로써 메모리 사용 효율 증가
- 비동기 네트워킹 및 UI 관련 작업에 대한 쓰레드 관리를 간편하게 하기 위해
- 중첩된 콜백으로 인한 가독성 저하 문제
- 복잡한 유저 인풋을 처리하기 어려움
- Traits나 operator를 활용해 비동기 네트워킹 및 UI 관련 작업에 대한 쓰레드 관리를 간편하게 할 수 있음
- 중첩 콜백 대신 Observable을 사용해 비동기 작업과 반응형 프로그래밍을 간결하고 이해하기 쉬운 방식으로 처리 가능
- Operator를 사용해 복잡한 유저 인풋 및 비동기 이벤트를 효율적으로 처리 가능
- 디스코드를 사용해 화상회의 및 의사소통 플랫폼 일원화
- 파트별 채널 분리를 통해 불필요한 의사소통 비용 제거
- 깃허브 웹훅을 사용하여 개발 상황 실시간 공유
- Pn 룰 기반
- 클린 아키텍처 및 SOLID 원칙에 입각한 리뷰
- 리뷰하지 않으면 merge 불가